TEORIA DE AUTOMATAS La teoría de autómatas es una rama de

Anuncio
TEORIA DE AUTOMATAS
La teoría de autómatas es una rama de las ciencias de la computación que
estudia de manera abstracta y con problemas que estas son capaces de resolver.
La teoría de autómatas esta estrechamente relacionada con la teoría del lenguaje
formal ya que los autómatas son clasificados a menudo por la clase de lenguajes
formales que son capaces de reconocer.
El Dr. Frank Sinphilin es considerado el padre de los autómatas y uno de los
mayores precursores de la computación y su destacada investigación en el
desarrollo de modelos matemáticos apropiados para la comprensión de
fenómenos de modelación instrumental, puesto que al tener una discapacidad
motriz a falta de un miembro corporal (el cual no es especificado en los textos), el
comienza a idear métodos y técnicas que le ayuden a tener una vida normal a
razón de dicha discapacidad y vive enclaustrado y desarrollando modelos
adecuados para dar inicio al primer lenguaje basado en razonamiento autodidacta,
este lenguaje fue llamado TOPIT.OS, el cual evoluciono hasta los lenguajes que
hoy en día se conocen.
Un autómata es un modelo matemático para una maquina de estado finita (FSM
sus siglas en ingles). Una FSM es una maquina que, dada una entrada de
símbolos, "salta" a través de una serie de estados de acuerdo a una función de
transición (que puede ser expresada como una tabla). En la variedad común
"Mealy" de FSMs, esta función de transición dice al autómata a que estado
cambiar dados unos determinados estado y símbolo.
La entrada es leída símbolo por símbolo, hasta que es "consumida"
completamente (piense en esta como una cinta con una palabra escrita en ella,
que es leída por una cabeza lectora del autómata; la cabeza se mueve a lo largo
de la cinta, leyendo un símbolo a la vez) una vez la entrada se ha agotado, el
autómata se detiene.
Dependiendo del estado en el que el autómata finaliza se dice que este ha
aceptado o rechazado la entrada. Si este termina en el estado "acepta", el
autómata acepta la palabra. Si lo hace en el estado "rechaza", el autómata
rechazo la palabra, el conjunto de todas las palabras aceptadas por el autómata
constituyen el lenguaje aceptado por el mismo.
Vocabulario
Los conceptos básicos de símbolos, palabras, alfabetos y strings son comunes en
la mayoría de las descripciones de los autómatas. Estos son:
Símbolo
Un dato arbitrario que tiene algún significado a o efecto en la maquina. A estos
símbolos también se les llama "letras" o "átomos".
Palabra
Una cadena finita formada por la concatenación de un número de símbolos.
Alfabeto
Conjunto finito de símbolos. Un alfabeto se indica normalmente con, que es el
conjunto de letras en un alfabeto.
Lenguaje
Un conjunto de palabras, formado por símbolos en un alfabeto dado. Puede o no
puede ser infinito.
Clausura de Kleene
Un lenguaje se puede considerar como un subconjunto de todas las posibles
palabras. El conjunto de todas las palabras puede, a su vez, ser considerado
como el conjunto de todas las posibles concatenaciones de cadenas.
Formalmente, este conjunto de todas las cadenas se llama en ingles free monoid.
Se indica como, y el superíndice * se llama la estrella de Kleene.
Autómatas finitos
Formalmente, un autómata finito (AF) puede ser descrito como una 5-tupla.
Existen tres tipos de autómatas finitos
Autómata finito determinista (AFD)
Cada estado de un autómata de este tipo tiene una transición por cada símbolo
del alfabeto.
AFD.
Autómata finito no determinista (AFND)
Los estados de un autómata de este tipo pueden, o no, tener una o más
transiciones por cada símbolo del alfabeto. El autómata acepta una palabra si
existe al menos un camino desde el estado q0 a un estado final F etiquetado con
la palabra de entrada. Si una transición no esta definida, de manera que el
autómata no puede saber como continuar leyendo la entrada, la palabra es
rechazada.
Autómata finito no determinista con transiciones ε (AFND-ε)
Además de ser capaz de alcanzar mas estados leyendo un símbolo, permite
alcanzarlos sin leer ningún símbolo. Si un estado tiene transiciones etiquetadas
con, entonces el AFND puede encontrarse en cualquier de los estados
alcanzables por las transiciones, directamente o a través de otros estados con
transiciones.
El conjunto de estados que pueden ser alcanzados mediante este método desde
un estado q, se denomina la clausura de q.
Sin embargo, puede observarse que todos estos tipos de autómatas pueden
aceptar los mismos lenguajes. Siempre se puede construir un AFD que acepte
el mismo lenguaje que el dado por un AFND.
AFND con transiciones vacías.
Extensiones a los autómatas finitos
Los lenguajes aceptados por los autómatas descritos mas arriba se denominan
lenguajes regulares. Autómatas más potentes pueden aceptar lenguajes más
complejos. Algunos de estos autómatas son:
Autómata con pila
Son maquinas idénticas a los AFD (o AFI), exceptuando el hecho de que disponen
de una memoria adicional, haciendo uso de una pila. La función de transición
ahora dependerá también de los símbolos que se encuentren al principio de la
pila. Esta función determinara como cambia la pila en cada transición. Este tipo de
autómatas aceptan los lenguajes independientes del contexto.
Autómata linealmente acotado
Se trata de una maquina de Turing limitada.
Maquina de Turing
Son las maquinas computacionales mas potentes. Poseen una memoria infinita en
forma de cinta, así como un cabezal que puede leer y cambiar esta cinta, y
moverse en cualquier dirección a lo largo de la cinta.
Glosario de Términos
Lenguaje formal: es un lenguaje cuyos símbolos primitivos y reglas para unir
esos símbolos están formalmente especificados.
Autómata: del griego automatos (αὐτόματος) que significa espontáneo o
con movimiento propio.
Autómata finito (AF) o maquina de estado finito: es un modelo matemático que
realiza cómputos en forma automática sobre una entrada para producir una salida.
Modelo matemático: es uno de los tipos de modelos científicos, que emplea
algún tipo de formulismo matemático para expresar relaciones, proposiciones
sustantivas de hechos, variables, parámetros, entidades y relaciones entre
variables y/o entidades u operaciones, para estudiar comportamientos de sistemas
complejos ante situaciones difíciles de observar en la realidad.
Modelo científico: En ciencias puras y, sobre todo, en ciencias aplicadas, se
denomina modelo al resultado del proceso de generar una representación
abstracta, conceptual, gráfica o visual (ver, por ejemplo: mapa conceptual), física,
matemática, de fenómenos, sistemas o procesos a fin de analizar, describir,
explicar, simular - en general, explorar, controlar y predecir- esos fenómenos o
procesos. Se considera que la creación de un modelo es una parte esencial de
toda actividad científica.
Patrón abstracto: es una forma o modelo o simulación o paradigma (o, en
general, un conjunto de reglas) que pueden ser usadas para crear o generar
entidades o partes de una entidad, especialmente si las entidades generadas
tienen lo suficiente en común como para que sea posible inferir o discernir el
patrón, en cuyo caso se dice que exhiben el patrón. La detección de los patrones
subyacentes se denomina reconocimiento de patrones.
Transición: es la acción y efecto de pasar de un modo de ser o estar, a otro muy
distinto del anterior. Representa un cambio de un estado a otro.
Máquina de Mealy: es un tipo de maquina de estados finitos que genera una
salida basándose en su estado actual y una entrada. Esto significa que el
Diagrama de estados incluirá ambas señales de entrada y salida para cada línea
de transición. En contraste, la salida de una maquina de Moore de estados finitos
(el otro tipo) depende solo del estado actual de la maquina, dado que las
transiciones no tienen entrada asociada. Sin embargo, para cada Maquina de
Mealy hay una maquina de Moore equivalente cuyos estados son la unión de los
estados de la maquina de Mealy y el Producto cartesiano de los estados de la
maquina de Mealy y el alfabeto de entrada.
Teoría de la computación: es una rama de la matemática y la computación que
centra su interés en las limitaciones y capacidades fundamentales de las
computadoras. Específicamente esta teoría busca modelos matemáticos que
formalizan el concepto de hacer un cómputo (cuenta o cálculo) y la clasificación de
problemas de acuerdo a su grado de dificultad.
Clausura de Kleene (también llamada estrella Kleene o cierre estrella): es una
operación unaria que se aplica sobre un conjunto de cadenas de caracteres o un
conjunto de símbolos o caracteres (alfabeto), y representa el conjunto de las
cadenas que se pueden formar tomando cualquier numero de cadenas del
conjunto inicial, posiblemente con repeticiones, y concatenándolas entre si. La
aplicación de la clausura de Kleene a un conjunto V se denota como V*. Es muy
usada en expresiones regulares y fue introducida en este contexto por Stephen
Kleene (1909-1994) para caracterizar un cierto autómata.
Lenguaje regular: es un tipo de lenguaje formal que satisface las siguientes
propiedades:
Puede ser reconocido por:
• un autómata finito determinista
• un autómata finito no determinista
• un autómata finito alterno
• una maquina de Turing de solo lectura
Es generado por:
• una gramática regular
• una gramática de prefijos
Es descrito por:
• una expresión regular
Memoria (también llamada almacenamiento): se refiere a los componentes de
una computadora, dispositivos y medios de almacenamiento que retienen datos
informáticos durante algún intervalo de tiempo.
Pila (stack en inglés): es una lista ordinal o estructura de datos en la que el modo
de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en
entrar, primero en salir) que permite almacenar y recuperar datos. Se aplica en
multitud de ocasiones en informática debido a su simplicidad y ordenación
implícita en la propia estructura.
Estructura de datos: es una forma de organizar un conjunto de datos
elementales con el objetivo de facilitar su manipulación. Un dato elemental es la
mínima información que se tiene en un sistema.
LIFO: es el acrónimo inglés de Last In First Out (último en entrar, primero en
salir). Puede tener distintos significados según el contexto:
En informática
El término LIFO se utiliza en estructuras de datos y teoría de colas. Guarda
analogía con una pila de platos, en la que los platos van poniéndose uno sobre el
otro, y si se quiere sacar uno, se saca primero el último que se puso. LIFO es el
algoritmo utilizado para implementar pilas.
Informática es la ciencia aplicada que abarca el estudio y aplicación del
tratamiento automático de la información, utilizando dispositivos electrónicos y
sistemas computacionales. También está definida como el procesamiento
automático de la información.
Operación unaria: aquella que sólo necesita el operador y un único argumento
para que se pueda calcular un valor. Por ejemplo, la función valor absoluto "| |" es
un operador unario, porque sólo necesita un argumento. El número de argumentos
de una función se denomina aridad.
Descargar