84_mom2_301405
description
Transcript of 84_mom2_301405
![Page 1: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/1.jpg)
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
Autómatas y Lenguajes formales
Grupo: 301405_84
Trabajo Colaborativo Momento 2
Presentado por:
JUAN CARLOS SEPULVEDA DAZA
Código: 7185224
EDGAR DARIO MUESES PALACIOS
Código: 98353302
JEYSON ANDREY LESMES VERA
Presentado a :
Tutor: Nelson Miguel Sandoval
Escuela De Ciencias Básicas e Ingeniería (Ingeniería en Sistemas)
CEAD Tunja
Octubre de 2015
![Page 2: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/2.jpg)
PARTE 1: HALLAR EL AUTÓMATA MÍNIMO CORRESPONDIENTE al siguiente
autómata finito.
1. Realice la descripción (notación) (caracterización) matemática del autómata. (Antes de minimizar)
Explicación minimización del autómata
Una de las mejores cualidades de los AFD es que existen métodos mecánicos para simplificarlos. La simplificación es la reducción en el numero de estados pero que estos aceptan el mismo lenguaje que antes de la simplificación La minimización es la obtención de un autómata con el menor número posible de estados Los estados redundantes o equivalentes son cuando 2 estados al intercambiar uno con el otro en cualquier configuración no altera la aceptación o rechazo de toda palabra . Este autómata es un quíntuplo ya que contiene 5 elementos y sus
características son las siguientes las cuales pude identificar desmenuzando
el ejercicio es decir tome el ejercicio por partes para poder entenderlo mejor.
M = (K, Σ, s, δ, F)
![Page 3: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/3.jpg)
K= Es el conjunto de estados que posee el autómata.
Σ= (Sigma) Es el alfabeto de entrada
s = Al estado inicial del autómata
δ= (sigma) Denota una función
F=Estado final del autómata
En el desarrollo de este autómata tuve que determinar varias cosas como lo
son:
Identifique los estados del autómata K = {q0, q1, q2, q3, q4, q5, q6, q7, q8}
Identifique el alfabeto de entrada Σ = {0,1}
Identifique el estado inicial del autómata el cual es = q0
Identifique la función= δ: {q0, q1, q2, q3, q4, q5, q6, q7, q8} × {0,1} → {q0, q1,
q2, q3, q4, q5, q6, q7, q8} → q0 → {q3, q5, q8,}
Identifique los estados finales del autómata F= q3, q5, q8
Matemática del autómata. (Antes de minimizar)
M = {q0, q1, q2, q3, q4, q5, q6, q7, q8}, {0,1} δ q0 {q3, q5, q8}
K = {q0, q1, q2, q3, q4, q5, q6, q7, q8}
Σ= {0,1}
s = q0
F= {q3, q5, q8}
2. Plasme la tabla de transición del autómata. (No es la que generas VAS). (Antes de minimizar)
Tabla de transición antes de minimizar el autómata.
![Page 4: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/4.jpg)
δ 0 1
q0 q2 q1
q1 q4 q5
q2 q3 q4
#q3 q2 q6
q4 q6 q7
#q5 q7 q1
q6 q4 q8
q7 q8 q4
#q8 q7 q6
3. Identifique El Lenguaje que reconoce. (Antes de minimizar) Debemos plasmar el lenguaje que reconoce el autómata de forma regular o forma normal.
L = {ω Є {0, 1, │ ω = { ˄ ( }}
Esto quiere decir que el lenguaje (L) de todas las posibles cadenas (ω) que pertenecen (Є) a los símbolos del alfabeto (0 ,1 ) y que están incluidos en el conjunto universal (*) es decir todas las posibles combinaciones tal que ( │ ) esas cadenas (ω) sean iguales a ( , ( ) por lo tanto que empiecen con un solo (0) o con muchos (0) , con 1 o más 11111111111 y que termine con un (1) o con muchos (111111111111111111). 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)
Para identificar la ER y minimizar el autómata voy a emplear la teoría de
conjuntos
Para esto determino 2 conjuntos los cuales serán:
X = Estados aceptadores
Y =Estados no aceptadores
Para mi caso los conjuntos serán:
X = {q3, q5, q8}
Y = {q0, q1, q2, q4, q6, q7}
![Page 5: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/5.jpg)
Procedo a validar mis conjuntos por medio de las tablas
Validación conjunto x:
Valido q3
Σ= {0,1}
δ 0 1
q3 y y
Valido q5
Σ= {0,1}
δ 0 1
q5 y y
Valido q8
Σ= {0,1}
δ 0 1
q8 y y
Validación conjunto y:
δ 0 1
q0 y y
q1 y x
q2 x y
q4 y y
q6 y x
q7 x y
5. Identifique los estados Distinguibles y los No distinguibles
Los estados distinguibles para nuestro autómata son:
![Page 6: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/6.jpg)
Estados distinguibles o aceptadores: X = {q3, q5, q8}
Estados no distinguibles o no aceptadores: Y = {q0, q1, q2, q4, q6, q7}
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. Identifico los estados equivalentes en x:
X = {q3, q5, q8}
δ 0 1
q3 y y
q5 y y
q8 y y
Podemos observar que en el conjunto x los estados equivalentes son todos:
q3, q5, q8
Identifico los estados equivalentes en y:
Y = {q0, q1, q2, q4, q6, q7}
Los estados q0, q4 son equivalentes (Teniendo presente que q0 es el estado
inicial)
Los estados q1, q6 son equivalentes
Los estados q2, q7 son equivalentes
δ 0 1
q0 y y
q1 y x
q2 x y
q4 y y
q6 y x
q7 x y
![Page 7: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/7.jpg)
Por tal razón se generan 3 Conjuntos.
7. En el proceso de eliminación de estados, identifique que transiciones se
eliminan y cuáles se re direccionan. Muestre la tabla de estados
distinguibles
Para este proceso eliminamos a (Y) ya que esta cumplió su función y
procedemos a crear 3 estados o conjuntos nuevos con el resultado de la
identificación de estados.
X = {q3, q5, q8}
M = {q0, q4}
N = {q1, q6}
Z = {q2, q7}
Procedemos a validar el nuevo grupo de conjuntos.
Validamos M.
M = {q0, q4}
Los estados q0, q4 NO son equivalentes (Teniendo presente que q0 es el
estado inicial) se generan 2 conjuntos mas
Validamos N.
Los estados q1, q6 son equivalentes
Validamos Z.
δ 0 1
q0 Z N
q4 N Z
δ 0 1
q1 M X
q6 M X
δ 0 1
q2 X M
q7 X M
![Page 8: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/8.jpg)
Los estados q2, q7 son equivalentes
Por consiguiente M desaparece y se generan 2 conjuntos más
X = {q3, q5, q8}
A = {q0}
B = {q4}
N = {q1, q6}
Z = {q2, q7}
Procedemos a validar el nuevo grupo de conjuntos.
Validamos X.
Los estados q3, q5. q8 son equivalentes
Validamos A.
Recordando que q0 es el estado inicial
Validamos B.
Validamos N.
δ 0 1
q3 Z N
q5 Z N
q8 Z N
δ 0 1
q0 Z N
δ 0 1
q4 N z
δ 0 1
q1 B X
q6 B X
![Page 9: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/9.jpg)
Los estados q1, q6 son equivalentes
Validamos Z.
Los estados q2, q7 son equivalentes
Por tal razón ya no hay ningún conjunto que no sea equivalente es por eso
que nuestro autómata ya se encuentra en su estado mínimo y lo conforman
los conjuntos:
X = {q3, q5, q8}
A = {q0}
B = {q4}
N = {q1, q6}
Z = {q2, q7}
Para el caso de los conjuntos (X , N, Z) puedo eliminar cualquier estado sin
que esto afecte su funcionamiento.
X = {q3, q5, q8} Para este conjunto eliminare (q5, q8)
N = {q1, q6} Para este conjunto eliminare (q6)
Z = {q2, q7} Para este conjunto eliminare (q7)
Por tal razón la nueva tabla de transición del Autómata Minimizado queda de
la siguiente manera:
δ 0 1
q2 X B
q7 X B
δ 0 1
A Z N
# X Z N
![Page 10: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/10.jpg)
8. El autómata nuevo minimizado expresarlo o graficarlos en un diagrama de Moore
Diagrama de Moore para el nuevo autómata minimizado.
9. Realice la descripción (notación) (caracterización) matemática del autómata ya minimizado Notación y caracterización matemática del autómata minimizado La simplificación es la reducción en el número de estados pero que estos aceptan el mismo lenguaje que antes de la simplificación La minimización es la obtención de un autómata con el menor número posible de estados Los estados redundantes o equivalentes son cuando 2 estados al intercambiar uno con el otro en cualquier configuración no altera la aceptación o rechazo de toda palabra .
B N Z
N B X
Z X B
![Page 11: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/11.jpg)
Este autómata es un quíntuplo ya que contiene 5 elementos y sus
características son las siguientes .
M = (K, Σ, s, δ, F)
K= Es el conjunto de estados que posee el autómata.
Σ= (Sigma) Es el alfabeto de entrada
s = Al estado inicial del autómata
δ= (sigma) Denota una función
F=Estado final del autómata
Identifique los estados del autómata K = {q0, q1, q2, q3, q4}
Identifique el alfabeto de entrada Σ = {0,1}
Identifique el estado inicial del autómata el cual es = q0
Identifique la función= δ: {q0, q1, q2, q3, q4} × {0,1} → {q0, q1, q2, q3, q4} → q0
→ {q3}
Identifique el estado final del autómata F= q3
Matemática del autómata minimizado.
M = {q0, q1, q2, q3, q4}, {0,1} δ q0 {q3}
K = {q0, q1, q2, q3, q4}
Σ= {0,1}
s = q0
F= {q3}
10. Identifique El Lenguaje que reconoce. (Autómata ya minimizado) Dado que el autómata que se nos fue planteado en esta guía es un autómata
finito determinista podemos decir que el lenguaje que reconoce este está basado en
todas las posibles cadenas que empiecen con un cero o con un uno o viceversa y esto
![Page 12: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/12.jpg)
no implica que afecte su funcionamiento por lo tanto se puede decir que el lenguaje
que reconoce es el que está dado por cada estado que posee el autómata y con la
entrada de 1,0(Alfabeto de entrada) , habrá una transición posible desde el estado y
con esa entrada
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. Para el desarrollo de este punto utilizare el simulador jflap para representar paso a paso la ER del autómata minimizado Autómata recreado por medio del simulador
El simulador nos permite por medio de una herramienta que nos permite convertir el
autómata en ER (seleccionamos la opción convertí FA to RE)
Se generan una serie de validaciones de cadenas validas hasta que llega a un estado final por medio del botón Do it
![Page 13: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/13.jpg)
Le damos exportar y tendremos la ER para nuestro autómata
Por consiguiente la expresión regular es: (11+00*11+(10+00*10)(00+10*10)*(01+10*11))(11+00*11+(10+00*10)(00+10*10)*(01+10*11))*
Tabla de validación echa en exel.
Expresión regular Cadena valida Cadena No valida
11+00*11 110011 1100111
10+00*10 10000101111 100000101
01+10*11 11000011 11000011110
11+00*11 110000011 1100000110
10+00*10 1000001011 100010
Validación en el simulador.
![Page 14: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/14.jpg)
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.
La gramática es un conjunto de reglas para formar correctamente las frases de un lenguaje. Gramática libre de contexto = G Esta es un conjunto de reglas de reemplazo donde las partes izquierda son de longitud 1 Se representa: CFG = G
S 1A
S 0B
C 1A
A 1C
B 0B
D 1B
C 0B
B 1A
C
A 0D
D 0A
Una gramática es un cuádruplo (v, Σ, R, s) V =Alfabeto variable Σ = Alfabeto constante R = Conjunto de reglas S = Símbolo inicial, es un elemento del alfabeto de variables Estas reglas son vistas como reglas de reemplazo. Por medio del simulador creamos nueva gramática damos test y nos dice que es una gramática libre de contexto
![Page 15: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/15.jpg)
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 Gramática echa manualmente por la izquierda. CFG = G
S A1
S B0
C A1
A C1
B B0
D B1
C B0
B A1
C
A D0
D A0
![Page 16: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/16.jpg)
Al ingresar la cadena valida 110011 podemos darnos cuenta que si acepta la cadena por lo consiguiente el recorrido hacia la izquierda es aceptado.
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. Lo primero que realizamos es abrir por medio del simulador la interfaz echa de la gramática en jflap
Seleccionamos la opción input y escogemos Brute Force Parse
Seleccionamos cualquier cadena valida que en mi caso será (110011) y la digitamos dentro de imput.
![Page 17: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/17.jpg)
Al dar click sobre start podemos darnos cuenta que la cadena si es valida o aceptada y de esta forma se empieza a crear el árbol de derivación Nota:(“adjunto la imagen al ingresar una cadena no valida que por consiguiente genera un error “) Al dar click sobre step vamos creando el árbol de derivación paso a paso hasta llegar al estado final o de aceptación
![Page 18: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/18.jpg)
Al comparar los dos recorridos tanto por la izquierda como por la derecha podemos determinar que el autómata no es ambiguo ya que no genera un árbol de derivación diferente en conclusión: Tanto el árbol de derivación por la izquierda como por la derecha son iguales es decir la gramática no es ambigua PARTE 2. Diseñe un AP que dentro de su lenguaje L = {ab}*; es decir todas las
combinaciones posibles de cadenas conformadas por los símbolos (a) (b) o
conjunto universal de estrellas de kleene, (con pila vacía): exceptuando o
rechazando cadenas como:
Cadenas no válidas.
Las que estén compuestas por uno o muchos símbolos “b”: ejemplo: {(b) (bb) (bbb) (bbbb) (bbbbb) (bbbbbb) (bbbbbbb) (bbbbbbbb) (bbbbbbbbb)…….}
En el diseño que haga es libre determinar si acepta la cadena vacía o no. El diseño del autómata de pila que voy a realizar reconocerá las cadenas b para cualquier numero natural n
1. Describa el autómata en notación matemática.
Este autómata de pila reconoce el lenguaje:
L = { b}*
Tal que estará representado por su séptupla la cual se representa de la siguiente forma:
![Page 19: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/19.jpg)
Matemática del autómata
AP = {Q, V, Σ, δ,q0, Z0, F}
Q = Conjunto de estados del AP ( {q0, q1})
V = Alfabeto {a, b}
Σ = alfabeto de la pila {Z0, , 1}
2. Determine el lenguaje que reconoce el AP.
Este autómata de pila reconoce el lenguaje:
L = { b}*
Por consiguiente el lenguaje que reconocerá el autómata de pila estará compuesto por las palabras que pertenecen al conjunto alfabeto (V) que pertenecen a los estados (Q) y que entraran dentro del alfabeto de pila (Σ), por tal razón se tienen que cumplir ciertas condiciones como comenzar con una o muchas (a) y solo una (b).
Por consiguiente: L = {ω. ( ,b)} * │ ω
3. Justifique y asocio o evidencie si el diseño es un APND o un APD
4. Grafíquelo en JFLAP y realice el “Trace back” 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).
Traficación del autómata por medio de jflap
Lo primero que debemos realizar es elegir dentro de la consola de jflap la opción Pushdown Automaton
![Page 20: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/20.jpg)
Seleccionamos Múltiple charácter Input
Procedemos a construir el autómata de pila.
Seleccionamos la opción de input y elegimos step by state y en la ventana que se abre digitamos la cadena para nuestro autómata de pila que en mi caso será (aab), damos aceptar
![Page 21: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/21.jpg)
Se generara una nueva ventana para verificar el paso a paso de la función
Para verificar la condición que se nos plantea en el ejercicio la cual es:
Cadenas no válidas.
Las que estén compuestas por uno o muchos símbolos “b”: ejemplo: {(b) (bb) (bbb) (bbbb) (bbbbb) (bbbbbb) (bbbbbbb) (bbbbbbbb) (bbbbbbbbb)…….} Procedemos a ejecutar el multiple run para ingresar las cadenas validas y las no validas
Como se puede apreciar el autómata cumple con las condiciones que se nos fueron planteadas
Para realizar el Trace back dentro de la table text size seleccionamos cualquier cadena que haya ingresado presiono view trace y de esta manera se nos genera el Trace back
![Page 22: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/22.jpg)
5. Plasme las imágenes del recorrido de ese Trace back para cada movimiento en el documento. (Se debe apoyar en JFLAP) (Documente el proceso)
Recorrido del Trace Back
Seleccionamos input , seguido de Step with closure se abrirá una nueva ventana allí digitaremos la cadena y se abrirá una nueva ventana que nos demostrara el recorrido paso por paso en mi caso será con (aab)
Se abrirá la ventana que nos mostrara el paso a paso de esta cadena.
![Page 23: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/23.jpg)
Damos click en step y nos mostrara el rrecorrido.
Como se puede apreciar después del recorrido o la validación llega a su estado final
6. Muestre el diagrama correspondiente de estados.
Para realizar el diagrama de estados para el autómata de pila tomare la cadena valida (aab) empleando los pasos del punto anterior para poder observar cómo es su recorrido y así generar el diagrama de estados.
![Page 24: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/24.jpg)
Estado Por Leer Pila
q0 aab Z0
q0 ab 1
Q0 b 1
Q1 λ Z0
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).
Mi diseño no acepta las cadenas vacías.
Demostración del recorrido
![Page 25: 84_mom2_301405](https://reader036.fdocuments.mx/reader036/viewer/2022081722/5695d2d31a28ab9b029bdb88/html5/thumbnails/25.jpg)