Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ASIGNATURA:
LENGUAJES Y AUTÓMATAS I
PROFESOR:
SILVESTRE BEDOLLA SOLANO
ALUMNOS:
• PUENTE TORRES ANA ELIZABET - 18320957
• PEREZ URQUIZA ALEXANDER - 18320955
UNIDAD 3:
REPORTE DE PRÁCTICAS/ACTIVIDADES DE APRENDIZAJE DEL TEMA 3. AUTÓMATAS
FINITOS.
• DETERMINAR LA NOTACIÓN FORMAL DE UN AUTÓMATA FINITO.
• CONOCER LA DIFERENCIA ENTRE UN AFND Y AFD.
• CONSTRUIR UN AF A PARTIR DE UN ER.
• CONSTRUIR UN AF A PARTIR DE LA DESCRIPCIÓN DE UN CASO
DE ESTUDIO (EN GRUPOS DE TRABAJO).
• CONVERTIR UN AFN A AFD.
• MINIMIZAR ESTADOS EN UN AF.
HORARIO:
15:00 – 16:00
FECHA:
ACAPULCO DE JUAREZ A 4 DE
NOVIEMBRE DEL 2020
INDICE
INTRODUCCION ............................................................................................................................................................... 3
CONCLUSION ................................................................................................................................................................. 16
Un autómata finito es un modelo matemático de una máquina que acepta cadenas de un lenguaje
definido sobre un alfabeto A. Consiste en un conjunto finito de estados y un conjunto de transiciones
entre esos estados, que dependen de los símbolos de la cadena de entrada. El autómata finito acepta
una cadena x si la secuencia de transiciones correspondientes a los símbolos de x conduce desde el
estado inicial a un estado final. Si para todo estado del autómata existe como máximo una transición
definida para cada símbolo del alfabeto, se dice que el autómata es determinístico (AFD). Si a partir
de algún estado y para el mismo símbolo de entrada, se definen dos o más transiciones se dice que
el autómata es no determinístico (AFND).
Formalmente un autómata finito se define como una 5-upla
Ejemplo
Un Autómata A que acepta ´ L = {x01y|x ∧ y ∈ {0, 1} ∗}
• El lenguaje del DFA es el conjunto de cadenas que acepta {w|w tiene la forma “x01y” para algunas
cadenas x y y que consisten solo de 0’s y 1’s ´}
2.- CONOCER LA DIFERENCIA ENTRE UN AFND Y AFD
Aunque existen muchos lenguajes para los que un AFN es más fácil de construir que un AFD, como
por ejemplo el lenguaje de cadenas que terminan en 01), resulta sorprendente el hecho de que todo
lenguaje que puede describirse mediante algún AFN también puede ser descrito mediante algún AFD.
Además, el AFD en la práctica tiene aproximadamente tantos estados como el AFN, aunque a menudo
tiene más transiciones. Sin embargo, en el caso peor, el AFD puede tener 2n estados mientras que el
AFN más pequeño para el mismo lenguaje tiene sólo n estados.
Está claro que cualquier AFD también es un AFND, es decir, si es un lenguaje aceptado por un AFD,
también está aceptado por un AFND. Simplemente existe como mucho una sola transición para cada
símbolo del alfabeto y para cada estado.
Pero también podemos construir para cada AFND un AFD equivalente, es decir, un autómata
determinista que acepta el mismo lenguaje.
Continuando con el estudio de la construcción de compiladores es necesario definir que son autómatas
finitos deterministas y no deterministas.
Podríamos definir un autómata como una máquina de estados y transiciones dentro de la cual se tienen
estados de aceptación y transiciones de un estado a otro siguiendo las reglas establecidas para grafos
dirigidos. Dichos estados de aceptación dentro del autómata “reconocen” que es posible aceptar una
cadena de entrada, porque cumple con una definición en el alfabeto.
▪ Estados: Los estados del autómata son representados por círculo. Los nombres de los estados
están escritos dentro de esos círculos.
▪ Estado inicial: Estado en el cual el autómata inicia. El estado inicial tiene una flecha apuntando
hacia él.
▪ Estados Intermedios: Todos los estados intermedios tienen al menos 2 flechas; una apuntando
hacia el estado y otra apuntando hacia otro estado.
▪ Estado Final: Si una cadena es parseada exitosamente, se espera que el autómata quede en
este estado. Se representa con un círculo doble. Puede tener una cantidad impar de flechas
apuntando hacia él y una cantidad par de flechas apuntando hacia otros estados. El número de
flechas impares es siempre uno más que el de flechas pares.
▪ Transición: La transición de un estado a otro ocurre cuando un símbolo deseado es encontrado
en la cadena de entrada. Después de una transición, un autómata se puede mover al siguiente
estado, o quedarse en el mismo estado. El movimiento de un estado a otro es representado por
una flecha dirigida, esta flecha apunta al estado de destino. si el autómata se queda en el mismo
estado se dibuja una flecha que apuntara hacia el mismo.
Ejemplo: Asumimos un autómata finito que acepta un valor tres dígitos binarios que termina en 1. FA
= {Q (q0, qf),?(0,1), q0, qf, ?}
Podríamos mapear este autómata a la siguiente expresión regular: (0|1) *1
Criterios de aceptación para un AFD y un AFND
Una cadena es aceptada por un AFD/AFND si el AFD/AFND que comienza en un estado inicial finaliza
en un estado de aceptación (cualquiera de los estados finales) después de leer la cadena completa.
• S = {0,1,2,3}
• Σ = {a, b}
• ∆ = {{0, a, {0,1}}, {0, b, {0}}, {1, b, {2}}, {2, b, {3}}}
• s = {0}
• F = {3}
Aquí, i es un nuevo estado de inicio y f es un nuevo estado de aceptación. Ciertamente este AFN
reconoce {ε}.
2. Para a de Σ, construir el AFN
Propiedades de un AFN
1. N(r) tiene a lo sumo el doble de estados que de símbolos y operadores en r. Esto se debe al hecho
de que en cada paso de la construcción se crean a lo sumo dos nuevos estados.
2. N(r) tiene exactamente un estado de inicio y otro de aceptación. El estado de aceptación no tiene
transiciones salientes. Esta propiedad se cumple igualmente para todos los autómatas constituyentes.
3. Cada estado de N(r) tiene una transición saliente con un símbolo en Σ o a lo sumo dos transiciones
ε salientes.
Ejemplo: utilizando el algoritmo para construir el N(r) de la expresión regular r=(a|b) *abb, tendremos
los siguientes pasos.
Para la primera a se construye N(a)
Ahora se puede combinar N(a) y N(b) utilizando la regla de la unión para obtener el AFN para N(a|b)
El AFN para N((a|b) *) es
Uno de los primeros trabajos que comenzaron a normalizar la dinámica de robots móviles es (Crawley,
1989) en el que se utilizan dispositivos ultrasónicos en el vehículo para su posicionamiento y
orientación.
En 1997) se plantea como una de las mayores problemáticas de la navegación robótica la localización
y se proponen los pasos claves para el diseño, calibración y modelado de autómatas. Hay otros autores
que refuerzan la evasión de objetos o desarrollo de trayectorias mediante técnicas de navegación
como son: navegación inercial, compases magnéticos y triangulación. (Borenstein, 1997).
(Betke, 1997) considera que el autómata puede reconocer marcas especificas en el medio por el cual
se desplaza usando reconocimiento de patrones visuales. La localización robótica, así como la evasión
de obstáculos del autómata, ha llegado a ser uno de los problemas fundamentales en los robots
móviles, y por ello, en (Fox, 1999) se presenta una versión de la localización Markov, en donde la idea
principal es mantener una densidad de probabilidad sobre el espacio de todas las localizaciones
posibles de un robot en su entorno.
El Vehículo Evasor de Obstáculos (VEO de aquí en adelante) obtiene información del medio por el
cual transita a través de unos fotodiodos y unas fotorresistencias que actúan como sensores, estos
sensores arrojan como resultado niveles de voltaje que varían en proporción directa con la proximidad
al obstáculo, los niveles de voltaje después de pasar por un comparador de niveles se convierten en
niveles digitales, los cuales determinan una dirección especifica al actuar como entradas en el bus de
direcciones de una memoria RAM, la cual se ha cargado con un programa, que contiene instrucciones
precisas para lograr la evasión de obstáculos, estas instrucciones que
provienen del bus de datos de la memoria RAM, controlan directamente 2 dispositivos transistorizados
conocidos como puentes H, los cuales interactúan directamente con los motores de dirección del
vehículo, indicándoles la acción de giro y por tanto ejecutando los diferentes movimientos para los
cuales se diseñó VEO.
Es necesario portal motivo presentar el programa que se cargó en la memoria RAM según
(Catálogo,2010).
5.- CONVERTIR UN AFN A AFD.
Sea M= (Q, Σ, q0, δ, F) un AFND-λ que supondremos conocido. Queremos construir un
AFND M′ tal que L(M) = L(M′).
Antes de continuar debemos de nuevo recordar que esta construcción garantiza la existencia de un
AFND equivalente, pero en ningún caso se garantiza la unicidad, es decir hay muchos AFNDs
equivalentes a M; nosotros construiremos uno de ellos. La idea para la construcción de la nueva
máquina es que desde cualquier estado q de la máquina original, cuando se lee en cinta un símbolo a
del alfabeto, se alcanzan los nuevos estados en tres tiempos: los que se alcanzan desde q por λ
transiciones (la λ- clausura de q); los que se alcanzan por la lectura del símbolo leído, que son
δ(λ-cl(q), a) y los que se alcanzan a partir de éstos por las transiciones λ, que son λ- cl (δ (λ –cl(q), a))
en definitiva un subconjunto de estados, concretamente () a, q δˆ. Además, si ocurre que desde q0 se
llega a algún estado final por caminos etiquetados λ, o lo que es lo mismo si λ-cl(q0) ∩F≠∅, una de las
palabras aceptadas es λ; en tal caso, para que la nueva máquina acepte λ el estado inicial debe ser
final. De modo que tomamos M′= (Q, Σ, q0, δ′, F′), siendo
Los tres tipos de Autómatas vistos, a los que a partir de ahora llamaremos simplemente Autómatas
Finitos, son equivalentes en cuanto a los lenguajes que pueden abarcar.
Ejemplo:
Construimos un AFND equivalente a M6
Dado un AFND siempre es posible encontrar un AFD que reconozca el mismo lenguaje:
• El conjunto de los LAFND = al conjunto de los LAFD.
• Un AFND no es más potente que un AFD, sino que un AFD es un caso particular de AFND.
Un AFD está minimizado, si todos sus estados son distinguibles y alcanzables. Un algoritmo de
minimización de AFD es el siguiente:
Eliminar los estados inaccesibles del autómata. Construir una tabla con todos los pares (p, q) de
estados restantes. Marcar en la tabla aquellas entradas donde un estado es final y el otro es no-final,
es decir, aquellos pares de estados que son claramente distinguibles. Para cada par (p, q) y cada
símbolo a del alfabeto, tal que r = δ (p, a) y s = δ (q, a): Si (r, s) ya ha sido marcado, entonces p y q
también son distinguibles, por lo tanto, marcar la entrada (p, q). De lo contrario, colocar (p, q) en una
lista asociada a la entrada (r, s).
Luego del tercer paso, si la tabla creada queda completamente marcada, entonces el AFD inicial ya
era mínimo. La complejidad computacional del problema de minimizar un AFD es polinomial. De hecho,
existen algoritmos más eficientes aún que el mostrado en este artículo (aunque menos intuitivos).11
Sin embargo, el problema de minimizar un autómata finito no determinista es NP-completo y PSPACE-
completo. En la primera figura del ejemplo, se muestra un autómata con el estado inaccesible d, el
cual puede eliminarse inmediatamente. Luego se construye la tabla de pares de estados, y a
continuación se marcan, de acuerdo a la tercera línea del algoritmo, las filas y columnas
correspondientes a los estados finales c y g, salvo la celda que representa el par (c,g), puesto que al
ser ambos estados finales, pueden ser estados equivalentes. Posteriormente, se marcan las celdas
restantes de acuerdo a la cuarta línea del algoritmo, notando que el par (b, f) queda asociado con el
par (c, g), y así finalmente se obtiene el autómata final, agrupando los estados b y f, así como c y g,
tal y como se muestra en la segunda figura del ejemplo.
El AFD mínimo existe y es único, es decir Teorema 1.1 Dado un AFD M = (Q, Σ, δ, q0, F), existe un
AFD M′ con L(M) = L (M′) y tal que M′ tiene el mínimo número de estados de entre todos los AFD que
reconocen L(M). Teorema 1.2 Dados dos autómatas M1 y M2 tales que L(M1) = L(M2) y tales que M1
y M2 tienen el mínimo número de estados de entre todos los AFD que reconocen L(M1), entonces M1
= M2 (salvo cambio de nombre de los estados). Podías encontrar la demostración de ambos resultados
en el libro de Hopcroft, Motwani y Ullman.
Dado un AFD M = (Q, Σ, δ, q0, F), se trata de encontrar un AFD M′ con L(M) = L (M′) y tal que M′ tenga
el mínimo número de estados posible. Para ello, el método consiste en encontrar todos los estados
que son equivalentes, es decir, que son indistinguibles en el aut´omata. Por cada clase de estados
equivalentes, el aut´omata mínimo necesitaría un solo estado. Definición 2.1 Dados dos estados q, q′
∈ Q, q y q ′ son indistinguibles o equivalentes si para cualquier cadena w ∈ Σ ∗ se cumple una de las
dos siguientes opciones: δ (q, w) ∈ F y δ (q ′, w) ∈ F δ (q, w) 6∈ F y δ (q ′, w) 6∈ F
El método para minimizar un autómata consiste básicamente en encontrar todos los estados que son
indistinguibles entre sí y sustituirlos por un único estado. Para ello lo principal es averiguar qué estados
son distinguibles y cuáles no. El método para saber qué estados son indistinguibles es el siguiente: a.
Si hay algún estado inalcanzable eliminarlo b. (i := 0) Marcar todos los estados que pueden distinguirse
con la cadena vacía (es decir, todos los finales se pueden distinguir de los no finales). c. (i: = i + 1)
Marcar como distinguibles q y q ′ si con algún a ∈ Σ tenemos δ (q, a) y δ (q ′, a) dos estados que ahora
son distinguibles. d. Si en el paso anterior se han distinguido nuevos estados, entonces volver al paso
c.
CONCLUSION
Estos algoritmos ayudan a la resolución de problemas del mundo real, con la diferencia
que estos tienden a hacer tratados más detalladamente, unos que otros.
Estos autómatas han venido a facilitar y ayudar los programadores como al ser humano
en las tomas de decisiones en cuanto a problemas de la vida cotidiana, Ya que en casos
particulares se tiende a llegar al desbordamiento de ideas en cuanto al análisis y diseño
de respuestas a un suceso en particular de la vida diaria, además de ello los autómatas
ayudan en la estandarización de las máquinas electrónicas para poder entrar de un
estado a otro, o sea estas pueden llegar a pensar que decisión tomar, cuando estén
sometidas o se encuentren en una situación dada en un contexto en especial.
Para finalizar se destaca que los autómatas son herramientas muy sencillas y a la vez
efectivas, como pasos para las soluciones de problemas; interpretadas de forma
matemática en grafos, que ayudan a la persona a interpretación de los resultados, son,
sencillos y factibles
FUENTES BIBLIOGRAFICAS:
• https://kataix.umag.cl/~jaguila/Compilers/T05_ER_en_AFN.pdf
• https://www.redalyc.org/pdf/816/81606107.pdf
• https://www.institucional.frc.utn.edu.ar/sistemas/ghd/T-M-AFND.htm
• https://ccc.inaoep.mx/~grodrig/Descargas/AutomatasLenguajesCapitulo2.pdf
• http://webdiis.unizar.es/asignaturas/TC/wp/wpcontent/uploads/2012/09/121008
MinimAFDs.pdf
• https://sites.google.com/site/tautomatasfinal/minimizaci
• Manuel Alfonseca Moreno, Justo Sancho Rodríguez, Miguel Martínez Orga. (1987). Teoría de
lenguajes, gramáticas y autómatas. Madrid, España: Madrid: Universidad y Cultura, D.L. 1987.
• JOHN E. HOPCROFT, RAJEEV MOTWANI, JEFFREY D. ULLMAN. (2008). Introducción a la teoría
de autómatas lenguajes y computación. Madrid, España: PEARSON EDUCACIÓN S.A