141
De todo un poco... / conjunto de letras que forma palabras autómata
« en: 27 de Febrero 2014, 09:44 »
PREGUNTA: Dado el siguiente autómata podemos afirmar:

a) El conjunto de letras que forman las palabras reconocidas por el autómata es {x}.
b) El conjunto de letras que forman las palabras reconocidas por el autómata es {x, y}.
c) El conjunto de letras que forman las palabras reconocidas por el autómata es {x, y, c}.
d) El conjunto de letras que forman las palabras reconocidas por el autómata es {x, y, c, d}.
RESPUESTA: La opción correcta es la b).
Se trata de un autómata a pila que en primer lugar pone el símbolo # como fondo de pila y luego introduce el símbolo S en la pila.
Este autómata parece representar una gramática que vamos a escribir a partir de las reglas del autómata:
S -- > A
S -- > B
A -- > xAy
B -- > xxBy
A -- > xy
B -- > xxy
B -- > cCd
A -- > cCd
C -- > cCd
Para que un no terminal pueda intervenir en el lenguaje son necesarias dos condiciones:
a) Que sea alcanzable
b) Que permita derivar en algún momento a símbolos terminales o a la cadena vacía λ
Analicemos lo que ocurre con cada no terminal:
S: permite derivar a A y B
A: tiene una regla recursiva pero también una regla finalista que deriva a los terminales xy
B: tiene una regla recursiva xxBy, y otra regla que deriva a cCd. También una regla finalista que permite derivar a los terminales xxy
C: sólo deriva a una regla recursiva donde interviene el mismo símbolo C. Por tanto este símbolo no puede utilizarse para generar palabras del lenguaje, porque si se introdujera alguna producción donde intervenga C luego no habría forma de eliminar C derivando a símbolos terminales.
Debido a lo anterior, únicamente podemos construir palabras utilizando A y B, y estas palabras únicamente pueden incluir los símbolos {x, y}. Por tanto respondemos la opción b).
Si no analizamos la gramática con cuidado podemos pensar que la solución es {x, y , c, d} pero no sólo hay que considerar si un no terminal es alcanzable, sino también si permite finalizar las recursiones para construir cadenas válidas. ¡Hay que fijarse!

a) El conjunto de letras que forman las palabras reconocidas por el autómata es {x}.
b) El conjunto de letras que forman las palabras reconocidas por el autómata es {x, y}.
c) El conjunto de letras que forman las palabras reconocidas por el autómata es {x, y, c}.
d) El conjunto de letras que forman las palabras reconocidas por el autómata es {x, y, c, d}.
RESPUESTA: La opción correcta es la b).
Se trata de un autómata a pila que en primer lugar pone el símbolo # como fondo de pila y luego introduce el símbolo S en la pila.
Este autómata parece representar una gramática que vamos a escribir a partir de las reglas del autómata:
S -- > A
S -- > B
A -- > xAy
B -- > xxBy
A -- > xy
B -- > xxy
B -- > cCd
A -- > cCd
C -- > cCd
Para que un no terminal pueda intervenir en el lenguaje son necesarias dos condiciones:
a) Que sea alcanzable
b) Que permita derivar en algún momento a símbolos terminales o a la cadena vacía λ
Analicemos lo que ocurre con cada no terminal:
S: permite derivar a A y B
A: tiene una regla recursiva pero también una regla finalista que deriva a los terminales xy
B: tiene una regla recursiva xxBy, y otra regla que deriva a cCd. También una regla finalista que permite derivar a los terminales xxy
C: sólo deriva a una regla recursiva donde interviene el mismo símbolo C. Por tanto este símbolo no puede utilizarse para generar palabras del lenguaje, porque si se introdujera alguna producción donde intervenga C luego no habría forma de eliminar C derivando a símbolos terminales.
Debido a lo anterior, únicamente podemos construir palabras utilizando A y B, y estas palabras únicamente pueden incluir los símbolos {x, y}. Por tanto respondemos la opción b).
Si no analizamos la gramática con cuidado podemos pensar que la solución es {x, y , c, d} pero no sólo hay que considerar si un no terminal es alcanzable, sino también si permite finalizar las recursiones para construir cadenas válidas. ¡Hay que fijarse!