SciELO - Scientific Electronic Library Online

 
vol.8 número1Máquinas de Turing y sus aplicacionesMáquinas de Turing en el Arte Musical índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Articulo

Indicadores

    Links relacionados

    • No hay articulos citadosCitado por SciELO
    • No hay articulos similaresSimilares en SciELO

    Bookmark

    Revista de Investigación Estudiantil Iluminate

    versión impresa ISSN 2415-2323

    Rev. Inv. Est. I. v.8 n.1 La Paz nov. 2016

     

    REPORTES DE CASOS

     

    Máquinas de Estado Finito

     

    Finite State Machines

     

     

    Mariluna Alavi1, Sofia Aliaga2, Monica Murga3
    1marilunaalavichoque@gmail.com,
    2 sjaslinkina@gmail.com,
    3 Mon.bramur@gmail.com

    Artículo Recibido: 5-09-2016; Artículo Aceptado: 31-10-2016

     

     


    Resumen

    Conocer el funcionamiento de una máquinas de estados finitos es fundamental ya que es el único tipo de máquinas de estados q se puede modelar a un computador en la actualidad, se mencionara una breve descripción sobre las mismas, su definición formal y las relaciones entre ellas. En otras palabras, observaremos una máquina capaz de seguir una secuencia finita de pasos al introducir un conjunto de datos en ella, solo se puede leer un dato en cada paso que se realice, por tanto el número de pasos a seguir está dado por el número de datos a introducir. Cada entrada diferente genera una salida diferente, pero siempre el mismo resultado con los mismos datos de entrada.

    Palabras claves Estado, Autómata, Síncronas, Asincronas, Nodos, Ramificación, Diagrama.


    Abstract

    Knowing the operation of a finite state machines is essential because it is the only type of state machines that can be modeled on a computer today, a brief description of them, the formal definition and the relationships between them are mentioned. In other words, we see a machine capable of following a finite sequence of steps by introducing a set of data in it, you can only read a data in each step is performed, so the number of steps is given by the number entering data. Each different input generates a different output, but always the same result with the same input data.

    Keywords State, Automaton, Synchronous, Asynchronous, Nodes, Branch, Diagram.


     

     

    Introducción

    Las máquinas de estado finito son una herramienta muy útil para especificar aspectos relacionados con tiempo real, dominios reactivos o autónomos, computación reactiva, protocolos, circuitos, arquitecturas de software, etc.

    El modelo de FSM es un modelo que posee sintaxis y semántica formales y que sirve para representar aspectos dinámicos que no se expresan en otros diagramas.

    Una Maquina de estado Finito es una lógica matemática. Es esencialmente un programa de computadora: representa una secuencia de instrucciones a ser ejecutadas, donde cada instrucción depende del estado actual de la máquina y del actual estimulo.

    Las posibles entradas al sistema son una secuencia de símbolos seleccionadas desde un conjunto finito l de símbolos de entrada, y las salidas resultantes son secuencias de símbolos escogidas desde un conjunto finito Z de símbolos de salida.

    Cualquier "caja negra" que produce un símbolo de salida cuando un símbolo de entrada es aplicado y que satisface las propiedades anteriormente mencionadas es llamada Máquina Secuencial o Transductor Finito.

    La selección de un conjunto de estados para representar una máquina dada no es un proceso único, esto no es una limitación muy seria, ya que el principal objetivo es describir el comportamiento general entrada-salida de la máquina en vez de su construcción.

    Referentes conceptuales. Una máquina de estados finitos en un modelo abstracto para la manipulación de símbolos, nos permiten saber si una cadena pertenece a un lenguaje o nos pueden generar otro conjuntó de símbolos como resultado.

    Llamaremos una Máquina de Estados Finitos como Autómata Finito, el hecho es que un Autómata y una Maquina de Estados Finitos son lo mismo, podemos utilizar ambos términos de forma indistinta.

    Los Autómatas se caracterizan por tener un Estado inicial, reciben una cadena de símbolos, cambian de estado por cada elemento leído o pueden permanecer en el mismo estado. También tienen un conjunto de Estados Finales o Aceptables que nos indican si una cadena pertenece al lenguaje al final de una lectura.

    Los Autómatas se clasifican en 2 tipos:

    •    Autómata Finito Determinista.

    •    Autómata Finito no Determinista.

    Siempre llamamos un Autómata como Autómata Finito, esto nos puede llevar a pensar que existe algún tipo de Autómata Infinito, lo cual no tiene mucho sentido pensar en un tipo de Maquina que tiene un conjunto infinito de estados, pero aún se discute su utilidad para propósitos prácticos. Un "Autómata Infinito" tiene cintas infinitas o registros de almacenamiento de capacidad ¡limitada, esto le da el carácter de infinito.

    Un autómata finito M consta de 5 elementos:


    1.- un conjunto finito A de símbolos de entrada.

    2.- un conjunto finito S de estados internos.

    3.- un sub-conjunto T de S (cuyos elementos se llaman estados de aceptación).

    4.- un estado inicial q0 en S

    5.- una función de estado próximo F de S*A en S.

    El autómata M se denota por M=<A,S,T,q0,F> cuando queremos designar sus 5 partes.

    Ejemplo: lo siguiente define un autómata finito con dos símbolos de entrada y tres estados.

    Podemos describir concisamente un autómata finito M por su diagrama de estado como se hizo con las máquinas de estado finito pero ahora usaremos círculos dobles para estados de aceptación, los estados se denotaran por medio de círculos de los cueles uno será el de inicio y los demás pueden o no ser estados finales, también saldrán de los estados flechas el cual contendrá un símbolo para el próximo estado. El diagrama es el siguiente:

     

    Métodos.

    Las máquinas de estado pueden ser:

    SÍNCRONAS: Necesitan de la intervención de un pulso de reloj. Si la entrada participa también en la salida se denomina Máquina de estado de Mealy, y si no participa se denomina de Moore.

    ASINCRONAS: No necesitan de la intervención de un pulso de reloj. Estos circuitos evolucionan cuando cambian las entradas. (Wikipedia, s.f., pág. https://es.wikipedia.org/wiki/M%C3%A1quina_s%C3%ADncrona)

    Ahora bien también mencionaremos las diferencias entre:

    Un autómata finito o máquina de estado finito es un modelo matemático de un sistema que recibe una cadena constituida por símbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autómata reconoce.

    Un Autómata finito es similar a una máquina de estado finito sin embargo lo que caracteriza a una de la otra es que los autómatas finitos solo tienen dos estados, un estado interno y uno de rechazo.

    Un autómata finito está formado por una quíntupla <A,S,T,q0, F> y la máquina de estado finito está formado por una cuádrupla de la forma:

    Como diseñar una máquina de estado finito:

    Paso 1: Describir la maquina en palabras.- cuando describimos palabras es similar a cuando realizamos el algoritmo de un programa, hay que escribir en detalle todo lo que queremos que realice esta máquina sin obviar comandos o decisiones que tomar.

    Paso 2: Dibujar el diagrama.- es una parte importante ya que nos ayudar a entender lo que queremos construir, este debe contener todas las posibles entradas, salidas y valores.

    Paso 3: Seleccionar números para representar estados y valores.- es necesario representar los valores en números binarios, después de puede cambiar por otros símbolos y valores a los que representa.

    Paso 4: Escribir una tabla de verdad.- esto nos ayudar a saber si el diagrama está bien elaborado.

    Paso 5: Dibujar para visualizar el circuito.- al dibujar podremos darnos cuenta si es posible simplificarlo, además que un circuito puede tener sub-circuitos.

    (SlideShare, 2010, págs. Diapositiva 8 al 14 http://es.slideshare.net/ junito86/presentacion-2-maquinas-de-estado-finito)

    Resultados y discusión.

    La aplicación de los autómatas de estados finitos nos da como resultado las funciones de:

    •    Adquirir datos del proceso por medio de las entradas digitales y análogas

    •    Tomar decisiones en base a las reglas de programación

    •    Almacenar datos en memoria

    •    Generar ciclos de tiempo

    •    Realizar cálculos matemáticos

    •    Actuar sobre dispositivos externos mediante las salidas digitales y análogas.

    •    Comunicarse con otros sistemas externos.

    Las ventajas que podemos mencionar sobre los autómatas son:

    •    La variedad de modelos existentes

    •    El ahorro de tiempo en la elaboración de proyectos.

    •    El bajo costo, tanto como de implementación, como en la modificación de acciones

    •    El mantenimiento económico por tiempos de paro es reducido.

    Los usos de los autómatas en la actualidad son:

    ■    En el control de ascensores.

    ■    En la industria automotriz.

    ■    También pueden realizar operaciones aritméticas.

    ■    Control de operaciones de semáforos.

    ■    Control de nivel de líquidos de un tanque.

    ■    Control de sistemas de envasado.

    ■    Control de una maquina taladora.

    Algoritmos de los estados finitos:

    • Edward Forrest Moore (23 de noviembre de 1925, Baltimore, Maryland-14 de junio de 2003, Madison, Wisconsin) fue un profesor estadounidense de matemáticas y ciencias de la computación, inventor de las máquinas de estados finitos de Moore y uno de los pioneros de la vida artificial.

    Una Máquina de Moore es un autómata de estados finitos para el cual la salida en un momento dado sólo depende de su estado en ese momento, mientras la transición al siguiente estado depende del estado en que se encuentre y de la entrada introducida. El diagrama de estados para una máquina Moore incluirá una señal de salida para cada estado. Comparada con la Máquina de Mealy, la cual mapea transiciones en la máquina a salidas. (Wikipedia.org, 2016)

     

    Definición formal:

    Una máquina de Moore puede ser definida como una 6-tupla { S, So, ∑, Ʌ, T, G } consistente de

    •    un conjunto finito de estados ( S )

    •    un estado inicio (también llamado estado inicial) So el cual es un elemento de (S)

    •    un conjunto finito llamado alfabeto entrada (∑)

    •    un conjunto finito llamado el alfabeto salida (Ʌ)

    •    una función de transición (T : S × ∑ —> S) mapeando un estado y una entrada al siguiente estado

    • una función salida (G : S —> Ʌ) mapeando cada estado al alfabeto salida. (Wikipedia.org, 2016)

    > George H. Mealy (31 de diciembre de 1927,21 de diciembre de 2010 en Sitúate, Massachusetts) fue un estadounidense matemático, profesor de la universidad de Harvard e inventor del mismo nombre Autómata de Mealy.

    Una Máquina de Mealy es un tipo de máquina 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 máquina de Moore de estados finitos (el otro tipo) depende solo del estado actual de la máquina, dado que las transiciones no tienen entrada asociada. Sin embargo, para cada Máquina de Mealy hay una máquina de Moore equivalente cuyos estados son la unión de los estados de la máquina de Mealy y el Producto cartesiano de los estados de la máquina de Mealy y el alfabeto de entrada. (Wikipedia.org, 2016)

    Definición formal:

    Una máquina de Mealy es una 6-tupla, (S, SO, ∑, Ʌ, T, G), consistiendo en un conjunto finito de estados (S) un estado inicial S0 el cual es un elemento de (S) un conjunto finito llamado el alfabeto entrada (∑) un conjunto finito llamado el alfabeto salida (Ʌ) una función de transiciones (T : S × ∑ —> S) una función de salida (G : S × ∑ —> Ʌ). (Wikipedia.org, 2016)

    • Alan Mathison Turing (Paddington, Londres, 23 de junio de 1912-Cheshire, 7 de junio de 1954), fue un matemático, lógico, científico de la computación, criptógrafo, filósofo, maratoniano y corredor de ultra distancia británico. Considerado uno de los padres de la ciencia de la computación y precursor de la informática moderna. Proporciono una influyente formalización de los conceptos de algoritmo y computación, LA MAQUINA DE TURING.

    Una máquina de Turinges un dispositivo que manipula símbolos sobre una tira de cinta de acuerdo a una tabla de reglas. A pesar de su simplicidad, una máquina de Turing puede ser adaptada para simular la lógica de cualquier algoritmo de computador y es particularmente útil en la explicación de las funciones de una CPU dentro de un computador. (Feinman Richard, 2008)

    Definición formal:

    Una máquina de Turing es un modelo computacional que realiza una lectura/ escritura de manera automática sobre una entrada llamada cinta, generando una salida en esta misma. Una máquina de Turing con una sola cinta puede definirse como una 7-tupla:

    Donde:

    •    {\displaystyle Q\!}Q es un conjunto finito de estados.

    •    {\displaystyle \Sigma \!} es un conjunto finito de símbolos distinto del espacio en blanco, denominado alfabeto de máquina o de entrada.

    •    {\displaystyle \Gamma \!}Г es un conjunto finito de símbolos de cinta, denominado alfabeto de cinta ({\displaystyle \Sigma \subseteq \Gamma }

    •    {\displaystyle s\in Q} es el estado inicial.

    •    {\displaystyle b\in \Gamma }esun símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces.

    •    {\displaystyle F\subseteq Q} es el conjunto de estados finales de aceptación.

    •    {\displavstvle \delta :Q\times \Gamma \rightarrow Q\times \Gamma \times \ {L,R\}} {L,R} es una función parcial denominada función de transición, donde {\displaystyle L\!}L es un movimiento a la izquierda y {\displaystyle R\!}R es el movimiento a la derecha. (Feinman Richard, 2008)

    Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el símbolo {\displaystyle S\!}S como símbolo de "no movimiento" en un paso de cómputo.

    En los siguientes gráficos se muestra como resultado algunos ejemplos de los autómatas de estados finitos:

    Ejemplo 1: Comportamiento de un operador telefónico:

    • Modelo de un operador telefónico que llamar a tres personas diferentes, pero sólo a una de estas a la vez.

    • Si en lugar de tres personas, las mismas son 100, o 1000, o 10000, rápidamente nos encontramos con lo siguiente:

    • Es decir, identificar en el operador, no sólo si está hablando o no, sino que también con quien lo está haciendo (en el otro ejemplo, esta información es deducible).

    El horno microondas posee una puerta. Si la puerta está cerrada, entonces puede estar o no en funcionamiento (según se prenda o apague). Estando prendido no es posible abrir la puerta del horno sin antes apagarlo. También asumamos lo siguiente: en cualquier momento es posible establecer el modo de cocción.

    • Podemos descomponer este problema en tres partes: por un lado modelaremos una puerta que se abre y se cierra, y por otro un horno que se prende y apaga y trataremos el modo de cocción de manera independiente.

    Las máquinas de estados finitos se han ¡do aplicando en diferentes áreas de la informática por tanto, han llegado a diferentes sectores de la industria.

    Aunque el conocimiento sobre estas máquinas de estados sea amplio y el paradigma de autómatas esté presente en numerosos proyectos, los usos reales de las variantes (conocidas a nivel teórico) o extensiones de una maquina con carácter determinista son prácticamente inexistentes en la industria del desarrollo de software.

    Un claro ejemplo, los cuales parece generar bastante controversia debido a su estructura pobre en términos de IA (Inteligencia artificial), basado en máquinas de estados y que se utiliza en este tipo de proyectos son numerosos al menos el uso de mecanismos que implícitamente se comportan como tal.

     

    Conclusiones

    Las Maquinas de estados Finitos, nos sirven para realizar procesos bien definidos en un tiempo discreto. Reciben una entrada, hacen un proceso y nos entregan una salida. Notemos que estas máquinas hacen una computación.

    Por esta misma razón es que a lo largo de la investigación les presentamos una variedad de máquinas que tienen mucha relación y que pueden resolver un estado finito.

    Por lo tanto una computación es capaz de resolver un problema, sí y solo sí tiene una solución algorítmica, es decir, puede ser descrito mediante una secuencia finita de pasos bien definidos un claro ejemplo es la máquina de Turing.

    Podemos decir que cualquier solución a un problema que pueda ser representada por una Maquina de Turing está haciendo una computación. Si una máquina imprime dos tipos de símbolos, donde el primer tipo (llamadas figuras) consiste íntegramente en 1 y 0 y el segundo tipo serán llamados símbolos de la segunda especie entonces podemos llamar a esa máquina computadora.

     

    Referencias.

    Referencias de publicaciones periódicas:

    • MINSKY (1967). Marvin L. Computation: Finite and Infinite Machines. Prentice-Hall.

    • PABLO G. PADILLA. (2006) Lenguajes y 'algebra de eventos regulares. Escuela Superior de Computo.

    • TURING. A.M. (1936).On computable numbers, with an application to the ents- cheidungs problem London Math, Soc.

    • TURING Alan. El pionero de la era de la información. España: Turnen ISBN 978-84-15832-12-6.        [ Links ]

    • API de la gestión de la IA basada en las máquinas de estados finitos en c#.

    • MOORE Edward. Memorial Resolution of the Faculty of the University of Wisconsin-Madison on the Death of Professor Edward Moore (PDF file).        [ Links ]

    • TURING Alan. En el Mathematics Genealogy Project. TFM Jose Alapont Lujan.(PDF file).        [ Links ]

    • FEINMAN Richard. (2008). Wikipedia. Obtenido de Wikipedia: es.wikipe-dia.org/wiki/Máquina_de_Turing

    • TRAKHTENBROT B.A. (1973). Algoritmos y Computadoras. Limusa,

    • JONES J. (1991). Herramientas informáticas. Prebntica Hall.

    • HOPCROFT (1969)and ULLMAN. Formal Languages and their Relation to Automata. Addison-Wesley.

    • MOTWANI(2001) HOPCROFT and ULLMAN. Introduction to Automata The-ory, language and computacion, pearson Education.

    • RICHARD JHONSON BAUGH.( 1988) Matemáticas Discretas. Iberoam'erica.

    • LAWSON Mark V. Finite Automata. (2004)Chapman and Hall-CRC.

    Sitiso Web

    • SlideShare. (28 de octubre de 2010). Obtenido de http://es.slideshare.net/junito86/presentacion-2-maquinas-de-estado-finito        [ Links ]

    • Wikipedia. (s.f.). Obtenido de https://es.wikipedia.org/wiki/M%C3%A1qui-na_s%C3%ADncrona        [ Links ]

    • Wikipedia.org. (13 de octubre de 2016). Obtenido de wikipedia.org: https://es.wikipedia.org/wiki/M%C3%A1quina_de_Mealy        [ Links ]