Bloque 3 Autómatas finitos

Un autómata finito (AF) o máquina de estado finito es un modelo computacional que realiza cómputos en forma automática sobre una entrada para producir una salida.
 Este modelo está conformado por un alfabeto, un conjunto de estados y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una función de transición, que recibe a partir de un estado inicial una cadena de caracteres pertenecientes al alfabeto (la entrada), y que va leyendo dicha cadena a medida que el autómata se desplaza de un estado a otro, para finalmente detenerse en un estado final o de aceptación, que representa la salida. 
La finalidad de los autómatas finitos es la de reconocer lenguajes regulares, que corresponden a los lenguajes formales más simples según la Jerarquía de Chomsky. 

3.1 Definición formal Autómata Finito

 Formalmente, un autómata finito es una 5-tupla (Q, Σ, q0, δ, F) donde:
 es un conjunto finito de estados; 
 es un alfabeto finito; 
 es el estado inicial; 
 es una función de transición; 
 es un conjunto de estados finales o de aceptación. 
En el comienzo del proceso de reconocimiento de una cadena de entrada, el autómata finito se encuentra en el estado inicial y a medida que procesa cada símbolo de la cadena va cambiando de estado de acuerdo a lo determinado por la función de transición. Cuando se ha procesado el último de los símbolos de la cadena de entrada, el autómata se detiene en el estado final del proceso. Si el estado final en el que se detuvo es un estado de aceptación, entonces la cadena pertenece al lenguaje reconocido por el autómata; en caso contrario, la cadena no pertenece a dicho lenguaje.
Note que el estado inicial de un autómata finito siempre es único, en tanto que los estados finales pueden ser más de uno, es decir, el conjunto puede contener más de un elemento. También puede darse el caso de que un estado final corresponda al mismo estado inicial.

3.2 Clasificación de Autómata Finito

Los autómatas se pueden clasificar en: 
 Deterministas; Cada combinación (estado, símbolo de entrada) produce un solo estado. 
 No Deterministas; Cada combinación (estado, símbolo de entrada) produce varios estados y además son posibles las transiciones con λ. 

3.3 Conversión de un AFND a AFD 

Para convertir un AFD en un AFN que reconozca el mismo lenguaje. Este algoritmo, a menudo es llamado construcción de subconjuntos, es útil para simular un AFN por medio de un programa de computadora.
En la tabla de transiciones de un AFN, cada entrada es un conjunto de estados; en la tabla de transiciones de un AFD, cada entrada es tan solo un estado. La idea general tras la construcción AFN a AFD es que cada estado de AFD corresponde a un conjunto de estados del AFN. El AFD utiliza un estado para localizar todos los posibles estados en los que puede estar el AFN después de leer cada símbolo de la entrada. Es decir, después de leer la entrara a1, a2,. ..an, el AFD se encuentra en un estado que representa al subconjunto T de los estados del AFN alcanzables desde el estado de inicio del AFN a lo largo de algún camino etiquetado con a1, a2,. ..an. El número de estados de AFD puede ser exponencialmente en el número de estados del AFN pero en la práctica este peor caso ocurre raramente. 
Algoritmo (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 de la siguiente tabla 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 N. Supóngase que exactamente los estados del conjunto T son alcanzables desde S0 con una secuencia de símbolos de entrada, y sea a el siguiente símbolo de entrada. Al ver a, N puede trasladarse a cualquiera de los estados del conjunto mueve(T, a). Cuando se permiten transicionesencontrarse cualquiera de los estados de cerradura- (T, a), después de ver la a. 
Se construyen estadosD, el conjunto de estados de D, y tranD, la tabla de transiciones de D, de la siguiente forma. Cada estado de D corresponde a un conjunto de estados de AFN en los que podría estar N después de leer alguna secuencia de símbolos de entrada, incluidas todas las posibles transicionesanteriores o posteriores a la lectura de símbolos. El estado de inicio de D es cerradura- S0). Se añaden los estados y las transiciones a D utilizando el algoritmo siguiente. Un estado de D es un estado de aceptación si es un conjunto de estados de AFN que contenga al menos un estado de aceptación de N.
al inicio, cerradura- 0) es el único estado dentro de estadosD y no está marcado; while haya un estado no marcado T en estadosD do begin marcar T; for cada símbolo de entrada a do begin U:= cerraduraif U no está en estadosD then añadir U como estado no marcado a estadosD; tranD[T, a]:= U; end; end; El cálculo de cerradura- (T) es un proceso típico de búsqueda en un grafo de nodos alcanzables desde un conjunto dado de nodos. En este caso, los estados de T son el conjunto dado de nodos. En este caso, los estados de T son el conjunto dado de nodos, y el grafo está compuesto solamente por las aristas del AFN etiquetadas por.
Ejemplo: 
La siguiente figura muestra otro AFN N aceptando el lenguaje (a | b)*abb. Se aplica el algoritmo anterior a N. El estado de inicio del AFD equivalente es cerradura- , que es A = {0, 1 , 2, 4, 7 }, puesto que estos son exactamente los estados alcanzables desde el estado 0 un camino puede no tener aristas, de modo que 0 es alcanzado desde sí mismo por dicho camino. Aquí, el alfabeto de símbolos de entrada es {a, b}. El algoritmo anterior indica que hay que marcar A y después calcular cerradura- . Primero se calcula mueve (A, a), el conjunto de estado 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- - Este conjunto se denominará B. Así, tranD[A,a] = B. Entre los estados de A, solo 4 tienen una transición en b a 5, de modo que el AFD tiene una transición en b desde A a C = cerradura- Por tanto, tranD[A,b] = C Si se continua este proceso con los conjuntos B y C, ahora sin marcar, finalmente, se llegará al punto en que todos los conjuntos que son estados del AFD estén marcados. Esto es cierto porque "solo" hay 211 subconjuntos distintos de un conjunto de 11 estados, y un conjunto, una vez marcado, queda marcado para siempre. 
Los cinco conjuntos de estados realmente construidos son:
A = {0,1,2,4,7 } 
B = {1,2,3,4,6,7,8 }
C = {1,2,4,5,6,7 } 
D= {1,2,4,5,6,7,9 }
E= {1,2,4,5,6,7,10 }


El estado A es el estado de inicio, y el estado E es el único estado de aceptación. La tabla de transiciones completa tranD se muestra a continuación. Estado Símbolo de entrada a b A B C B B D C B C D B E E B C 


En la siguiente figura, se muestra un grafo de transiciones para el AFD resultante. 



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 construirverificadores o buscadores eficientes a partir de ERs.
3.4
Definición 
: La función Th convierte ERs en AFNDs según las siguientes reglas.
Prueba 
: Es fácil verificarlo por inspección y aplicando inducción estructural. La única parteque puede causar problemas es la clausura de Kleene, donde otros esquemas alternativos que podrían
 sugerirse (por ejemplo M = (K1, Σ, ∆1
 

{(f1, ε, s1), (s1, ε, f1)}, s1, {f1}) tienen el
 problema de permitir terminar un recorrido de Th(E1) antes de tiempo. Por ejemplo el ejemploque acabamos de dar, aplicado sobre E1 = a
 
 b, reconocería la cadena x = aa



Existen algoritmos que relacionan la especificación de tokens -expresiones regulares-, con el reconocimiento de estos -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

3.5 Minimización de estados en un AF 

Dos estados de un autómata finito determinista son estados equivalentes si al unirseen un sólo estado, pueden reconocer el mismo lenguaje regular que si estuviesenseparados. Esta unión de estados implica la unión tanto de sus transiciones de entradacomo de salida. Si dos estados n o son equivalentes, se di ce que son estadosdistinguibles. Un estado final con un estado no- final nunca serán equivalentes.

Un AFD está minimizado, si todos sus estados son distinguibles y alcanzables. Unalgoritmo 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 estados restantes.3.

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.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 AFDinicial 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 intuitivos). Sin embargo, el problema de minimizar un autómata finito nodeterminista es NP- completo y PSPACE- completo.

3.6 Aplicaciones (definición de un caso de estudio)

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 ultra só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 foto diodos y unas foto resistencias 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 transistor izados 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), lo cual representa el punto de partida para definir el alfabeto que se emplea para la descripción de la dinámica de VEO a través de autómatas finitos.En la figura 5 se puede observar la apariencia física del vehículo evasor de obstáculos.


Comentarios

Entradas populares

Temario