AUTOMATAS Y LENGUAJES FORMALES TRABAJO COLABORATIVO FASE 2
DEBATIR Y DESARROLLAR LOS EJERCICIOS PLANTEADOS SOBRE AUTÓMATAS CON PILA Y GRAMÁTICAS
PRESENTADO POR: CARLOS ORLANDO ROJAS FRANKLIN JOAN PUENTES JUAN CAMILO ALFONSO DANIEL MEJÍA LIZARAZO
GRUPO: 301405_62
TUTOR CESAR JIMÉNEZ
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
INTRODUCCIÓN
El presente trabajo colaborativo contiene material académico correspondiente al curso Autómatas y Lenguajes Formales en donde se incluye el desarrollo de la Guía de Actividades correspondiente a la Unidad No 2 – Fase No 2 como un proceso intermedio del contenido que abarca la Teoría de Autómatas y lenguajes Formales, recorriendo las temáticas, de una manera simple objetiva y efectiva, dado el alto contenido analítico, matemático y de comprensión que tiene las temáticas a las que hace referencia el presente documento.
Se pretende identificar y comprender los conceptos y definiciones fundamentales para el estudio de lenguajes Independientes del contexto, autómata a pila, autómata a pila por vaciado, autómata a pila por estados finales, definición de gramática con sus características y tipos de gramáticas.
Para el cumplimiento de estos objetivos propuestos se realiza una investigación teórica individual la cual fue compartida en el foro de trabajo colaborativo, cuya evidencia es una presentación de los temas propuestos, posteriormente se realiza el desarrollo de dos ejercicios donde se aplican los temas de la unidad dos, el primero corresponde a la minimización e identificación de un autómata y el segundo a la construcción y simulación de un autómata con pila, estos ejercicios son los evidenciados en su desarrollo a continuación.
Ejercicio 1
Teniendo en cuenta el siguiente autómata realizar el proceso de minimización. Se debe realizar el procedimiento paso a paso.
1. Realice la descripción (notación) (caracterización) matemática del autómata. (Antes de minimizar)
De acuerdo a la definición formal tenemos
A={
{
q0,q1,q2,q3,q4,q5, q6, q7}
,{1,2}, δ , q0,{
q7,q4}
}Donde, estados del autómata:
K=
{
q0,q1,q2,q3,q4,q5,q6, q7}
El Lenguaje reconocido por el autómata:∑={1,2}
Estado inicial:
s=q0 Estados finales o de aceptación:
F=q4, q7
δ :(q0,1)=q1 δ :(q0,2)=q2 δ :(q1,1)=q5 δ :(q1,2)=q3 δ :(q2,1)=q6 δ :(q2,2)=q4 δ :(q3,1)=q7 δ :(q3,2)=q1 δ :(q4,1)=q1 δ :(q4,2)=q5 δ :(q5,1)=q3 δ :(q5,2)=q7 δ :(q6,1)=q4 δ :(q6,2)=q1 δ :(q7,1)=q1 δ :(q7,2)=q2
2. Plasme la tabla de transición del autómata. (No es la que generas VAS). (Antes de minimizar) Tabla de transiciones Estado s Entradas 1 2 q0 q1 q2 q1 q5 q3 q2 q6 q4 q3 q7 q1 q4 q1 q5 q5 q3 q7 q6 q4 q1 q7 q1 q2
3. Identifique El Lenguaje que reconoce. (Antes de minimizar) Lenguaje generado por el autómata
L= {todas las cadenas que empiezan por un {1} o {2} y terminan en un {1} o {2}}, con al menos tres elementos si comienza por 2 o tres elementos si comienza por 1, sobre el alfabeto {1,2}
4. Identifique los estados Distinguibles y los No distinguibles Estados Distinguibles
A={q4,q7}
Estados no Distinguibles B={q0,q1,q2,q3, q5, q6}
5. 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.
Estados equivalentes para primer grupo A={q4,q7}
δ 1 2
q4 B B
q7 B B
Estados equivalentes grupo B B={q0,q1,q2,q3, q5, q6}
δ 1 2
q0 B B
q1 B B
q3 A B
q5 B A
q6 A B
Se forman nuevos grupo luego de validación de los dos conjuntos iniciales A={q4,q7}
B={q0,q1}
C={q2,q5} D={q3, q6}
Tablas de los nuevos conjuntos A={q4,q7} δ 1 2 q4 B C q7 B C B={q0,q1} δ 1 2 q0 B C q1 C D C={q2,q5} δ 1 2 q2 D A q5 D A D={q3, q6} δ 1 2 q3 A B q6 A B
Nuevos conjuntos son generados, q0 ingresa al conjunto A y se forma conjunto de inicio y final E.
E={q4,q7, q0} B={q1} C={q2,q5} D={q3, q6}
Revisando los conjuntos y sus tablas
E={q4,q7, q 0 } δ 1 2 q4 B C q7 B C q0 B C B={q1} δ 1 2 q1 C D C={q2,q5} δ 1 2 q2 D E q5 D E D={q3, q6} δ 1 2 q3 E B q6 E B
Mediante el procedimiento de la minimización encontramos que el estado q0 pertenece al conjunto A formándose y se forma el conjunto E, en este se comporta como un estado inicial también estado de aceptación, la tabla de transiciones es la siguiente:
Estados Entradas
E B C
B C D
C D E
D E B
Autómata generado
Realice la descripción (notación) (caracterización) matemática del autómata ya minimizado.
M = (K, Ʃ ,δ , s, F)
A={{B ,C , D , E},{1,2}, δ , E{E}}
Estados del autómata
K={B , C , D , E} Lenguaje reconocido por el autómata
∑={1,2} Estado inicial
s=E Estados de aceptación F=E Transiciones: δ :(B , 1)=C δ :(B , 2)=D δ :(C , 1)=D δ :(C , 2)=E δ :(D ,1)=E δ :(D ,2)=B δ :(E ,1)=B δ :(E ,2)=C Identifique El Lenguaje que reconoce
L = {ω ∈ {0, 1} | ω = todas las cadenas que empiezan por un {1} o {2} y terminan en un {1} o {2}}, con al menos tres elementos si comienza por 2 o tres elementos si comienza por 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.
Regla Gramática E →1 B S →2 B E →2 C B → 2 S B → 1C C → 1 S B → 2 D B → 1C D→ 1 E S →1 A D→ 2 B A →1 B C → 1 D A →2 C
C → 2 D C → 2 A
E → λ S → λ
V = es un alfabeto de variables
∑ = Es un alfabeto de constantes
R = es el conjunto de reglas es un subconjunto finito
S = el símbolo inicial y un elemento de V
La gramática regular es lineal por la derecha, ya que todas las producciones se presentan de la forma
A Ab
Ejercicio 2
Diseñe un AP que lea el siguiente lenguaje L = {(ab*) | (c*d*)} ; es decir todas las combinaciones posibles de cadenas conformadas por los símbolos (a) (b*) o (c*) (d*) (con pila vacía).
1. Describa el autómata en notación matemática Conjunto de estados del autómata
Q= {q1, q2, q3, q1} Alfabeto ∑= {a, b, c, d} Contenido de la Pila Γ= {V} Estado Inicial s=q1
Símbolo Inicial de pila Z= V
Estados de aceptación: q2, q4 Función delta, donde e es épsilon
1. ((q1,a,V),(q2,e)) 2. ((q2,b,e),(q2,e)) 3. ((q1,e,V),(q3,e)) 4. ((q3,c,e),(r,e)) 5. ((q3,d,e),(q4,e)) 6. ((q4,d,e),(q4,e))
2. Determine el lenguaje que reconoce el AP.
Gramática libre de contexto que representa el lenguaje del autómata:
3. S->aB|cC|e 4. B->bB|e 5. C->cC|D 6. D->dD|e
�= {� ϵ (��∗)|(c∗d∗) | �= todas las cadenas que empiezan por el símbolo a; seguidas de una o muchas cadenas con el símbolo b o seguida de cadenas conformadas por ninguna o muchas c y d}
3. Justifique y asocio o evidencie si el diseño es un APND o un APD
Es un Autómata de Pila Determinista (APND) ya que se puede notar al ubicarnos en el estado inicial q1 tiene un paso hacia el estado q2 lee el símbolo vacío. Es decir que cuando la entrada contiene el símbolo a, se ejecuten dos posibles caminos, uno hacia el estado q2 con el símbolo a y el que va al estado q3 con el símbolo vacío.
4. Grafíquelo en JFLAP y realice el “Traceback” 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).
5. Plasme las imágenes del recorrido de ese Traceback para cada movimiento en el documento. (Se debe apoyar en JFLAP) (Documente el proceso)
Introducimos la cadena aabb
Toma dos caminos a q2 por a y q3 (leyendo el símbolo vacio)
Simulación de abbb
Se desprende hacia dos estados por a y por vacio
Por otra parte sigue teniendo símbolos que leer y acepta la cadena
Toma por la transición vacía hacia a q3, donde lee c y luego a q4 al leer d
CONCLUSIONES
El trabajo descrito representa un aporte significativo a la teoría de gramáticas independientes del contexto, con el trabajo desarrollado fue posible debatir y desarrollar los ejercicios planteados sobre autómatas con pila y gramáticas a través de la realización de ejercicios de aplicación donde evidenciamos el proceso para la caracterización matemática del autómata, plasmamos la tabla de transición del autómata indicado, logramos la identificación del lenguaje que reconoce un determinado autómata, además de determinar los estados distinguibles y no distinguibles, se evidencia el proceso de minimización mediante la eliminación de estados, mostrando las transiciones se eliminan y cuáles van a ser re direccionadas, se logró mediante el ejercicio la identificación de la gramática de un autómata de forma manual y caracterización.
Mediante la actividad propuesta el grupo realizo el diagrama de estados con los componentes de la gramática asociados a las variables y a las constantes de un autómata, el ejercicio permitió el reconocimiento de autómatas con pila, definiendo si era determinista o no determinista, se utilizó como herramienta de apoyo el software JFLAP para su representación así como la simulación de lectura de cadenas mediante “Traceback” para las transiciones, tomando evidencia del proceso para documentarlo, finalmente como grupo se logró la apropiación de todos estos nuevos conocimientos que esperamos sean de aplicación es nuestro entorno profesional.
BIBLIOGRAFIA
Alfonseca C, E., Alfonseca M, M., Mariyón S, R. (2009). Teoría de
autómatas y lenguajes formales. Recuperado de:
http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action? docID=10498456&ppg=6
Carrasco, R., Calera, R., Forcada, M. (2016). Teoría De Lenguajes, Gramáticas Y Autómatas Para Informáticos. Recuperado de: http://bibliotecavirtual.unad.edu.co:2048/login?
user=proveedor&pass=danue0a0&url=http://bibliotecavirtual.unad.edu.co:20
51/login.aspx?direct=true&db=nlebk&AN=318032&lang=es&site=eds-live&ebv=EB&ppid=pp_Cover
Hernández, R. (2010). Practique la teoría de autómatas y lenguajes
formales. (pp. 1 -124). Recuperado de:
http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action? docID=10566114&ppg=10
Kelley, D. (1995). Teoría de Autómatas y Lenguajes Formales, Prentice Hall Hispanoamericana.
Millán, J., Antonio J. (2009). Compiladores y procesadores de lenguajes.
(pp. 73-126). Recuperado de:
http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/detail.action? docID=10844351