Sunteți pe pagina 1din 21

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD

ESCUELA DE CIENCIAS BASICAS TECNOLOGIAS E INGENIERIA ECBTI

AUTÓMATAS Y LENGUAJES FORMALES

TRABAJO COLABORATIVO N° 2

TUTOR: ANGELA MARIA GONZALES

Adiela Zuñiga Velasco


Código: 34372959

GRUPO: 301405_58

COLOMBIA
22 de Octubre de 2016
Problemas a desarrollar

Problema 1: HALLAR EL AUTÓMATA MÍNIMO CORRESPONDIENTE al autómata finito


que representa la siguiente expresión regular Expresión regular.

1. Realice la descripción (notación) (caracterización) matemática del autómata. (Antes de


minimizar).
2. Plasme la tabla de transición del autómata. (No es la que generas VAS). (Antes de minimizar).
3. Identifique el Lenguaje que reconoce. (Antes de minimizar).
4. Identifique la ER y en una tabla de validación (puede ser de Excel), verifique una cadena válida
y una no válida. Tenga en cuenta la jerarquía de operadores. (Antes de minimizar).
5. Identifique los estados distinguibles y los No distinguibles.
6. Identifique los estados equivalentes (para ello muestre cómo evalúa esas equivalencias,
colocando a los estados candidatos de equivalencia como estados iniciales). Evidencie el
proceso de cómo los evalúa.
7. En el proceso de eliminación de estados, identifique que transiciones se eliminan y cuáles se
redireccionan. Muestre la tabla de estados distinguibles.
8. El autómata nuevo minimizado expresarlo o graficarlos en un diagrama de moore.
9. Realice la descripción (notación) (caracterización) matemática del autómata ya minimizado.
10. Identifique el Lenguaje que reconoce. (autómata ya minimizado).
11. Identifique la ER del autómata ya minimizado y en una tabla de validación (puede ser de
Excel), verifique una cadena válida y una no válida. Tenga en cuenta la jerarquía de
operadores. (autómata ya minimizado).
12. (Autómata minimizado) Identifique su gramática (de forma manual) por la derecha y
caracterícela. Debe incluir el diagrama de estados con los componentes de la gramática
asociados a las variables y a las constantes.
13. Realice la gramática por la izquierda (de forma manual) y compare si esta gramática acepta o
no el mismo lenguaje (cadenas). Justifique y demuestre su respuesta.
14. Con una cadena válida, genere un árbol de derivación para la gramática por la derecha y
demuestre y justifique si la cadena y árbol generado puede ser ambigua o no.
Solución:

Desarollo del punto 1.

La descripción matemática del autómata finito es la quíntupla


, Σ, �, ,
donde ={ , , , , , , , , , } es el conjunto de los estados del autómata,
Σ={ , } es el alfabeto de entrada,
es el estado inicial del autómata,
={ , , } es el conjunto de estados finales del autómata,

�: ×Σ→ 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.

Desarollo del punto 2.

La tabla de transición del autómata finito es:

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.

Desarollo del punto 3.

A fin de identificar el lenguaje reconocido, escribo y soluciono las ecuaciones características


asociadas al autómata.

� = � + � +∅ � = � + � � = � + �
� = � + � +∅ � = � + � � = � + �
� = � +∅ � = � � =
� = � + � +� � = � +� � = +�
� = � + � +� � = � +� � =�
⟹ ⟹ ⟹
� = � + � +∅ � = � � = �
� = � + � +∅ � = � � =
� = � +∅ � =∅ � =∅
� = � +� � = � +� � =�
{ � =∅ { � =∅ { � =∅

� = � + � � = + + + = + + +
� = +� + � = + +
� = � =
� = +� � = +�
� =� � =�

� = � =
� = � =
� =∅ � =∅
� =� � =�
{ � =∅ { � =∅

Entonces la expresión regular asociada al autómata finito es:

= + + +

Por lo tanto, el Lenguaje reconocido por el autómata es:

�={ , , , }.

Se trata de un Lenguaje que contiene sólo las siguientes cuatro palabras: “00” , “11”, “1010”,
“1110” .
Desarollo del punto 4.

Ya identifiqué la expresión regular en el precedente punto.

= + + +

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

Cadena no válida 1011

Desarollo del punto 5.

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.

={ , , } subconjunto de los estados finales.


={ , , , , } subconjunto de los estados no finales.

Ahora evalúo cada transición sobre dichos grupos A y B.

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.

={ } , ={ , } , ={ , } , ={ , , }.

Además evalúo cada transición sobre dichos subconjuntos C , D , E y F.


C D E F
q3 q4 q8 q2 q6 q0 q1 q5
0 --- --- --- q4 q8 q2 q5 ---
1 q6 --- --- --- --- q1 q3 q2

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.

={ } , ={ , } , ={ , } , ={ } , ={ , }.

Además evalúo cada transición sobre dichos subconjuntos C , D , E , F1 y F2.

C D E F1 F2
q3 q4 q8 q2 q6 q0 q1 q5
0 --- --- --- q4 q8 q2 q5 ---
1 q6 --- --- --- --- q1 q3 q2

Los estados q1 y q5 actúan de manera distinta porque, al aplicar la transición 1, se obtienen


estados que pertenecen a diferentes subconjuntos (en efecto q3 pertenece a C y q2 pertenece a E).
Eso significa que q1 y q5 son distinguibles.

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.

Los estados equivalentes son (q4 , q8) y (q2 , q6) .

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.

Desarollo del punto 7.

En el proceso de eliminación de los estados q7 y q9 , las transiciones que se eliminan son:

� , = ;
� , = ; � , = ;
� , = ;
� , = ;
� , = ; � , =

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:
� , = .

A continuación muestro la tabla de estados distinguibles.

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.

Represento el autómata nuevo minimizado en el siguiente diagrama di Moore.

Desarollo del punto 9.

La descripción matemática del autómata minimizado es la quíntupla


, Σ, �, ,
donde ={ , , , , , } es el conjunto de los estados del autómata,
Σ={ , } es el alfabeto de entrada,
es el estado inicial del autómata,
={ , } es el conjunto de estados finales del autómata,

�: ×Σ→ 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.

A fin de identificar el lenguaje reconocido, escribo y soluciono las ecuaciones características


asociadas al autómata minizado.

� = � + � +∅ � = � + � +∅ � = � + �
� = � + � +∅ � = � + � +∅ � = +� +
� = � +∅ � = � =
⟹ ⟹
� = � +� � = +� � = +�
� =� � =� � =�
{ � = � +∅ { � = { � =

� = ++ + � = + + +
� = + + � = + +
� = � =
⟹ ⟹
� = +� � = +�
� =� � =�
{ � = { � =

Entonces la expresión regular asociada al autómata minimizado es:

= + + +

Por lo tanto, el Lenguaje reconocido por el autómata minimizado es:

�={ , , , }.

Se trata de un Lenguaje que contiene sólo las siguientes cuatro palabras: “00” , “11”, “1010”,
“1110” .

Desarollo del punto 11.

Ya identifiqué la expresión regular en el precedente punto.

= + + +

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 1010

Cadena no válida 001


Desarollo del punto 12.

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.

Las reglas de producciones son:

⟶ |
⟶ |


⟶ | �
⟶ �

Como vale la regla ⟶ � , sustituyendo en las otras reglas λ en lugar de E , se obtiene:

⟶ |
⟶ |


⟶ | �

Como vale la regla ⟶ , sustituyendo en las otras reglas 0 en lugar de B , se obtiene:

⟶ |
⟶ |

⟶ | �

Como vale la regla ⟶ , sustituyendo en las otras reglas 10 en lugar de C , se obtiene:


⟶ |
⟶ |
⟶ | �

Entonces el conjunto de producciones es el siguiente:

={ ⟶ | , ⟶ | , ⟶ | � }

La gramática regular por la derecha del autómata minimizado es :

= {�, Σ, , }

donde � = { , , } es el conjunto de los símbolos no terminales,


Σ = { , } es el conjunto de los símbolos terminales,
S es el símbolo inicial (start),
P es el conjunto de producciones.

Desarollo del punto 13.

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.

Las reglas de producciones son:

⟶ |



⟶ | |

Como vale la regla ⟶ , sustituyendo en las otras reglas 1 en lugar de C , se obtiene:

⟶ |


⟶ | |

Como vale la regla ⟶ , sustituyendo en las otras reglas D0 en lugar de B , se obtiene:

⟶ |

⟶ | |

Las últimas dos reglas (las de D y E ) se pueden escribir en la siguiente forma equivalente:

⟶ |

⟶ |
⟶ |

Como vale la regla ⟶ , sustituyendo en las otras reglas 11 en lugar de A , se obtiene:

⟶ |
⟶ |
⟶ |

Entonces el conjunto de producciones es el siguiente:

={ ⟶ | , ⟶ | , ⟶ | }

La gramática regular por la izquierda del autómata minimizado es :

= {�, Σ, , }

donde � = { , , } es el conjunto de los símbolos no terminales,


Σ = { , } es el conjunto de los símbolos terminales,
S es el símbolo inicial (start),
P es el conjunto de producciones.

Esta gramática acepta el mismo lenguaje � = { , , , } asociado a la gramática por


la derecha.

En efecto, aplicando las reglas de producciones, se obtiene :

⟶ | ⟶ | ⏟ | ⏟ ⟶ | | ⏟ | ⏟
Desarollo del punto 14.

La gramática regular por la derecha del autómata minimizado es :

= {�, Σ, , }

donde � = { , , } es el conjunto de los símbolos no terminales,


Σ = { , } es el conjunto de los símbolos terminales,
S es el símbolo inicial (start),
={ ⟶ | , ⟶ | , ⟶ | � } es el conjunto de producciones.

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.

1. Describa el autómata en notación matemática.


2. Determine el lenguaje que reconoce el AP.
3. Justifique y asocie o evidencie si el diseño es un APND o un APD.
4. Grafíquelo en JFLAP y realice el “Traceback” para las transiciones. (Las columnas para un AP
son: el estado en que se encuentra el autómata, lo que falta por leer de la palabra de entrada, y
el contenido de la pila).
5. Plasme las imágenes del recorrido de ese Traceback para cada movimiento en el documento.
(Se debe apoyar en JFLAP) (Documente el proceso).
6. Muestre el diagrama correspondiente de estados.
7. Determine si su diseño acepta o no la cadena vacía y explique por qué en cualquier caso,
demostrando el recorrido o comportamiento de la Pila para ese evento. (evidenciándolo).

Solución:

Desarollo del punto 1.

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
= , Σ, Γ, �, , � ,

donde = { , } es el conjunto finito de estados,


Σ = { , } es el alfabeto de entrada,
Γ = {� , �} es el alfabeto de la pila,
es el estado incial del autómata,
� es el símbolo inicial de la pila,
= { } es el conjunto de estados finales del autómata,
�: × Σ ∪ {�} × Γ → × Γ* es la función de transición que especifica el estado al cual pasa el
autómata y la cadena que se remplaza en el tope de la pila, en
correspondencia del símbolo de entrada ( o de la cadena vacía λ )
y del símbolo que se encuentra en el tope de la pila.
� , ,� = ,� ; � , ,� = ,� ;
� , ,� = ,� ; � , ,� = ,� .

Desarollo del punto 2.

El lenguaje reconocido por el AP es el siguiente:


�={ * + *}=
={ * * * *}= [ porque + *= * * * ]
+
={ * * }


�={ con , ≥ y ≥ }

L es el conjunto de todas las palabras formadas por “ a ” y “ b ” que contienen al menos un


símbolo “ b ”.

Desarollo del punto 3.

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.

Desarollo del punto 4.

El gráfico del Autómata de Pila es el siguiente:

A continuación realizo el “Traceback” para las transiciones:


Estado Palabra de entrada Pila
(en que se encuentra el autómata) (lo que falta por leer) (contenido)
q0 aaaaba z0
q0 aaaba z0
q0 aaba z0
q0 aba z0
q0 ba z0
q1 a λ
q1 λ λ

Desarollo del punto 5.

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 segundo 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 tercer 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.

El autómata de Pila lee el sexto y último símbolo “ a ” de la palabra de entrada, se queda en el


estado final q1 y mantiene vacío 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.

Desarollo del punto 6.

A continuación muestro el diagrama correspondiente de estados.

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 “ z 0 ” 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 segundo 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 tercer 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.

El autómata de Pila lee el sexto y último símbolo “ a ” de la palabra de entrada,


se queda en el estado final q1 y mantiene vacío el contenido de la pila.

Desarollo del punto 7.

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.

S-ar putea să vă placă și