84_mom2_301405

25
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

description

AUTOMATAS

Transcript of 84_mom2_301405

Page 1: 84_mom2_301405

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

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

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

δ 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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