Está en la página 1de 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
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)
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.


δ 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}


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:


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}

δ 0 1
q0 y y
q1 y x
q2 x y
q4 y y
q6 y x
q7 x y

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


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}

δ 0 1
q0 Z N
q4 N Z

Los estados q0, q4 NO son equivalentes (Teniendo presente que q0 es el


estado inicial) se generan 2 conjuntos mas

Validamos N.

δ 0 1
q1 M X
q6 M X

Los estados q1, q6 son equivalentes

Validamos Z.

δ 0 1
q2 X M
q7 X M
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.

δ 0 1
q3 Z N
q5 Z N
q8 Z N

Los estados q3, q5. q8 son equivalentes

Validamos A.

δ 0 1
q0 Z N Recordando que q0 es el estado inicial

Validamos B.

δ 0 1
q4 N z

Validamos N.

δ 0 1
q1 B X
q6 B X
Los estados q1, q6 son equivalentes

Validamos Z.

δ 0 1
q2 X B
q7 X B

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

A Z N

# X Z N
B N Z

N B X

Z X B

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 .
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
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
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.
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
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
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.
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
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:
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
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
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
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.


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

También podría gustarte