Documente Academic
Documente Profesional
Documente Cultură
TRABAJO COLABORATIVO N° 2
GRUPO: 301405_58
COLOMBIA
22 de Octubre de 2016
Problemas a desarrollar
�: ×Σ→ es la función de transición que especifica a qué estado pasa el autómata desde el
estado actual al recibir un símbolo de entrada,
� , = ; � , = ;
� , = ; � , = ;
� , = ; � , no es definido ;
� , = ; � , = ;
� , = ; � , = ;
� , = ; � , = ;
� , = ; � , = ;
� , = ; � , no es definido ;
� , no es definido ; � , = ;
� , y � , no son definidos.
0 1
q0 q2 q1
q1 q5 q3
q2 q4 No es definido
#q3 q9 q6
#q4 q7 q9
q5 q9 q2
q6 q8 q9
q7 q9 No es definido
#q8 No es definido q7
q9 No es definido No es definido
Como se puede notar, cada celda de la tabla anterior contiene a lo mucho un estado, en efecto no
existen celdas con dos o más estados, por lo tanto para cada estado en que se encuentre el autómata
y con cualquier símbolo del alfabeto leído, existe siempre a lo más una transición posible desde ese
estado y con ese símbolo.
Eso asegura que el autómata es un AFD, es decir un autómata finito determinista.
� = � + � +∅ � = � + � � = � + �
� = � + � +∅ � = � + � � = � + �
� = � +∅ � = � � =
� = � + � +� � = � +� � = +�
� = � + � +� � = � +� � =�
⟹ ⟹ ⟹
� = � + � +∅ � = � � = �
� = � + � +∅ � = � � =
� = � +∅ � =∅ � =∅
� = � +� � = � +� � =�
{ � =∅ { � =∅ { � =∅
� = � + � � = + + + = + + +
� = +� + � = + +
� = � =
� = +� � = +�
� =� � =�
⟹
� = � =
� = � =
� =∅ � =∅
� =� � =�
{ � =∅ { � =∅
= + + +
�={ , , , }.
Se trata de un Lenguaje que contiene sólo las siguientes cuatro palabras: “00” , “11”, “1010”,
“1110” .
Desarollo del punto 4.
= + + +
A continuación, en la siguiente tabla de validación, verifico una cadena válida y otra no válida.
ER 00 + 11 + 1010 + 1110
Cadena válida 11
Antes que nada puedo afirmar que los estados q7 y q9 no son distinguibles como ninguno de
ellos permite alcanzar un estado final. Luego, elimino tanto los estados q7 , q9 como también las
transiciones que llegan y que salen de ellos.
A continuación construyo una partición del conjunto de los estados que quedan.
A B
q3 q4 q8 q0 q1 q2 q5 q6
0 --- --- --- q2 q5 q4 --- q8
1 q6 --- --- q1 q3 --- q2 ---
Como se puede notar el estado q3 actúa de manera diferente a los estados q4 y q8 en efecto, al
aplicar la transición 1, se obtiene q6 que no pertenece al mismo subconjunto.
Por lo tanto el estado q3 resulta distinguible de los otros dos estados que pertenecen al grupo A.
También los estados q2 y q6 actúan de manera distinta a los otros que pertenecen al grupo B
porque, al aplicar la transición 0, se obtienen estados que pertenecen al otro subconjunto.
Eso significa que tanto q2 como q6 resultan distinguibles de los otros estados de B.
Como al aplicar las transiciones hay cambios en los subconjuntos, construyo otra partición en la
cual separo los estados que se comportan de forma diferente al resto.
={ } , ={ , } , ={ , } , ={ , , }.
Como se puede notar el estado q0 actúa de manera diferente a los estados q1 y q5 en efecto, al
aplicar la transición 0, se obtiene q2 que no pertenece al mismo subconjunto.
Por lo tanto el estado q0 resulta distinguible de los otros dos estados que pertenecen al grupo F.
Como al aplicar las transiciones hay cambios en los subconjuntos, construyo otra partición en la
cual separo los estados que se comportan de forma diferente al resto.
={ } , ={ , } , ={ , } , ={ } , ={ , }.
C D E F1 F2
q3 q4 q8 q2 q6 q0 q1 q5
0 --- --- --- q4 q8 q2 q5 ---
1 q6 --- --- --- --- q1 q3 q2
Como al aplicar las transiciones hay cambios en los subconjuntos, construyo otra partición en la
cual separo los estados que se comportan de forma diferente al resto.
={ } , ={ , } , ={ , } , ={ } , ={ } , ={ }.
Ahora escribo todos los subconjuntos obtenidos hasta ahora incluyendo el que contiene los estados
q7 y q9 que no permiten alcanzar un estado final.
={ }, ={ , }, ={ , }, ={ }, ={ }, ={ }, ={ , }.
Los estados distinguibles son los que pertenecen a dos diferentes subconjuntos:
={ }, ={ , }, ={ , }, ={ }, ={ }, ={ }, ={ , }.
En cambio, los estados que no son distinguibles son los que pertenecen al mismo subconjunto, es
decir, (q4 , q8) , (q2 , q6) y (q7 , q9) .
Desarollo del punto 6.
Para evaluar esas equivalencias, coloco a los estados candidatos de equivalencia como estados
iniciales y averiguo que se obtienen autómatas equivalentes.
He eliminado tanto los estados q7 , q9 como también las transiciones que llegan y que salen de
ellos porque dichos estados no permiten llegar a un estado final.
Como se puede notar, colocando q4 y q8 como estados inciales, se obtienen dos autómatas que
sólo reconocen la palabra vacía λ .
Por lo tantos los dos autómatas son equivalentes y eso demuestra que también los estados q4 y q8
son equivalentes.
Como se puede notar, colocando q2 y q6 como estados inciales, se obtienen dos autómatas que
sólo reconocen la palabra “0” .
Por lo tantos los dos autómatas son equivalentes y eso demuestra que también los estados q2 y q6
son equivalentes.
También los estados (q7 , q9) son equivalentes porque los dos autómatas que se obienen colocando
q7 y q9 como estados iniciales no reconocen ninguna palabra y por lo tanto son autómatas
equivalentes.
� , = ;
� , = ; � , = ;
� , = ;
� , = ;
� , = ; � , =
Como los estados q4 y q8 son equivalentes, el estado q8 se puede eliminar y con el se elimina
también la transición � , = .
Como los estados q2 y q6 son equivalentes, el estado q6 se puede eliminar y con el se elimina
también la transición � , = , sin embargo dicha transición se remplaza con la siguiente:
� , = .
q1 X
q2 X X
q3 X X X
q4 X X X X
q5 X X X X X
q6 X X X X X
q7 X X X X X X X
q8 X X X X X X X
q9 X X X X X X X X
q0 q1 q2 q3 q4 q5 q6 q7 q8
La letra “X” indica cuáles son los estados distinguibles, mientras que las celdas vacías representan
los estados equivalentes, es decir, (q2 , q6) , (q4 , q8) y (q7 , q9) .
Desarollo del punto 8.
�: ×Σ→ es la función de transición que especifica a qué estado pasa el autómata desde el
estado actual al recibir un símbolo de entrada,
� , = ; � , = ;
� , = ; � , = ;
� , = ; � , no es definido ;
� , no es definido ; � , = ;
� , no es definido ; � , no es definido ;
� , no es definido ; � , = .
Desarollo del punto 10.
� = � + � +∅ � = � + � +∅ � = � + �
� = � + � +∅ � = � + � +∅ � = +� +
� = � +∅ � = � =
⟹ ⟹
� = � +� � = +� � = +�
� =� � =� � =�
{ � = � +∅ { � = { � =
� = ++ + � = + + +
� = + + � = + +
� = � =
⟹ ⟹
� = +� � = +�
� =� � =�
{ � = { � =
= + + +
�={ , , , }.
Se trata de un Lenguaje que contiene sólo las siguientes cuatro palabras: “00” , “11”, “1010”,
“1110” .
= + + +
A continuación, en la siguiente tabla de validación, verifico una cadena válida y otra no válida.
ER 00 + 11 + 1010 + 1110
A fin de obtener la gramática regular por la derecha del autómata minimizado, a continuación
represento el diagrama de estados asociado a las variables y a las constantes.
⟶ |
⟶ |
⟶
⟶
⟶ | �
⟶ �
⟶ |
⟶ |
⟶
⟶
⟶ | �
⟶ |
⟶ |
⟶
⟶ | �
={ ⟶ | , ⟶ | , ⟶ | � }
= {�, Σ, , }
A fin de obtener la gramática regular por la izquierda del autómata minimizado, a continuación
represento el diagrama de estados asociado a las variables y a las constantes.
⟶ |
⟶
⟶
⟶
⟶ | |
⟶
Como vale la regla ⟶ , sustituyendo en las otras reglas 1 en lugar de C , se obtiene:
⟶ |
⟶
⟶
⟶ | |
⟶
⟶ |
⟶
⟶ | |
⟶
Las últimas dos reglas (las de D y E ) se pueden escribir en la siguiente forma equivalente:
⟶ |
⟶
⟶ |
⟶ |
⟶ |
⟶ |
⟶ |
={ ⟶ | , ⟶ | , ⟶ | }
= {�, Σ, , }
⟶ | ⟶ | ⏟ | ⏟ ⟶ | | ⏟ | ⏟
Desarollo del punto 14.
= {�, Σ, , }
Con la cadena válida 1110, genero un árbol de derivación para la gramática por la derecha.
1 A
1 D
10
La cadena “1110” no tiene otros árboles de derivación, por lo tanto dicha cadena y el árbol
generado no son ambiguos.
También cada una de las otras tres cadenas válidas tiene sólo un árbol de derivación.
Como cada cadena válida no tiene árboles de derivación diferentes, la gramática es no ambigua.
Problema 2: Diseñe un AP (con pila vacía) que acepte dentro de su lenguaje, L = { (a+b)* }, es
decir todas las combinaciones posibles de cadenas conformadas por los símbolos “ a ” y “ b ”,
exceptuando o rechazando cadenas como las siguientes.
Cadenas no válidas:
√ Las que estén compuestas por uno o muchos símbolos “a”.
Por ejemplo: {(a) (aa) (aaa) (aaaa) (aaaaa) (aaaaaa) ……. }.
√ En el diseño que haga es libre determinar si acepta la cadena vacía o no.
Solución:
La descripción matemática del Autómata de Pila (con pila vacía que acepta todas las cadenas que
contienen los símbolos “ a ” y “ b ” exceptuando la cadena λ y las cadenas compuestas por uno o
muchos símbolos “ a ”) es la séptupla
= , Σ, Γ, �, , � ,
�
�={ con , ≥ y ≥ }
El autómata es un APD porque dado un estado, un símbolo del alfabeto de entrada y otro del
alfabeto de la pila, pasa a un determinado estado y remplaza el tope de la pila por una determinada
cadena, avanzando la cabeza lectora una posición.
Plasmo aquí las imágenes del recorrido del Traceback para cada movimiento.
Inicialmente el Autómata de Pila se encuentra en el estado inicial q0, la palabra de entrada por leer
es “ aaaaba ” y la pila contiene sólo “ z0 ” que es el símbolo inicial y representa el fondo de la pila.
El autómata de Pila lee el primer símbolo “ a ” de la palabra de entrada, se queda en el estado inicial
q0 y no modifica el contenido de la pila.
El autómata de Pila lee el cuarto símbolo “ a ” de la palabra de entrada, se queda en el estado inicial
q0 y no modifica el contenido de la pila.
El autómata de Pila lee el quinto símbolo “ b ” de la palabra de entrada, pasa al estado final q1 y
vacía el contenido de la pila.
La palabra “ aaaba ” es aceptada porque, después de que el Autómata de Pila la ha leído, la pila se
encuentra vacía.
Mi diseño no acepta la cadena λ porque, con esa entrada, la pila no se vaciaría sino que seguiría
manteniendo su símbolo inicial “ z0 ”.
Además el Autómata de Pila se quedaría en el estado inicial “ q0 ”.
A continuación muestro el comportamiendo de la Pila para ese evento.
Como se puede notar en la siguiente imágen, el Autómata, al recibir la palabra vacía, se queda en el
estado inicial q0 y la pila sigue manteniendo su símbolo inicial “ z0 ”.
Por lo tanto la pila no se vacía y la palabra λ no es aceptada.