You are on page 1of 26

AUTOMATAS Y LENGUAJES FORMALES

TRABAJO COLABORATIVO DOS


LENGUAJES INDEPENDIENTES DEL CONTEXTO

PRESENTADO A:
INGENIERO MSC
CARLOS ALBERTO AMAYA TARAZONA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


UNAD CEAD DUITAMA BOYACA
NOVIEMBRE 2012

INTRODUCCION

El presente trabajo corresponde al desarrollo del trabajo colaborativo nmero dos del curso de
Autmatas y lenguajes formales, en el aplicaremos los contenidos temticos que se han adquirido del
estudio de la unidad dos del curso Lenguajes independientes del contexto.
Cuando necesitamos validar campos de texto en programacin como por ejemplo nombres, nmeros
de cedula, fechas de nacimiento entre otros muchos campos ms y para realizarlo de una manera
sencilla y precisa podremos emplear los lenguajes regulares. Existen diversidad de mtodos para
validar esta informacin contenida entre estos para ello se encuentran los Autmatas de Pila que
contienen las expresiones regulares, que tienen parecido a una especie de lenguaje que se puede
usar para buscar, remplazar y sobreponer ciertos patrones en un texto, trabajable casi de manera igual
que los Autmatas Finitos y no Finitos. Un autmata con pila o autmata de pila o autmata a pila o
autmata apilador es un modelo matemtico de un sistema que recibe una cadena constituida por
smbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autmata reconoce. El
lenguaje que reconoce un autmata a pila pertenece al grupo de los lenguajes de contexto libre en la
clasificacin de la Jerarqua de Chomsky.

OBJETIVOS

GENERAL

Reconocer los lenguajes independientes del contexto y sus diversas aplicaciones.

OBJETIVOS ESPECIFICOS

Analizar la estructura de las gramticas independientes del contexto.


Estudiar el concepto de los autmatas de pila, su funcionamiento y los lenguajes
utilizados.
Distinguir los lenguajes independientes del contexto existentes y sus propiedades, as
como los algoritmos de decisin.
Generalizar los conceptos de autmatas finitos y gramticas regulares.
Reconocer el potencial de procesamiento del lenguaje del autmata con los
Autmatas de pila.

1. Calcular el autmata mnimo correspondiente al siguiente autmata finito determinista.

ACTIVIDADES ANTES DE MINIMIZAR.


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

Autmata Finito No Determinista por lo cual su tupla es:


5-tupla

A= (Q, , q0, , A)

Q es un conjunto de estados;

es un alfabeto;

: Q x Q es una funcin de transicin para un AFD;

q0 Q es el estado inicial;

A C Q es un conjunto de estados finales o de aceptacin.

A= ({q0, q2, q3, q4, q5, q6, q7}, {1, 0}, , {q0, q0, q2, q3, q4})
:=(q0,0) = {q1}

:=(q0,1) = {q6}

:=(q1,0) = {q2}

:=(q1,1) = {q3}

:=(q2,0) = {q1}

:=(q2,1) = {q5}

:=(q3,0) = {q1}

:=(q3,1) = {q4}

:=(q4,0) = {q7}

:=(q4,1) = {q4}

:=(q5,0) = {q7}

:=(q5,1) = {q3}

:=(q6,0) = {q7}

:=(q6,1) = {q3}

:=(q7,0) = {q7}

:=(q7,1) = {q3}

2. Identifique la tabla de transicin

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

0
q1
q2
q1
q1
q7
q7
q7
q7

Cada fila la corresponde a un estado q Q


El estado inicial se precede del smbolo
Cada estado final se precede del smbolo #
Cada columna corresponde a un smbolo de entrada x
Se debe identificar la funcin

3. Identifique el lenguaje que reconoce y las posibles cadenas.


L= {A {1, 0} | A= 1i 0i ,i >=1}
Posibles cadenas

110000101
110101
00101
01
011
11101
110000000101
111101
1111011111111

1
q6
q3
q5
q4
q4
q3
q3
q3

4. Encuentre la expresin regular vlida. (Compruebe una cadena vlida de esa expresin regular en
el simulador). Identifique sus componentes.

La expresin regular vlida para el autmata es:


((0+1(0+111*0)*10)(10+111*0(0+111*0)*10)*0)*(+1(0+111*0)*(1+111*)+(0+1(0+111*0)*10)
(10+111*0(0+111*0)*10)*(1+111*+111*0(0+111*0)*(1+111*)))
Comprobacin en simulador:

Comprobacin de cadenas validas en el simulador

El propsito de las ER (que no son ms que simples frmulas) es representar cada una de ellas
un lenguaje.

5. 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
F
C
G
A
B
E
B
S
C
C
A
E
D
G
D
F
D
B

Derecha

0A
1C
1D
1C
0B
0A
0G

1F
0A

1C
1C
1D
0G
0G
0G

1E

La conversin se hace a la Izquierda porque es lineal a la derecha ya que el mismo lenguaje es


generado por la siguiente gramtica lnea por la derecha.
Gramatical en Jflap
Abrimos el Simulador y seleccionamos gramtica:

Luego ingresamos la gramtica en el simulador:

Ahora comprobamos si las cadenas que son vlidas con respecto a la gramtica del autmata para
ello nos vamos a Input y luego a multiple brute forc parse e ingresamos las cadenas que deseamos
validar:

El simulador nos indica que cadenas fueron aceptadas y cuales rechazadas.

Las gramticas son mecanismos generadores de lenguajes, es decir, nos dicen cmo podemos
obtener o construir palabras de un determinado lenguaje.
6. Realice el rbol de Derivacin de esa gramtica.
El rbol de derivacin es demasiado grande para ser plasmado grficamente.
Un rbol ordenado y etiquetado es un rbol de derivacin para una gramtica libre de contexto
7. Identifique si ese rbol gramtica es ambigua o no y plasme las razones de su afirmacin.
La gramtica del rbol no es ambigua se trata de una gramtica univoca ya que es una
gramtica libre de contexto que tiene asociado un solo rbol de derivacin para toda cadena del
lenguaje.
Ejemplo para la cadena (101) el nico rbol de la gramtica que la puede representar es el
siguiente:

8. 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.
La siguiente es una regla para detener el rbol de transicin por la derecha:
(S1F)(F1C)(C0A)(A1C)(C0A)(A1C)(C )
Regla
S 1F
F 1C
C 0A
A 1C
C 0A
A 1C
C

Derivacin
S
1F
11C
110A
1101C
11010A
110101C
110101

rbol

ACTIVIDADES PARA EL EJERCICIO A MINIMIZAR O YA MINIMIZADO:


9. Explicar el proceso de Minimizacin (que estados se suprimen y porque).
Paso 1: Se crean dos subconjuntos, uno formado por los estados no finales y el otro por los
estados finales.
No finales
{q1, q5, q6, q7}

Finales
{q0, q2, q3, q4}

Paso 2: Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD,
en este caso aplicaremos para los subconjuntos la transicin 0.

No finales
{q1, q5, q6, q7}
q2, q7, q7, q7

Finales
{q0, q2, q3, q4}
q1, q1, q1, q7

Paso 3: Se separan del subconjunto los estados de un subconjunto que al aplicarle la


transicin se comporta de manera diferente a los dems estados del subconjunto. Esto es, el
que se desplaza hacia el estado final en nuestro caso es q1 para los estados no finales y q4
para los estados finales.
No finales
{q1, q5, q6, q7}

{q1}

Finales
{q0, q2, q3}

{q4}

Repetimos el paso dos


Paso 2: Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD,
en este caso aplicaremos para los subconjuntos la transicin 1.

No finales
{q5, q6, q7}
q3, q3, q3,

{q1}
q1

Finales
{q0, q2, q3}
q6, q5, q4

{q4}
q4

Repetimos el paso tres


Paso 3: Se separan del subconjunto los estados de un subconjunto que al aplicarle la
transicin se comporta de manera diferente a los dems estados del subconjunto. Esto es, el
que se desplaza hacia el estado final en nuestro caso es q0 para los estados no finales y q3
para los estados finales.

No finales
{q5, q6, q7}

{q1}

Finales
{q0, q2} {q3}

{q4}

Repetimos el paso dos


Paso 2: Aplicar a los dos subconjuntos formados en el paso anterior, las transiciones del AFD,
en este caso aplicaremos para los subconjuntos la transicin 1 y 0.
No finales
Finales
{q5, q6, q7}
{q1}
{q0, q2}
{q3}
{q4}
1
q3, q3, q3,
q3
q6, q5
q4
q4
0
q7, q7, q7
q2
q1, q1
q1
q7
Como no se reflejan cambios al aplicar este paso hemos llegado al final de los procedimientos
a seguir por lo tanto tenemos nuestro autmata al mnimo.
Paso 4: Elaboramos la tabla de transicin del autmata minimizado, en base a los
subconjuntos formados. Para los subconjuntos que tengan ms de un estado se debe elegir un
estado que sea representante del subconjunto y remplazarlo en la tabla de transicin por su
respectivo representante esto con el fin de eliminar estados repetidos.
Estados
Finales

Autmata Minimizado
1
0

Eliminacin Estados
1
0

Nuevo Autmata
1
0

q0
q2

q6
q5

q1
q1

q0
q0

q5
q5

q1
q1

q0

q5

q1

q3

q4

q1

q3

q4

q1

q3

q4

q1

q4

q4

q7

q4

q4

q5

q4

q4

q5

q5
q6
q7

q5
q3
q3

q7
q7
q7

q5
q5
q5

q3
q3
q3

q5
q5
q5

q5

q3

q5

q1

q3

q2

q1

q3

q0

q1

q3

q0

Estados No
finales

Paso 5: En este paso se elabora la tabla de transicin y se grafica el nuevo autmata


minimizado.
Para realizar la tabla de transicin de nuestro autmata minimizado se ordenaran los estados y
se asignan nuevos estados ordenados en base a las transiciones del autmata minimizado.
Equivalencia ordenada de estados
q0 = q0
q3 = q1
q4 = q2

Nueva tabla de estados


1
q0
q3
q1
q2
q2
q2

0
q4
q4
q3

q5 = q3
q1= q4

q3
q4

q1
q1

10. Que transiciones se reemplazan o resultan equivalentes.


Las transiciones equivalentes son:
1

q0

q6

q1

q2

q5

q1

q5

q5

q7

q6

q3

q7

q7

q3

q7

Por lo tanto podemos eliminar por ser equivalentes:

:=(q2,1) = {q5}

:=(q2,0) = {q1}

:=(q6,1) = {q3}

:=(q6,0) = {q7}

:=(q7,1) = {q3}

:=(q7,0) = {q7}

11. Escribir la funcin de transicin del nuevo autmata.


Funcin de transicin

= Q x Q
:=(q0,0) = {q4}

:=(q0,1) = {q3}

:=(q1,0) = {q4}

:=(q1,1) = {q2}

:=(q2,0) = {q3}

:=(q2,1) = {q2}

:=(q3,0) = {q3}

:=(q3,1) = {q1}

:=(q4,0) = {q0}

:=(q4,1) = {q1}

12. Identificar la expresin regular (explicarla en la lectura matemtica que se le debe hacer).
La expresin regular para el autmata minimizado es:
(00+ (10*1+01) (01+11*00*1)*00)*(+(10*1+01)(01+11*00*1)*(+11*))
13. Compruebe una cadena vlida para esa expresin regular.

q3
q0

14. Identificar el lenguaje que reconoce y las posibles cadenas.


L= {A {1, 0} | A= 1i 0i ,i >=1}
Posibles cadenas

110000101
110101
00101
01
011
15. Identificar su gramtica. Demustrela para una cadena vlida del autmata.
Gramtica del autmata

Demostracin de una cadena valida

S 0D
S 1C
S
D 0S
A 0D
D 1A
B 1B
C 0C
A 1B

B 0C
B
A
C 1A

16. Expresarlo o graficarlo con su respectivo diagrama de Moore.

17. Identificar sus tablas de Transicin (plasmarlas)


# q0
# q1
# q2
q3
q4

1
q3
q2
q2
q1
q1

0
q4
q4
q3
q3
q0

18. Plasmar los pasos de minimizacin en el simulador y capturar los procesos en imgenes para ser
documentadas en el texto.
Primer paso: Construir el autmata en el simulador

Segundo Paso: Seleccionar en el men convert luego vamos a la opcin miniminize DFA

Tercer Paso: Seleccionamos los estados no finales y hacemos click en Complete Subtree,
ahora hacemos click en los estados finales y luego hacemos clic en Complete Subtree.

Cuarto Paso: Damos click en Finish y luego en el botn completar para realizar las
transiciones.

Quinto paso: Damos click en el botn Done? el programa nos enva una ventana de mensaje
en la cual nos dice que la minimizacin del autmata est hecha y que se abrir una nueva

ventana con el autmata minimizado, damos aceptar y listo ya tenemos nuestro autmata
minimizado, ahora solo debemos ordenarlo para que se pueda visualizar mejor.

2. Construya el autmata de Pila Correspondiente


Disee un AP que acepte el Lenguaje x n+1 yn para cualquier nmero natural n.
L= { x n+1 yn }
Las posibles cadenas que acepta el autmata pueden ser:
(xxy) (xxyxxy) (xxyxxyxxy)
Un autmata con pila puede ser descrito como una sptupla M= (Q, A, B, , q0, Z0 F)
M= ({q0, q1, q2, q3}, {x, y},{A}, , q0, x, {q3}

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

Graficado en JFLAP

Traceback para las Transiciones

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


Traza para la cadena (xxy)
Para comprobar la validez de esta cadena hacemos click en Input luego nos vamos a step with
closure, nos aparece otra ventana all digitaremos la cadena que deseamos comprobar y le

diremos que hasta el estado final, Seguido daremos click en step para recorrer el autmata por
cada uno de sus estados hasta el estado final.

Si hacemos click en Trace se abre otra ventana en la cual nos muestra la traza de ejecucin
para esa cadena.

21. Muestre el diagrama correspondiente de estados.


Diagrama de estados
Para los autmatas con pila se pueden hacer diagramas de estados, similares a los ya conocidos, pero
resultan de poca utilidad prctica ya que el procesamiento completo de una cadena de entrada
depende del contenido de la pila, el cual puede cambiar en cada paso computacional.
ESTADO
q
q
q
q

POR LEER
xxy
xxy
xy
y

PILA
x
xx
xxy

22. Identifique los contenidos de la pila y el estado de parada.


3. Construccin de Autmatas
Para los siguientes dos autmatas:

23. Identifique la tupla que los define y justifique en que difieren.

Una tupla est definida por:

TUPLA

M=(S,,T,s A)

AUTOMATA A

AUTOMATA B

M=({q6,q2}, {x,y},, q6, {q2})

M=({q5,q0, q4}, {x,y},, q5, {q0,q4})

:=(q6,x) = {q6}
:=(q2,x) = {q2}

:=(q5,x) = {q5}
:=(q0,x) = {q0}
:=(q4,x) = {q4}

:=(q6,y) = {q2}
:=(q2,y) = {q2, q6}

:=(q5,y) = {q0}
:=(q0,y) = {q4}
:=(q4,y) = {q4}

El autmata A difiere del autmata B principalmente en el nmero de estados ya que para A el nmero
de estados es dos mientras que para B es de tres estados, De igual forma para el autmata A se tiene
que posee un solo estado de aceptacin mientras que el autmata B posee dos estados de
aceptacin, Partiendo de estos hechos notaremos que la funcin de transicin es diferente.

24. Que lenguaje reconoce cada Autmata y justifique si es el mismo o no.

AUTOMATA A
Lenguaje

AUTOMATA B

L= {A {x, y} | A= xn yn ,n >=1}

L= {A {x, y} | A= xn yn ,n >=1}

El lenguaje que reconocen los dos autmatas es el mismo ya que ambos lenguajes generan cadenas
validas en base a las transiciones del autmata, el lenguaje nos dice que A pertenece a (x) y (y) tal
que A es igual a (xn) y (yn) donde n es mayor o igual a uno.
25. Identifique si son AFD o AFND. (Tenga en cuenta todas las variables a tener en cuenta para
calificar un autmata o para clasificarlo como tal)
Tanto el autmata A como el autmata B son autmatas finitos no deterministas AFND. Porque nuestro
autmata A en el estado q2 salen dos transiciones con el mismo smbolo e independientemente de
esta regla tambin tiene ms de una transicin en sus estados. Igual caso para el autmata B este
posee ms de una transicin en uno o mas estados.

26. Plsmelo en los simuladores y genere la ER de cada uno y evalelas (comprelas).


Autmata A

Expresin regular

(x*x(y+x)*y)*x*x(y+x)*
Autmata B

Expresin regular

ER= yx*+yx*y(x+y)
4. Gramticas

Sean L1 el lenguaje generado por la gramtica G1 y L2 el lenguaje generado por la gramtica G2


S xABy
S xAyzy | xAy
A xzS | B
A xzS | yz |
B yz |
Gramtica G1
Gramtica G2
27. Obtener el autmata Finito para cada gramtica (plasme los diagramas de Moore)
Gramtica G1
Autmata Finito Diagrama de Moore

Gramtica G2
Autmata Finito Diagrama de Moore

28. Justifique si las gramticas son idnticas o no he identifique el Lenguaje que generan.

Las gramticas no son idnticas pero generan el mismo lenguaje. Para verlo, basta sustituir el
no-terminal B por las secuencias que puede generar. En los diagramas de moore podemos ver
que son idnticos ya que no se alteran los estados de aceptacin y la gramtica se mantiene.
29. Identifique la ER para cada Autmata generado.
La expresin regular para el autmata de la gramtica G1 es: xy (zy+yz*) y
La expresin regular para el autmata de la gramtica G2 es: xy (yz*) y
30. Identifique y demuestre la palabra generable comn tanto por la Gramtica 1 como por la
Gramtica 2. (Use el simulador para verificarla).

La Gramtica 1 y la Gramtica 2 generan dos palabras comunes del lenguaje que son:
xyzy
xyzyzy
Usaremos el simulador para verificar estas palabras:
Verificacin palabra xyzy para la Gramtica 1

Verificacin palabra xyzy para la Gramtica 2

Verificacin palabra xyzyzy para la Gramtica 1

Verificacin palabra xyzyzy para la Gramtica 1

BIBLIOGRAFIA
MODULO
AUTMATAS Y LENGUAJES FORMALES
Edgar Alberto Quiroga Rojas Actualizacin: Carlos Alberto Amaya Tarazona

Gramticas formales

http://gramaticasformales.wordpress.com/

Grammatical regular

http://es.wikipedia.org/wiki/Gram%C3%A1tica_regular

Gramaticas libres de context

http://luzem.dyndns.org/2010/05/05/practica-8-gramaticaslibres-de-contexto-en-jflap/

Gramatica libre de contexto


a pila

http://luzem.dyndns.org/tag/gramatica-libre-de-contexto-aautomata-de-pila/

lengujaes libres de Contexto

http://teodelacomp.blogspot.com/2011/03/automataspushdown-presentan-ing.html

Minimizacion de un autmata

http://www.youtube.com/watch?v=jd4cQ9yJj2c

Automata de pila

http://www2.dis.ulpgc.es/~mluengo/automatas/teoria/tema4.pdf

Gramaticas y autmatas
De pila
http://informatica.utem.cl/~rcorbin/files/talf/APUNTES_Y_GUIA
S/Capitulo3.pdf

You might also like