aplicaciones_automatas_finitos

22
INSTITUTO TECNOLOGICO DE TEPIC ING. SISTEMAS COMPUTACIONALES LENGUAJES Y AUTOMATAS I “APLICACIONES DE LOS AUTOMATAS FINITOS” CATEDRATICO: M.D.O.H, ALVARADO MARES SONIA ALUMNOS: LOMELI ROBLES SERGIO RICARDO LOPEZ CYNTHIA MARIELA MELIN BISTRAIN CARLOS TEPIC, NAYARIT A 8 DE JULIO EL 2014

Upload: mariela-lopez

Post on 27-Dec-2015

29 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: APLICACIONES_AUTOMATAS_FINITOS

INSTITUTO TECNOLOGICO DE TEPICING. SISTEMAS COMPUTACIONALES

“APLICACIONES DE LOS AUTOMATAS FINITOS”

CATEDRATICO:M.D.O.H, ALVARADO MARES SONIA

ALUMNOS:LOMELI ROBLES SERGIO RICARDOLOPEZ CYNTHIA MARIELAMELIN BISTRAIN CARLOS

TEPIC, NAYARIT A 8 DE JULIO EL 2014

Page 2: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

INDICE

1. Desarrollo. . . . . . . . . . 4

Aplicaciones para describir la trayectoria de un vehículo elevador de obstáculo. . . . . . . . . . . 4

Analizadores de léxico. . . . . . . . 10

Editores de Texto. . . . . . . . . 11

Búsqueda de Texto. . . . . . . . 12

Aplicaciones de las expresiones regulares y autómatas finitos. . 14

2. Conclusión. . . . . . . . . . 163. Bibliografías. . . . . . . . . . 17

Página 2

Page 3: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

INTRODUCCION

Existe un gran número de problemas de diseño de software que simplifican mediante la conversión automática de la notación de las expresiones regulares a una instrumentación eficiente de computadora del autómata finito correspondiente.

Los autómatas finitos se usan frecuentemente en los problemas que implican el análisis de cadenas de caracteres.Este trabajo contiene información sobre algunas aplicaciones de los autómatas finitos, las cuales son en analizadores léxicos así como editores de texto.

Página 3

Page 4: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

APLICACIÓN PARA DESCRIBIR LA TRAYECTORIA DE UN VEHÍCULO ELEVASOR DE OBSTÁCULOS

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 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 por tal motivo presentar el programa que se cargó 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 siguiente imagen se puede observar la apariencia física del vehículo evasor de obstáculos.

Página 4

Page 5: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

La forma en que se encuentran distribuidos los cuatro sensores en el vehículo se puede apreciar en la imagen 2, donde cada uno de los sensores establece un bit en el bus de direcciones de la memoria RAM, teniendo por consecuencia 24 direcciones definidas en la memoria. El sensor 4 establece el primer bit de izquierda a derecha en el bus de direcciones, es decir el bit menos significativo, el sensor 3 establece el segundo bit, el sensor 2 el tercer bit, y el sensor 1 el cuarto bit, es decir el más significativo. Cabe mencionar que bajo ninguna presencia de obstáculo los sensores arrojan de manera permanente un bit en estado 0 hacia el bus de direcciones de la memoria, pero con la presencia de un obstáculo, estos arrojan un bit en estado 1. La presencia de un obstáculo en el sensor 1 arrojaría como resultado la secuencia de bits 1000 por ejemplo. En cada una de las direcciones de la memoria RAM determinadas por los sensores, existe una instrucción cargada que establece la dirección de giro del motor, después de haber interactuado con el puente H transistorizado, el cual requiere de 2 bits de control (teniendo por tanto 4 posibles entradas) para realizar 3 acciones básicas que son: giro del motor hacia un sentido, giro hacia el lado contrario y permanencia estática del  motor. Estas acciones se ejemplifican con mayor claridad en la tabla 1.

Tabla 1. Operación del puente H y direcciones de giro de los motores.

Entrada al Puente H(Bits de Control)

Estado del Motor

00 Permanencia estática01 Giro hacia delante10 Giro hacia atrás11 Estado prohibido

Página 5

Page 6: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

El VEO cuenta con 2 motores de dirección, cada uno de los cuales está controlado por un puente H de manera independiente. En la figura 3 se aprecia la distribución de los motores en el vehículo, de donde se estableció el siguiente lineamiento de operación: el motor derecho será controlado por el puente H número 1, y el motor izquierdo será controlado por el puente H número 2.

Figura 3. Distribución de motores de VEO (Vista trasera del vehículo).

Teniendo por consecuencia la distribución de bits provenientes del bus de datos de la memoria RAM, según lo muestra la tabla 2.

Las

acciones evasoras mencionadas en la tabla 2, se describen en la tabla 3.

1Pedro Isasi Viñuela, Paloma Martínez Fernández, Daniel Borrajo Millán. “Lenguajes, gramáticas y autómatas.” Un Enfoque Práctico, Addison-Wesley 1997.

.

Página 6

Entradas

(Sensores)

Alfabeto∑

Entradas al puente H

Acción

evasora

Entradas

(Sensores)

Alfabeto∑

Entradas al puente H

Acción

evasora

0000 a 0101 A 1000 i 1000 E0001 b 0001 C 1001 j 0110 G0010 c 0111 D 1010 k 0110 G0011 d 0101 A 1011 l 0110 G0100 e 0010 F 1100 m 1010 B0101 f 0110 G 1101 n 0110 G0110 g 0110 G 1110 ñ 0110 G0111 h 0110 G 1111 o 0110 G

Page 7: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

Tabla 3. Descripción de acciones evasoras del VEO.Acción

EvasoraSignificado Descripción de la acción Estado

AAvanzar hacia adelante

Ambos motores giran hacia delanteqo

B Avanzar hacia atrás Ambos motores giran hacia atrás q1

CGiro a la izquierda y hacia delante

Motor derecho gira hacia adelante y motor izquierdo no gira

q2

DGiro a la derecha y hacia delante

Motor izquierdo gira hacia adelante y motor derecho no gira

q3

EGiro a la izquierda y hacia atrás

Motor izquierdo gira hacia atrás y motor derecho no gira

q4

FGiro a la derecha y hacia atrás

Motor derecho gira hacia atrás y motor izquierdo no gira

q5

GGiro rápido El motor izquierdo gira hacia adelante y el

motor derecho gira hacia atrásq6

En la acción evasora A, la entrada para el autómata finito estará definida por y donde y puede tomar cualquiera de las dos posibles entradas   que originan el estado A en el vehículo y que son: a y d. Mientras que en la acción evasora G, la entrada para el autómata finito estará definida por z donde z puede tomar cualquiera de las 9 posibles entradas que provienen de los sensores y que originan el estado G en el vehículo, que son: f, g, h, j, k, l, n, ñ, o. Las estrategias C y D están diseñadas para evadir obstáculos que se presenten en la parte trasera del vehículo, es decir cuando se presentan obstáculos en los sensores 3 y 4. Las estrategias evasivas E y F están diseñadas para evitar obstáculos que se presenten en la parte delantera del vehículo, es decir cuando se presentan obstáculos en los sensores 1 y 2. En la figura 4(a) se resumen los movimientos anteriormente descritos.

Antes de presentar el diagrama de transiciones que caracteriza la dinámica de VEO, es necesario establecer el conjunto de trayectorias posibles, lo cual lo hacemos con ayuda de una pequeña retícula, que representa un plano bidimensional, la cual tiene un conjunto de obstáculos a evadir, estos últimos están representados por cuadros negros en la figura

Página 7

Page 8: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

4(b); de donde se observa que el conjunto de acciones evasivas serían en forma ordenada: C, D, C, D, y que las entradas al sistema (VEO) que harían posible una trayectoria valida serían: b, c, b, c. Nótese que la permanencia en un estado no está definida como una trayectoria valida, por tanto dicho de otra forma una cadena definida por y, y, y  ó b, b, b ó c, c, c ó d, d, d, etc. no es permitida por el autómata, pues en el diagrama de transición presentado en una sección posterior ni siquiera permite una transición de estados.

 Un análisis detallado a los estados posibles del vehículo y las trayectorias validas, y considerando lo establecido en la descripción de las acciones evasoras, nos permite denotar de manera formal el autómata finito no determinístico correspondiente como sigue

M = (Q, ∑, δ, q0, F) Donde       Q = {q0, q1, q2, q3, q4, q5, q6,}.       ∑ = {b, c, e, i, m, y, z}.         F = {Ø}.

Donde se define a F como un elemento nulo, ya que como se aprecia en la tabla 3 el vehículo no tiene definido estados finales. De una observación directa al autómata anteriormente planteado se distingue que el modelado descriptivo del vehículo se pudo realizar utilizando siete estados, después de haber redefinido el alfabeto del autómata, este se compone de cinco entradas  y finalmente el estado inicial se encuentra definido por  un solo estado que es q0.

ResultadosEl modelado de la trayectoria del vehículo VEO  presentado en este artículo por medio de autómatas finitos no determinísticos resultó ser una valiosa herramienta para describir de manera formal su dinámica, lo cual no representaba una tarea tan sencilla, pues VEO tiene bien definidos 7 posibles estados, lo cual complica un poco su entendimiento.  Se puede notar por inspección directa por parte del  lector a través de un análisis al diagrama de transición y a la  función  de  transición presentados  en  este trabajo en las figuras  7 y 8 respectivamente, que el siguiente estado del vehículo,  con  siete estados finitos y siete entradas conocidas, se puede estimar de una forma muy sencilla y concisa, lo cual representó uno de los retos primordiales de este trabajo.

Página 8

Page 9: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

Figura 5. Diagrama de transiciones para el autómata finito no determinístico que describe la dinámica de VEO.

 

Figura 6. Función de Transición δ para el autómata finito no determinístico de la figura 7.

2 Enrique Alfonseca Cubero, Manuel Alfonseca Cubero, Roberto Moriyón Salomón." Teoría de autómatas y lenguajes formales". McGraw-Hill (2007). Capítulos 3 y 7

Página 9

Page 10: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

ANALIZADORES DE LEXICO

Los tokens de un lenguaje de programación son, casi sin excepción, expresables en forma de conjuntos regulares. Por ejemplo, los identificadores de ALGOL3, que son letras mayúsculas o minúsculas seguidas por cualquier sucesión de letras y dígitos, sin límite en la longitud puede expresarse como:

En donde “letra” significa A + B+… + Z + a + b+… + z y “digito” 0 + 1 +… + 9. Los identificadores de FORTRAN, con un límite de longitud de seis y las letras restringidas a las mayúsculas y al símbolo $, pueden expresarse como:

En donde “letra” significa ($ + A + B +… +Z). Las constantes aritméticas de SNOBOL que permiten la notación exponencial presente en muchos otros lenguajes) pueden expresarse como:

Un cierto número de generadores de analizadores de léxico toman como entrada una secuencia de expresiones regulares que describen a los tokens y producen un solo autómata finito que reconoce a cualquier token. Por lo general, convierten la expresión

regular a un AFN con transiciones y después construyen subconjuntos de estados para

producir un AFD2 directamente, en lugar de eliminar primero las transiciones . Cada estado final indica el token particular que se ha encontrado, de modo que el autómata es en realidad una máquina de Moore. La función de transición del FA esta codificada en una de varias formas para tomar menos espacio que el que tomaría la tabla de transiciones si se representara como un arreglo en dos dimensiones. El analizador de léxico producido por el generador es un programa fijo que interpreta tablas codificadas, junto con la tabla particular que representa al AF que reconoce los tokens (especificados al generador en forma de expresiones regulares). Este analizador de léxico puede ser utilizado, entonces, como el módulo de un compilador.

3John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Teoría de autómatas, lenguajes y computación, Pearson Addison Wesley, Tercera edición, 2007.

Página 10

Page 11: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

EDITORES DE TEXTO

Ciertos editores de texto4 y programas similares permiten la sustitución de una cadena por cualquier cadena que concuerde con una expresión regular. Por ejemplo el editor de texto UNIX permite que un comando como:

Sustituyen a un solo espacio en blanco para la primera cadena de dos o más espacios en blanco que se encuentran en una línea dada. La expresión “Cualquier” denota a a1 + a2 +… + en la que las “a’s” son todos los caracteres de una computadora excepto el carácter “nueva línea”. Podemos convertir una expresión regular “r” a un AFD3 que acepte a cualquier “Cualquier*r”. Nótese que la presencia de la operación “cualquier*r” nos permite reconocer un miembro de L (r) que comience en cualquier lugar de la línea. Sin embargo la conversión de una expresión regular a un AFD toma mucho más tiempo que el que toma barrer una sola línea corta utilizando el DFA, y el DFA podría tener un cierto número de estados que son una función exponencial de la longitud de la expresión regular.Lo que realmente sucede en el editor de texto UNIX es que la expresión regular

“cualquier*r” es convertida a un AFN con transiciones , y el AFN entonces se simula directamente. Sin embargo una vez que se ha construido una columna, listando todos los estados en los que puede estar el AFN sobre un prefijo determinado de la salida, la columna inmediata anterior ya no es necesaria y se elimina con el fin de ahorrar espacio.

4Deán kelley, teoría de autómatas y lenguajes formales, Prentice hall, 1995.

Página 11

Page 12: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

BÚSQUEDA DE TEXTO

En esta sección, veremos que el estudio abstracto de la sección anterior, en el que hemos considerado el “problema” de decidir si una secuencia de bits termina en 01, es realmente un modelo excelente para diversos problemas reales que se presentan en aplicaciones como búsquedas en la Web y extracción de información de textos.

o Búsqueda de cadenas en un texto

Un problema habitual en la época de la Web y otros repositorios de textos es el siguiente: dado un conjunto de palabras, determinar todos los documentos que contengan una de dichas palabras (o todas). Un motor de búsqueda es un ejemplo popular de este proceso.

El motor de búsqueda utiliza una tecnología concreta conocida como índices invertidos, en la que para cada palabra que aparece en la Web (existen 100.000.000 de palabras diferentes), se almacena una lista de todos los lugares donde aparece dicha palabra. Las máquinas con grandes cantidades de memoria principal mantienen disponibles las listas más comunes, permitiendo que muchas personas busquen documentos de forma simultánea.

o Autómatas finitos no deterministas para búsqueda de texto

Supongamos que tenemos un conjunto de palabras, que denominaremos palabras clave, y deseamos hallar las apariciones de cualquiera de estas palabras. En aplicaciones de este tipo, una forma útil de proceder consiste en diseñar un autómata finito no determinista que indique, mediante un estado de aceptación, que ha encontrado una de las palabras clave. El texto de un documento se introduce carácter a carácter en este AFN5, el cual reconoce a continuación las apariciones de las palabras clave en dicho texto. Existe una forma simple para que un AFN reconozca un conjunto de palabras clave.

1. Hay un estado inicial con una transición a sí mismo para cada uno de los símbolos de entrada, por ejemplo, todos los caracteres ASCII imprimibles si estamos examinando texto. Intuitivamente, el estado inicial representa una “conjetura” de que todavía no hemos detectado una de las palabras clave, incluso aunque hayamos encontrado algunas de las letras de una de esas palabras.

2. Para cada palabra clave a1a2 · · ·ak, existen k estados, por ejemplo, q1, q2,. . ., qk. Existe una transición desde el estado inicial a q1 para el símbolo a1, una transición desde q1 a q2 para el símbolo a2, etc. El estado qk es un estado de aceptación e indica que se ha encontrado la palabra clave a1, a2 · · ·ak.

Página 12

Page 13: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

o Un AFD para reconocer un conjunto de palabras clave

Podemos aplicar la construcción de subconjuntos a cualquier AFN. Sin embargo, cuando aplicamos dicha construcción a un AFN que fue diseñado a partir de un conjunto de palabras, comprobamos que el número de estados del AFD5 nunca es mayor que el número de estados del AFN.

Puesto que en el caso peor, el número de estados crece exponencialmente, esta observación es una buena noticia y explica por qué se usa frecuentemente el método de diseñar un AFN para las palabras clave y luego construir un AFD a partir de él.

Las reglas para construir el conjunto de estados del AFD son las siguientes:

a) Si q0 es el estado inicial del AFN, entonces {q0} es uno de los estados del AFD.

b) Suponemos que p es uno de los estados del AFN y se llega a él desde el estado inicial siguiendo un camino cuyos símbolos son a1, a2 · · ·am. Luego uno de los estados del AFD es el conjunto de estados del AFN constituido por:

1. q0.2. p.3. Cualquier otro estado del AFN al que se pueda llegar desde q0 siguiendo un camino cuyas etiquetas sean un sufijo de a1a2 · · ·am, es decir, cualquier secuencia de símbolos de la forma ajaj+1 · · ·am.

Observe que, en general, existirá un estado del AFD para cada estado p del AFN. Sin embargo, en el paso (b), dos estados pueden llevar al mismo conjunto de estados del AFN y, por tanto, será un estado del AFD. Por ejemplo, si dos de las palabras clave comienzan por la misma letra, por ejemplo a, entonces los dos estados del AFN a los que se puede llegar desde q0 a través del arco etiquetado con a llevarán al mismo conjunto de estados del AFN y, por tanto, se reducirán a uno en el AFD.

5JOHN E. HOPCROFT, JEFFREY D. ULLMAN, introducción a la teoría de autómatas, lenguajes y computación, compañía editorial continental, S.A. de C.V. MEXICO, primera edición 1993.

Página 13

Page 14: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

APLICACIONES DE LAS EXPRESIONES REGULARES Y LOS AUTÓMATAS FINITOS

Los autómatas finitos6 se usan frecuentemente en los problemas que implican el análisis de cadenas de caracteres. Tales problemas incluyen problemas de búsqueda e identificación, tales como la búsqueda de la existencia de una cadena en un fichero o el reconocimiento de cadenas de entrada que satisfagan ciertos criterios.

Un autómata finito es, él mismo, un modelo de un procedimiento para reconocimiento de cadenas por medio de la expresión regular asociada.

Por tanto, en la búsqueda de una cadena en un fichero, podemos aplicar el autómata finito de forma sistemática a las cadenas del fichero hasta que se acepta la cadena o se termina el fichero.

Un problema común en la programación de computadoras es el de tener la seguridad de que los datos de entrada de un programa son correctos. Por ejemplo, si se espera un entero sin signo como dato de entrada y el usuario confunde uno de los dígitos con un carácter no numérico, se puede dar todo tipo de resultados impropios, desde una terminación anormal hasta el cálculo de resultados incorrectos (basura dentro, basura fuera).

La programación cuidadosa pretende construir un programa a “prueba de balas”, incluyendo unas rutinas de entrada que analicen la información introducida por el usuario y, de alguna forma, prevenir que se aplique información incorrecta al programa. Si pudiéramos construir un autómata finito que aceptara solamente las cadenas que representan información correcta, entonces tendríamos un modelo para dicha rutina. De entrada.

Puesto que los autómatas finitos se corresponden con las expresiones regulares, el problema se reduce a especificar la información correcta por medio de expresiones regulares.

En el caso de que la entrada esté formada por enteros sin signo, el lenguaje vendrá dado por I = {1, 2, 3 , 4 , 5, 6, 7, 8, 9} * {0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8,9 }¿. Es fácil construir un autómata finito que acepte I.

Página 14

Page 15: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

También es sencillo traducir el autómata finito6 a un código en un lenguaje de programación; sólo se necesita seguir el rastro de la posición actual en la cadena y del estado actual. A la vez que se recorre la cadena, se cambia de estado según corresponda y, cuando se acaba la cadena, se comprueba a qué estado se ha llegado y, según eso, se acepta o se rechazadla cadena.

Las expresiones regulares se pueden usar para especificar las unidades léxicas presentes en un lenguaje de programación. Los autómatas finitos asociados se usan para reconocer dichas unidades (llamadas componentes léxicos). Dicho análisis es una etapa importante en la compilación de programas de ordenador.

6John e. hopcroft, Rajeev motwani, Jeffrey d. ullman, Introducción a la teoría de autómatas, lenguajes y computación, Pearson Addison Wesley, tercera edición, Madrid, 2007.

Página 15

Page 16: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

CONCLUSION

Los autómatas finitos se usan comúnmente para aplicarlos en algún análisis o búsqueda de caracteres específicos, como conclusión debo decir que los autómatas finitos los hemos visto ya aplicados desde hace ya bastante tiempo sin darnos cuenta, por ejemplo un analizador de palabras o caracteres como Microsoft office Word maneja lo que son dichos autómatas, el autómata es completamente fundamental en todos los sistemas computacionales porque se basan desde expresiones regulares el cual está compuesto

de estas.

Página 16

Page 17: APLICACIONES_AUTOMATAS_FINITOS

LENGUAJES Y AUTOMATAS I

APLICACIONES DE LOS AUTOMATAS FINITOS

BIBLIOGRAFIAS

(1) Deán kelley, “Teoría de autómatas y lenguajes formales”, Prentice hall, Pearson educación, primera edición, Madrid 1995.

(2) J. Glenn Brookshear, “TEORÍA DE LA COMPUTACIÓN lenguajes formales, autómatas y complejidad”, Addison Wesley iberoamericana.

(3) John e. hopcroft, Jeffrey d. ullman, “Introducción a la teoría de autómatas, lenguajes y computación”, Pearson Addison Wesley, 1993.

(4) Manuel Alfonseca, Justo Sancho, Miguel Martínez Orga. "Teoría de lenguajes, gramáticas y autómatas". Publicaciones R.A.E.C. 1997.

Página 17