I
INGENIERIA EN SISTEMAS COMPUTACIONALES
LENGUAJES AUTOMATAS
UNIDAD 3
AUTOMATAS FINITOS
ISC ENRIQUE PONCE RIVERA, MC
S501
23-10-2016
NOMBRE DEL ALUMNO: ANEL VERONICA SOSA MEJIA
Fecha de entrega: 23/10/2016
Índice
Contenido
Introducción ........................................................................................................................................................... 3
3.2 Clasificación de AF............................................................................................................................................ 4
3.3 Conversión de un AFND a AFD ......................................................................................................................... 6
Implementación de los algoritmos para convertir un AFN en un AFD............................................................... 6
3.4 Representación de ER usando AFND................................................................................................................ 7
3.5 Minimización de estados en un AF................................................................................................................... 9
3.6 Aplicaciones (definición de un caso deestudio)............................................................................................. 10
Conclusiones......................................................................................................................................................... 11
Referencias........................................................................................................................................................... 12
3
Introducción
En la siguiente investigación se tomaran los temas correspondientes a la unidad tres de la materia
lenguajes y autómatas tales como temas a cerca de los autómatas finitos donde se aprenderá y
conocerá la importancia del estudio de los autómatas dentro de los procesos de desarrollo de
software, y algunas aplicaciones.
Los autómatas son esencialmente importantes en las actividades sociales, ya que se encuentran
dentro de todo tipo de maquinaria y aplicaciones desarrolladas, donde estas tienen las
funcionalidades específicas con las que realizan sus operaciones y actividades; además de sus
comportamientos, características y funcionalidad que tienden los autómatas se detallara cómo
influyen en la vida social y real de los ser humanos.
Los autómatas finitos, son logísticas matemáticas, en las que se realizan operaciones en cada
estado de los eventos, estos eventos pueden ser de un solo estado o varios; al tener acciones con
estados de dos o más eventos, los autómatas finitos tienden a cambiar de finitos determinísticos a
nodeterminísticos.
Dentro de estas hojas se denotan las esquematizaciones de los nuevos autómatas finitos:
Determinísticos y No Determinísticos
Se conocerán su estructuras, funcionalidades y comportamientos entre estos dos tipos de
autómatas, dentro de ello se abarcara las conversiones o transformaciones entre estos autómatas.
4
Unidad 3. Autómatas Finitos.
3.1 Definición formal
Un autómata finito tiene un conjunto de estados y su “control” pasa de un estado a otro en
respuesta a las “entradas” externas. Una de las diferencias fundamentales entre las clases de
autómatas finitos es si dicho control es “determinista”, lo que quiere decir que el autómata no
puede encontrarse en más de un estado a un mismo tiempo, o “no determinista”, lo que significa
que sí puede estar en varios estados a la vez.
3.2 Clasificación de AF
Un AF tiene un conjunto de estados y su control se mueve de estado en estado, en respuesta a
entradas externas. Estas entradas forman las cadenas a ser analizadas. Los estados de un AF, son
de tres tipos: estado inicial, que permite empezar la ejecución del autómata; estados finales o
estados “de aceptación” que permiten realizar la salida de aceptación de la cadena de entrada en
el caso de que no haya más símbolos en la entrada, y estados intermedios, que son los que
permiten pasar del estado inicial a algún estadofinal.
Los AF se dividen en diversas clases, dependiendo de si su control es “determinista” (lo que
significa que el autómata no puede estar en más de un estado simultáneamente) o “no
determinista”Los autómatas finitos se pueden clasificar en función del tipo de control como:
Autómata finito determinístico (AFD); es aquel que siempre está en un solo estado después de
leer cualquier secuencia de entradas; la palabra determinista nos dice que para cada entrada existe
un único estado al que el autómata puede llegar partiendo del estado actual; comencemos
dandola definición formal. El autómata finito determinista. El término “determinista” hace
referencia al
5
hecho de que, para cada entrada, existe un único estado al que el autómata pueda llegar partiendo
del estado actual.
Un AFD genera un solo tipo de salida:
acepta o no una secuencia de símbolos de entrada. Esa aceptación está representada si el
autómata se encuentra en algún estado del conjunto F. El comportamiento de un AFD, comienza
en el estado inicial (q0), y según se van recibiendo los símbolos de la entrada transita entre los
estados (del conjunto Q), de acuerdo a la función de transición f. Si en un determinado momento
se encuentra en un estado de aceptación (del conjunto F), reconoce como válida la cadena
formada por los símbolos de entrada leídos hasta el momento. Si no, no es aceptada.
Un autómata puede ser representado mediante un grafo dirigido (digrafo) el cual se conoce como
diagrama de transiciones, donde los vértices del mismo corresponden a los estados del autómata,
en el caso del estado inicial este tendrá una flecha que apunta hacia él, y los estados finales se
representaran mediante un circulo con línea doble; si existe una transición del estado q al p sobre
la entrada a entonces existe un arco con etiqueta a que va del estado q al estado p en el diagrama
de transición. El autómata acepta una cadena si la secuencia de transiciones correspondientes a
los símbolos de conducen del estado inicial a un estado final.
Si se modifica el modelo del autómata finito, para permitirle ninguna, una o más transiciones de un
estado sobre el mismo símbolo de entrada, al nuevo modelo lo conoceremos como autómata
finito no determinístico. Tiene la capacidad de estar en varios estados simultáneamente. La
diferencia entre AFD y un AFN está en la función de transición. Para el AFN, f es una función que
toma como argumentos un estado y un símbolo de entrada, pero devuelve un conjunto de cero,
uno o más estados (en vez de devolver un estado, como en el caso del AFD).
6
3.3 Conversión de un AFND a AFD
Se observa que el AFN de la Figura 1, tiene dos transiciones desde el estado “0” con la entrada “a”;
es decir, puede ir al estado “0” o al 1.
Ahora se introduce un algoritmo para construir a partir de un AFND un AFD que reconozca el
mismo lenguaje. Este algoritmo se le conoce como construcción de subconjuntos, es útil para
simular un AFND por medio de un programa decomputador.
Construcción de subconjuntos. Construcción de un AFD a partir de un AFN. Entrada.
Un AFN N. Salida.
Un AFD D que acepta el mismo lenguaje.
Método. El algoritmo construye una tabla de transiciones tranD para “D”. Cada estado del AFD es
un conjunto de estados del AFN y se construye tranD de modo que “D” simulará en paralelo todos
los posibles movimientos que “N” puede realizar con una determinada cadena de entrada. Se
utilizan las operaciones del Cuadro 2, para localizar los conjuntos de los estados del AFN (“s”
representa un estado del AFN, y “T”, un conjunto de estados del AFN). Antes de detectar el primer
símbolo de entrada, “N” se puede encontrar en cualquiera de los estados del conjunto cerradura-
(s0), donde s0 es el estado de inicio de K.
Implementación de los algoritmos para convertir un AFN en un AFD.
Para la implementación de estos algoritmos se utiliza el AFN “N”. Que acepta el lenguaje
(a|b)*abb. Se aplica el Algoritmo 2. Construcción de subconjuntos a “N”. El estado de inicio del
AFD equivalente es cerradura-? (0), que es A = {0,1,2,4,7}, puesto que estos son alcanzados desde
el estado 0 por un camino en que todas las aristas están etiquetadas por ? . El alfabeto de símbolos
de entrada es {a, b}. Ahora el algoritmo indica que debe marcarse “A” y después calcular
cerradura- ? (mover(A, a)).
7
Calculando primero mover(A, a), el conjunto de estados de “N” que tiene transiciones en “a” desde
miembros de “A”. Entre los estados 0,1,2,4 y 7 sólo 2 y 7 tienen dichas transiciones, a 3 y a 8, de
modo que:
cerradura- ? (mover({0,1,2,4,7}, a)) =cerradura- ? (3,8) = {1,2,3,4,6,7,8}
Este conjunto se denominará “B”. Así, tranD[A, a] = B. Se presenta el cálculo de la cerradura- ? .
Entre los estados de “A”, sólo 4 tienen una transición en “b” a 5, de modo que el AFD tiene una
transición en “b” desde “A a”.
cerradura- ? (A, b) cerradura-
? (mover(A, b)) =cerradura-
? ({5}) cerradura- ? ({5}) = {1,2,4,5,6,7}
Por lo que, tranD[A, b] = C. Es decir; C = {1,2,4,5,6,7} Se continúa este proceso con los conjuntos B y
C, ahora sin marcar, finalmente se llegará al punto en que todos los conjuntos que son del estado
AFD estén marcados.
3.4 Representación de ER usando AFND
ERs, AFDs y AFNDs son mecanismos equivalentes para denotar los lenguajes regulares. En estas
tres secciones demostraremos esto mediante convertir ER →AFND → AFD → ER. Las dos primeras
conversiones son muy relevantes en la práctica, pues permiten construir verificadores o
buscadores eficientes a partir de ERs.
8
Existen algoritmos que relacionan la especificación de tokens -expresiones regulares-, con el
reconocimiento de éstos -autómatas finitos-. Es posible dada una expresión regular obtener el AFD
que reconozca las cadenas del lenguaje denotado por la expresión regular. También es posible
obtener el AFND que reconozca el lenguaje representado por dicha expresión regular.
El algoritmo que permite construir el autómata finito determinístico está fuera del alcance de estas
notas ( el alumno no tiene los prerrequisitos para su estudio en este curso). Sin embargo, el
algoritmo utilizado para la construcción del autómata finito no determinístico AFND, es
relativamente sencillo de aplicar, ya que se basa en reglas simples. Existen muchas variantes de
este algoritmo denominado “Algoritmo de Thompson”.
Este algoritmo es dirigido por sintaxis, es decir, usa la estructura sintáctica de la expresión regular
para guiar el proceso de construcción del autómata AFND.
Supongamos que N(s)y N(t)son AFND’s para las expresiones regulares sy t, respectivamente.
a) Para la expresión regular s | t(alternancia), construir el siguiente AFND, N(s|t):
b) Para la expresión regular st(concatenación), construir el AFND,N(st)
c) Para la expresión regular s*, construir el AFND,N(s*)
9
3.5 Minimización de estados en un AF
Dos estados de un autómata finito determinista son estados equivalentes si al unirse en un
sólo estado, pueden reconocer el mismo lenguaje regular que si estuviesen separados. Esta
unión de estados implica la unión tanto de sus transiciones de entrada como de salida. Si dos
estados n o son equivalentes, se di ce que son estados distinguibles. Un estado final con un
estado no- final nunca seránequivalentes.
Un AFD está minimizado, si todos sus estados son distinguibles y alcanzables. Un algoritmo de
minimización de AFD es el siguiente:
1. Eliminar los estados inaccesibles es del autómata.
2. Construir una tabla con todos los pares (p, q) de estadosrestantes.
3. Marcar en la tabla aquellas entradas donde un estado es final y el otro es nofinal, es decir,
aquellos pares de estados que son claramentedistinguibles.
4. Para cada par (p, q) y cada símbolo a del alfabeto, tal que r = δ(p,a) y s = δ(q,a): 1. Si (r, s) ya
ha sido marcado, entonces p y q también son distinguibles, por lo tanto marcar la entrada
(p, q). 2. De lo contrario, colocar (p, q) en una lista asociada a la entrada (r,s).
5. Agrupar los pares de estados no marcados.
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 u n AFD es polinomio. De
hecho, existen algoritmos más eficientes aún que el mostrado en este artículo (aunque menos
10
intuitivos). Sin embargo, el problema de minimizar un autómata finito no determinista es NP-
completo y PSPACE- completo.
3.6 Aplicaciones (definición de un caso deestudio)
Construcción del vehículo evasor de obstáculos
Uno de los primeros trabajos que comenzaron a formalizar la dinámica de robots móviles es
(Crowley, 1989) en el que se utilizan dispositivos ultrasónicos en el vehículo para su
posicionamiento y orientación.
En (Maes, 1990) se muestra un estudio del comportamiento de robots autónomos y se divide en
construcción de mapas, exploración, transitar y evasión de obstáculos.
En (Seng, 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
10
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ño VEO.
Es necesario por tal motivo presentar el programa que se cargo en la memoria RAM según (Catálogo,2010).
Conclusiones
Los autómatas son muy importantes en la resolución de problemas indefinibles porque estos
ayudan a los ingenieros en programación a usarlos como análisis y diseño de la resolución de dicho
problema, pueden ser definidos de forma tediosa.
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.
Las herramientas de soluciones de problemas y respuestas en cuanto a su solución podemos
utilizar los grafos y tablas de transiciones de los AF para conocer el tiempo de ejecución y el tiempo
en que se puede tardar para encontrar la posible solución.
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
12
.
Referencias
Manuel Alfonseca Moreno, Justo Sancho Rodríguez, Miguel Martínez Orga. (1987). Teoría
de lenguajes, gramáticas y automátas. 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ÓNS.A
José Del Carmen Méndez Candelaria. (2015). Automatas Finitos. 2016, de
documents.mx Sitio web: http://documents.mx/documents/unidad-iii-y-iv-
lenguajes-y-automatas-i.html