¿Es regular?

9

Hice mi examen de teoría de la computación hace unas semanas, y esta fue una de las preguntas:

Asumir lenguajeL={(anbm)rn,m,r0}

¿L es regular? En caso afirmativo, proporcione una expresión regular o un autómata para ello.

Después de preguntarle brevemente la respuesta después del examen, parece que realmente es regular (creo que dijo que la expresión es simple ). Sin embargo, parece que no puedo entender por qué es así. A mi modo de ver, se concatena r veces, así:a n b m(ab)anbm

anbmanbmanbm...anbmanbm ,

lo cual no es regular ya que no hay forma de que un autómata recupere n y m cada vez. ¿Dónde tengo la culpa aquí?

EDITAR: volví a hablar con el profesor, admitió que fue un error. El lenguaje de hecho no es regular.

Exci
fuente
14
Debería preguntarle a su maestro si el idioma es el mismo que el idioma . Si dice "sí", dígale que le dije que su pregunta estaba mal formada. K = { a n 1 b m 1 a n 2 b m 2a n r b n rr 0 , a 1 , , a r0 , b 1 , , b r0 }LK={an1bm1an2bm2anrbnrr0,a1,,ar0,b1,,br0}
Andrej Bauer
1
Esa parece ser la única forma en que podría ser regular, y de hecho esto es lo que originalmente pensé apresuradamente y realmente consideré (a b ) *, pero luego lo borré al darme cuenta de que nym permanecen igual (o deberían ...), y di una desaprobación de lema de bombeo para r = 2, diciendo que lo mismo se aplicó para r más grande (probablemente tampoco sea una solución completa pero parece estar en la dirección correcta). No hace falta decir que obtuve 0 para esa pregunta. Intentaré contactarlo.
Ciertamente entendería la pregunta de la manera que lo hizo inicialmente.
Andrej Bauer
Vea aquí más formas de mostrar que un idioma no es regular.
Raphael
también podría probar lo mismo con la ayuda de bombear lema
SAHIL THUKRAL

Respuestas:

10

El lenguaje no es regular, como se puede probar usando el método de Nerode. Considere las siguientes palabras para . Entonces , pero para , . Por lo tanto, cualquier autómata para debe estar en un estado diferente después de leer cada , lo que contradice su finitud.w n = a n b n N w 2 nL n m w n w mL L w nLwn=anbnNwn2LnmwnwmLLwn

Yuval Filmus
fuente
4

En su comentario, insinúa que (cita) "dio una desaprobación de lema de bombeo para , diciendo que lo mismo se aplica para más grande ".rr=2r

De hecho, esto puede formalizarse aplicando una propiedad de cierre. Los idiomas regulares están cerrados bajo intersección. Así que si es regular, entonces también lo sería , estableciendo efectivamente y .L a b a b = { a n b a n b n 0 } r = 2 m = 1LLabab={anbanbn0}r=2m=1

Hendrik Jan
fuente
1
Estimado lector, por favor no quite "si no es regular, entonces tampoco lo es ", ¡porque eso es falso! L LLLL
Raphael
1
@Raphael Right. Entonces, la implicación correcta sería "si no es regular, entonces tampoco lo es ", donde es regular. L RLRLR
Hendrik Jan
1
Por supuesto. Me preocupaba que los principiantes pudieran leer "configuración efectiva ..." y aplicar esto sin usar las propiedades de cierre.
Raphael
0

El lenguaje: {(a n b m ) r | n, m, r≥0} no es regular, porque mientras el autómata / máquina lee la primera secuencia de letras 'a' y luego las letras 'b', necesita contar el número de veces que lee la letra 'a' y el número de veces que leer la letra 'b' en la primera secuencia para conocer el valor de n y m .

Si r> 1 luego otro mismo se espera secuencia de letras 'a' y las letras 'B'.

Si el autómata / máquina no no sabe cuántas letras 'a' y letras 'b' se lee en la primera secuencia, entonces tampoco no sabe el valor de n y m , y por lo tanto puede no saber si las otras secuencias del penúltimo son palabras que son iguales a la primera secuencia.

Sin embargo, se sabe que la única máquina de Turing puede contar y conocer los valores de n y m y reconocer el lenguaje anterior, por lo que no sólo que el lenguaje anterior es no regular, pero incluso también es no libre de contexto, es decir, también lo hace No existe un autómata pushdown para reconocer este idioma y no existe una gramática libre de contexto que cada palabra derivada de esa gramática libre de contexto esté en el idioma anterior.

Debido a que el hecho de que tanto determinista finita autómata de pila finita autómata puede no contar y conocer los valores de n y m , a diferencia de la máquina de Turing, que pueden no reconocer el idioma arriba y por lo tanto el lenguaje anterior es no libre de contexto y no es regular

Contraejemplo a la suposición de que el lenguaje anterior es regular:

Para n = 3 ∧ m = 5 ∧ r = 2 , la siguiente palabra está en el idioma anterior:

aaabbbbbaaabbbbb

Pero la siguiente palabra no está en el idioma:

aaabbbbbaaaaabbb, porque no no existir n, m y r so:

(a n b m ) r = aaabbbbbaaaaabbb, porque para satisfacer la primera secuencia de letras 'a' y luego las letras 'b', debe ser cierto que n = 3 ∧ m = 5 , y porque vemos 2 secuencias de letras ' a 'y luego letras' b ', entonces r = 2 , pero si n = 3 ∧ m = 5 ∧ r = 2 entonces (a n b m ) r = (a 3 b 5 ) 2 = (aaabbbbb) 2 = aaabbbbbaaabbbbb ≠ aaabbbbbaaaaabbb, porque sus sufijos son diferentes, es decir, aaabbbbb ≠ aaaaabbb, aunque sus prefijos son iguales a aaabbbbb para r = 1.

El "mejor" autómata finito determinista que se puede construir para este lenguaje es el autómata finito determinista que reconoce la expresión regular (a * b *) *, pero no reconoce el lenguaje anterior, porque dice que ambas palabras aaabbbbbaaabbbbb y aaabbbbbaaaaabbb están en el idioma y esto no es cierto, porque aaabbbbbaaabbbbb está en el idioma, pero aaabbbbbaaaaabbb no está en el idioma.

Incluso el autómata finito pushdown no puede decir si ambas palabras están en el idioma o no, por lo que solo la máquina Turing puede.

En la segunda secuencia, la máquina de Turing encontró que n = 5 ∧ m = 3 y esto contradice que en la primera secuencia encontró que n = 3 ∧ m = 5 , por lo que dice que la segunda palabra no está en el idioma , pero no se encuentra contradicción en la primera palabra.

Ambas secuencias satisfacen que n = 3 ∧ m = 5 , por lo que la máquina de Turing dice que la primera palabra está en el idioma.

Sólo Turing máquina puede, si cuenta y recuerda los valores de n y m escribiendo su valor sobre el mismo de la cinta y luego leerlos.

Despedida de cambio de pila
fuente