Publicidad
 automatas finitos
 automatas finitos
 automatas finitos
 automatas finitos
Publicidad
 automatas finitos
 automatas finitos
 automatas finitos
 automatas finitos
 automatas finitos
Publicidad
 automatas finitos
 automatas finitos
 automatas finitos
Próximo SlideShare
Lenguajes autómatas.Lenguajes autómatas.
Cargando en ... 3
1 de 12
Publicidad

Más contenido relacionado

Publicidad
Publicidad

automatas finitos

  1. 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
  2. Í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. 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. 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. 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. 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. 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. 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. 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. 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
  11. 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. 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
Publicidad