PREGUNTA: Dado el siguiente autómatapodemos afirmar:
a) Reconoce el lenguaje L definido por la expresión regular x*y*
b) Reconoce el lenguaje L = {x
ny
n : n > 0}
c) Reconoce el lenguaje L = {x
ny
2n : n > 0}
d) Reconoce un lenguaje que se puede expresar como la unión de dos lenguajes independientes del contexto.
RESPUESTA: la opción correcta es la d).
Se trata de un autómata a pila que reconoce la gramática:
S -- > A
S -- > B
A -- > xAy
B -- > xxBy
A -- > xy
B -- > xxy
La gramática forma dos ramas de lenguaje, la que deriva de la A y la que deriva de la B.
A partir de la A tenemos cadenas que empiezan por x y tienen un número de x igual al número de y´s, por tanto admite xy, xxyy, xxxyyy, etc., sublenguaje x
ny
nA partir de la B tenemos cadenas que empiezan por x y tienen el doble de x que de y´s, por tanto admite xxy, xxxxyy, xxxxxxyyy, sublenguaje x
2ny
nEl lenguaje admitido por el autómata podríamos definirlo como L = { x
ny
n U x
2ny
n tal que n >0 } donde U representa unión.
¿Reconoce el lenguaje x*y*? No, porque x*y* admite la cadena vacía y este lenguaje no la admite.
¿Reconoce el lenguaje L = {x
ny
n : n > 0} ? Sí, este es un lenguaje independiente del contexto. Pero además reconoce más cadenas que las definidas por este lenguaje.
¿ Reconoce el lenguaje L = {x
ny
2n : n > 0} ? Sí, este es un lenguaje independiente del contexto. Pero además reconoce más cadenas que las definidas por este lenguaje.
¿Reconoce un lenguaje que se puede expresar como la unión de dos lenguajes independientes del contexto.? Sí, esta es la respuesta más acertada (aunque las respuestas b) y c) también serían verdaderas, pero incompletas o “no del todo exactas”).
Respondemos por tanto la opción d).