You are on page 1of 27

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

AUTOMATAS Y LENGUAJES FORMALES


GRUPO 301405_04

ESTUDIANTE:

.
EDWIN MANUEL SNCHEZ LARA CD. 80.432.962
LUIS FERNANDO ROJAS CUBILLOS CD. 82.395.097
JOSE LUIS GOMEZ VILLAMIL CD. 80.199.947
EDWIN MENDOZA CD. 86.055.021
CARLOS ARTURO MUOZ CD. 87.027.651

DESARROLLO MOMENTO DOS

(DIRECTOR)

CARLOS ALBERTO AMAYA TARAZONA

CEAD JOSE ACEVEDO Y GOMEZ


Bogot (Colombia)
DICIEMBRE 02- 2014

Problemas a desarrollar:
PARTE 1: Calcular el autmata mnimo correspondiente al siguiente autmata finito.

1. Enuncie el autmata en notacin matemtica


*

+*

*
(
(
(
(
(
(
(
(

)
)
)
)
)
)
)
)

(
(
(
(
(
(
(
(

* +
+

)
)
)
)
)
)
)
)

Notacin matemtica
(
*
*
*
*(
(

F)
+
+
+
)(

)(

)(

)(

)(
)(

)(
)(

)(
)(

)(
)(

2. Identifique los componentes del autmata (que tipo de tupla es)


El autmata es AFD por lo tanto la tupla es:
(

)
)(

)(

)+

Es un conjunto de es estados.
Es el alfabeto
Es la funcin (total) de transicin. Dados un estado y una entrada devuelve un
estado
Es el estado inicial
Es el conjunto de estados finales o de aceptacin.

que a partir de un estado y un smbolo del


alfabeto obtiene un nuevo estado.
(

+)

Sea el Autmata finito , cuyo alfabeto est conformado por los smbolos
conjunto de estados conformado por los estados:
estado inicial
y dos estados finales
.

3. Identifique la tabla de transicin correspondiente

q0
q1
q2
#q3
q4
#q5
q6
q7
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)

0
q2
q4
q3
q2
q7
q6
q3
q4

1
q1
q5
q4
q7
q6
q1
q4
q5

y tienen un
que tiene un

4. Identifique el lenguaje que reconoce y enuncie cinco posibles cadenas vlidas que
terminen en el estado halt
Cadenas
00
101
011101
11
1001
0110

La cadena 00 es vlida y termina en el estado halt.

La cadena 11 es vlida y termina en el estado halt.

La cadena 1001 es vlida y termina en el estado halt.

La cadena 0110 es vlida y termina en el estado halt.

La cadena 0000 es vlida y termina en el estado halt.

5. Encuentre la expresin regular vlida.

(00+((10+01)1+11(11)*(0+101))(11)*0+((10+01)0+11(11)*100+((10+01)1+11(11)*(0+101))(11
)*10)(00+1(11)*100+(01+1(11)*(0+101))(11)*10)*(01+1(11)*(0+101))(11)*0)(00+011(11)*0+(1
+010+011(11)*10)(00+1(11)*100+(01+1(11)*(0+101))(11)*10)*(01+1(11)*(0+101))(11)*0)*

Ahora dejamos a q5 como nico estado final la expresin regular es:

(11+(00(00)*1+(10+01+00(00)*01)0+(10+01+00(00)*01)1((1+0(00)*01)1)*(0(00)*1+(1+0(00)*
01)0))(00+01((1+0(00)*01)1)*(0(00)*1+(1+0(00)*01)0))*1)(11+(100+(0+101)((1+0(00)*01)1)*(
0(00)*1+(1+0(00)*01)0))(00+01((1+0(00)*01)1)*(0(00)*1+(1+0(00)*01)0))*1)*
6. Encuentre su gramtica que sea vlida para la funcin de transicin (describa sus
componentes y como se escriben matemticamente). Justifquela si la convierte a la
Izquierda o a la derecha. Plsmela en el simulador y recrela. (Debe quedar
documentado en el texto el paso a paso que realizan en el simulador)
La gramtica vlida para la funcin de transicin es:
izquierda
S
S
E
G
E
E
A

derecha
OB
1A

1E
0F
1A
1E

B
A
G
D
F
D
C
B
C
C
F

1D
0D
0D
0G
1D
1F

OC
OB
1G
0C

La conexin se hace a la izquierda porque es lineal a la derecha


En jflap abrimos el simulador y seleccionamos gramtica

Ingresamos la gramtica en el simulador

Ahora comprobamos si las cadenas que son vlidas con respecto a la gramtica del
autmata para ello vamos a input, luego a multiplebrute forc parse e ingresamos las
cadenas a validar

Jflap nos indica que las cadenas fueron aceptadas


La gramtica es un mecanismo generador de lenguajes, nos dice cmo podemos obtener o
construir las palabras de un lenguaje determinado

7. Realice el rbol de Derivacin de esa gramtica


El rbol de derivacin es demasiado grande para ser plasmado grficamente, un rbol
etiquetado y ordenado es un rbol de derivacin para una gramtica libre de contexto
8. Identifique si ese rbol o gramtica es ambigua o no y plasme las razones de su
afirmacin
La gramtica no es ambigua, porque es gramtica libre de contexto permiten describir la mayora
de los lenguajes de programacin, que tiene asociado un rbol de derivacin para toda cadena
de lenguaje.
Para la cadena 1010 el nico rbol de la gramtica que la puede representar es el siguiente:

9. Si el rbol de transicin es demasiado grande, a su criterio seleccione una regla en la


que se detenga por cualquier rama (izquierda o derecha) y plsmelo hasta ah. (es
decir seleccione una cadena vlida para este tem).

Esta es una gramtica bsica general para todo el autmata el cual la convierte a la
izquierda, ya que en cada paso siempre se sustituye primero la primera variable (ms a la
izquierda) de la palabra que tenemos.
Al hacer la exportacin se organizan los estados poniendo por relevancia la variable S.

Ahora vamos a construir unos pasos para una cadena, ya que el ejercicio nos dice que se
debe recrear, entonces vamos a recrearlo para una cadena vlida:

La variable A trabaja con los smbolos 0 y 1, es decir que de la variable A sale un 0 que va
para q4 y sale un 1 que va para q5.
La variable B trabaja con los smbolos 0 y 1, es decir que de la variable B sale un 0 que va
para q3 y sale un 1 que va para q4.
La variable C trabaja con los smbolos 0, 1, y , es decir que de la variable C sale un 0 que
va para q2, sale un 1 que va para q7 y hay una cadena vaca porque siendo un estado final
le entran dos ceros.

La variable E trabaja con los smbolos 0, 1, y , es decir que de la variable E sale un 0 que
va para q6, sale un 1 que va para q1 y hay una cadena vaca porque siendo un estado final
le entran dos unos.
Todos los dems estados o variables trabajan con los smbolos 0 y 1.
Ahora vamos a generar para este autmata una cadena vlida de ejemplo:
La cadena 0110
Nos dice que inicia desde S como estado o variable inicial y l va a evaluar la primera regla
de produccin que se muestra en rojo, y quiere decir que con el smbolo 0 siempre se va
para la variable B y la muestra con el smbolo 0 o sea la salida, como se ve en el rbol de
transicin.

Luego continuando con la cadena evala la segunda regla de produccin que se muestra en
rojo, y quiere decir que con el smbolo 1 siempre se va para la variable D y la muestra con el
smbolo 1 o sea la salida, como se ve en el rbol de transicin.

Luego continuando con la cadena evala la tercera regla de produccin que se muestra en
rojo, y quiere decir que con el smbolo 1 siempre se va para la variable F y la muestra con el
smbolo 1 o sea la salida, como se ve en el rbol de transicin.

Luego continuando con la cadena evala la cuarta regla de produccin que se muestra en
rojo, y quiere decir que con el smbolo 0 siempre se va para la variable C y la muestra con el
smbolo 0 o sea la salida, y sigue hasta llegar al estado de aceptacin con el smbolo vacio
como se ve en el rbol de transicin.
No se presenta ambigedad en este autmata ya que es determinista.

Una gramtica libre de contexto que se representa con el smbolo G es esencialmente un


conjunto de reglas de reemplazo donde las partes izquierdas son palabras de longitud 1

ACTIVIDADES PARA EL EJERCICIO A MINIMIZAR O YA MINIMIZADO:


1. Explicar el proceso de Minimizacin (que estados se suprimen y porque)
Para saber si dos estados q2 y q6 son equivalentes, es decir aceptan exactamente el mismo
lenguaje, se les pone a ambos como estado inicial de sendos autmatas M1 y M2 , y se
procede a comparar dichos autmatas. Si stos ltimos son equivalentes, quiere decir que
los estados q2 y q6 son equivalentes.

q2 y q6 son equivalentes, al intercambiar uno por otro en cualquier configuracin no altera la


aceptacin o rechazo de toda palabra. q2 y q6 son excluyentes, (ya que ambos cumplen la
misma funcin) y al eliminar uno u otro no altera la aceptacin o no de una cadena:
Si se observa:
Del estado q2 sale el smbolo 0 y llega al estado q3
Del estado q6 sale el smbolo 0 y llega al estado q3
Del estado q2 sale el smbolo 1 y llega al estado q4
Del estado q6 sale el smbolo 1 y llega al estado q4
Una vez que se sabe que dos estados son equivalentes, se puede pensar en eliminar uno de
ellos, para evitar redundancias y hacer ms eficiente a AFD, en este caso se elimina el
estado q6.

Ahora,
Para saber si dos estados q1 y q7 son equivalentes, es decir aceptan exactamente el mismo
lenguaje, se les pone a ambos como estado inicial de sendos autmatas M1 y M2 , y se
procede a comparar dichos autmatas. Si stos ltimos son equivalentes, quiere decir que
los estados q1 y q7 son equivalentes.

q1 y q7 son equivalentes, al intercambiar uno por otro en cualquier configuracin no altera la


aceptacin o rechazo de toda palabra. q1 y q7 son excluyentes, (ya que ambos cumplen la
misma funcin) y al eliminar uno u otro no altera la aceptacin o no de una cadena:
Si se observa:
Del estado q1 sale el smbolo 0 y llega al estado q4
Del estado q7 sale el smbolo 0 y llega al estado q4
Del estado q1 sale el smbolo 1 y llega al estado q5
Del estado q7 sale el smbolo 1 y llega al estado q5
Una vez que se sabe que dos estados son equivalentes, se puede pensar en eliminar uno de
ellos, para evitar redundancias y hacer ms eficiente a AFD, en este caso se elimina el
estado q7.

Ahora,
Para saber si dos estados q3 y q5 son equivalentes, es decir aceptan exactamente el mismo
lenguaje, se les pone a ambos como estado inicial de sendos autmatas M1 y M2 , y se
procede a comparar dichos autmatas. Si stos ltimos son equivalentes, quiere decir que
los estados q2 y q6 son equivalentes.

q3 y q5 son equivalentes, al intercambiar uno por otro en cualquier configuracin no altera la


aceptacin o rechazo de toda palabra. q3 y q5 son excluyentes, (ya que ambos cumplen la
misma funcin) y al eliminar uno u otro no altera la aceptacin o no de una cadena:
Si se observa:
Del estado q3 sale el smbolo 0 y llega al estado q2
Del estado q5 sale el smbolo 0 y llega al estado q2
Del estado q3 sale el smbolo 1 y llega al estado q1
Del estado q5 sale el smbolo 1 y llega al estado q1
Una vez que se sabe que dos estados son equivalentes, se puede pensar en eliminar uno de
ellos, para evitar redundancias y hacer ms eficiente a AFD, en este caso se elimina el
estado q5.

2. Que transiciones se reemplazan o resultan equivalentes.

q1
q3
q4
q5
q6
q7

1
q5
q7
q6
q1
q4
q5

0
q4
q2
q7
q6
q3
q4

Por tanto son equivalentes


= (q1,1)= q5
= (q1,0)= q4
= (q3,1)= q7
= (q3,0)= q2
= (q5,1)= q1
= (q5,0)= q6
= (q7,1)= q5
= (q7,0)= q4
3. Escribir la funcin de transicin del nuevo autmata.
Funcin de transicin

(
(
(
(
(

)
)
)
)
)

(
(
(
(
(

)
)
)
)
)

(*
(

,*
*

Tabla de transicin

q0

0
q2

1
q1

+)
+

+)

q1
q2
#q3
q4

q4
q3
q2
q1

q3
q4
q1
q2

4. Identificar la expresin regular (explicarla en la lectura matemtica que se le debe


hacer).
La expresin regular es
(1(00)*1+(0+1(00)*01)(11+10(00)*01)*(0+10(00)*1))(1(00)*1+(0+1(00)*01)(11+10(00)*01)*(0+
10(00)*1))*

5. Compruebe una cadena vlida para esa expresin regular.


La cadena valida 1010, la acepta

6. Identificar el lenguaje que reconoce y cinco posibles cadenas vlidas


L={A pertenece{1,0}| A=(01)*01}
Las posibles cadenas que reconoce
1010
0110
1001
011101
7. Identificar su gramtica. Demustrela para una cadena vlida del autmata.
La gramtica

Acepta la cadena 1010

8. Compare la gramtica con el autmata antes de minimizar (ya sea por la izquierda o
derecha).

Al convertir el autmata a gramtica obtenemos:

Esta es una gramtica bsica general para todo el autmata minimizado el cual la convierte a
la izquierda, ya que en cada paso siempre se sustituye primero la primera variable (ms a la
izquierda) de la palabra que tenemos.
Al hacer la exportacin se organizan los estados poniendo por relevancia la variable S.

Ahora vamos a construir unos pasos para una cadena vlida:

La variable A trabaja con los smbolos 0 y 1, es decir que de la variable A sale un 0 que va
para q4 y sale un 1 que va para q3.
La variable B trabaja con los smbolos 0 y 1, es decir que de la variable B sale un 0 que va
para q3 y sale un 1 que va para q4.
La variable C trabaja con los smbolos 0, 1, y , es decir que de la variable C sale un 0 que
va para q2, sale un 1 que va para q1 y hay una cadena vaca por ser el estado final.
La variable D trabaja con los smbolos 0, y 1, es decir que de la variable D sale un 0 que va
para q1, sale un 1 que va para q2.
La variable S trabaja con los smbolos 0 y 1, es decir que de la variable S sale un 0 que va
para q2 y sale un 1 que va para q1.
Ahora vamos a generar para este autmata una cadena vlida de ejemplo:
La cadena 0110

Nos dice que inicia desde S como estado o variable inicial y l va a evaluar la primera regla
de produccin que se muestra en rojo, y quiere decir que con el smbolo 0 siempre se va
para la variable B y la muestra con el smbolo 0 o sea la salida, como se ve en el rbol de
transicin.

Luego continuando con la cadena se evala la segunda regla de produccin que se muestra
en rojo, y quiere decir que con el smbolo 1 siempre se va para la variable D y la muestra con
el smbolo 1 o sea la salida, como se ve en el rbol de transicin.

Luego continuando con la cadena se evala la tercera regla de produccin que se muestra
en rojo, y quiere decir que con el smbolo 1 siempre se va para la variable B y la muestra con
el smbolo 1 o sea la salida, como se ve en el rbol de transicin.

Luego continuando con la cadena se evala la cuarta regla de produccin que se muestra en
rojo, y quiere decir que con el smbolo 0 siempre se va para la variable C y la muestra con el
smbolo 0, o sea la salida, como se ve en el rbol de transicin.

La cadena llega al estado de aceptacin con la quinta regla, con el smbolo vaco como se ve
en el rbol de transicin.
No se presenta ambigedad en este autmata ya que es determinista.

9. El autmatas nuevo expresarlo o graficarlo con su respectivo diagrama de Moore.

10. Identificar sus tablas de Transicin (plasmarlas)


nueva tabla de estado
1
0
q2
q3
q1
q1
q0
q4
q3
q4
q0
q0
q1
q3
q4
q3
q1

11. Plasmar los pasos de minimizacin en el simulador (comprelos con el proceso


manual que est explicando) y capturar los procesos en imgenes para ser
documentadas en el texto
Primero: construir el autmata

Segundo: seleccionar el men convert, luego vamos a la opcin minimize DFA

Tercero: seleccionamos los estados, hacemos clic en complete subtree

Cuarto: clic en finishy, luego en el botn complete para realizar la transaccin

Quinto: clic en el botn Done, el programa nos enva a una ventana de mensaje que dice: la
minimizacin del autmata est hecha y que se abrir en una nueva ventana con el autmata
minimizado, damos aceptar y listo.

PARTE 2: Disee un APD que acepte cadenas de este tipo: {(aabc) (aaaaaabc) (aaabcc)
(aaabc) (aaaabcc)} Encuentre en primera instancia una regla que evales estas cadenas y
que cumpla las condiciones de las mismas.

1. Describa el autmata en notacin matemtica, identificando el tipo de cadenas que


reconoce de forma generalizada.
*

+*

*
(
(
(
(
(

)
)
)
)
)

* +
+

Notacin matemtica
(
*
*

*(

F)
+
+

)(

)(

)(

)(

)(

)+

2. Grafquelo en JFLAP y realice el Traceback para las transiciones. (Las columnas


para un AP son: El estado en que se encuentra el autmata, lo que falta por leer de la
palabra de entrada, y el contenido de la pila).

3. Plasme las imgenes y capturas en el documento. (Documente el proceso)

4. Muestre el diagrama correspondiente de estados.


Estado
q
q
q
q

Por leer
ABC
ABC
BC
C

Pila
A
AB
ABC

5. Identifique los contenidos (el recorrido para cada interaccin) de la pila y el estado de
parada. Realcelo con una cadena vlida.

Bibliografa

Amaya Tarazona, Carlos Alberto (2014), Modulo del curso Autmatas y Lenguajes Formales,
Universidad Nacional Abierta y a Distancia, Duitama, Colombia.
Tomado de: https://www.youtube.com/watch?v=WhZ2HxK0M5c
Tomado de: https://www.youtube.com/watch?v=jd4cQ9yJj2c