Diferencia entre revisiones de «Autómata finito»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 200.62.146.245 a la última edición de AVBOT
Línea 22: Línea 22:
''S<sub>1</sub>'' y ''S<sub>2</sub>'' son estados y ''S<sub>1</sub>'' es un estado de aceptación. Cada arista está etiquetado con la entrada.
''S<sub>1</sub>'' y ''S<sub>2</sub>'' son estados y ''S<sub>1</sub>'' es un estado de aceptación. Cada arista está etiquetado con la entrada.
:[[Archivo:DFAexample.svg|DFAexample.svg]]
:[[Archivo:DFAexample.svg|DFAexample.svg]]
sexi y su yochi[http://es.wikipedia.org/w/index.php?title=Aut%C3%B3mata_finito&action=edit&section=2]


== Descripción informal de su funcionamiento ==
== Descripción informal de su funcionamiento ==

Revisión del 20:52 6 jul 2009

Esquema lógico de un autómata finito.

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.

Definición formal

Formalmente, un autómata finito (AF) puede ser descrito como una 5-tupla donde:

  • un conjunto de estados;
  • es un alfabeto;
  • es la función de transición: ;
  • es el estado inicial;
  • es un conjunto de estados de aceptación o finales.

Ejemplo 1

  • S = {S1, S2},
  • Σ = {0,1},
  • T = {(S1,0,{S2});(S1,1,{S1});(S2,0,{S1});(S2,1,{S2})}
  • s = S1
  • A = {S1}.

Máquinas DFA, NFA, GNFA, o Moore

S1 y S2 son estados y S1 es un estado de aceptación. Cada arista está etiquetado con la entrada.

DFAexample.svg

Descripción informal de su funcionamiento

En el comienzo del proceso de reconocimiento de una cadena, el AF 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. Si el estado en el que se detuvo es un estado de aceptación o final, entonces la cadena pertenece al lenguaje reconocido por el autómata, caso contrario, la cadena no pertenece a dicho lenguaje.

Autómatas finitos deterministas

Un AFD o autómata finito determinista es aquel autómata finito cuyo estado de llegada está unívocamente determinado por el estado inicial y el carácter leído por el autómata.

Formalmente, un autómata finito determinista (AFD) es similar a un Autómata de estados finitos, representado con una 5-tupla donde:

  • es un alfabeto;
  • un conjunto de estados;
  • es la función de transición: ;
  • es el estado inicial;
  • es un conjunto de estados de aceptación o finales.

Al contrario de la definición de autómata finito, este es un caso particular donde no se permiten transiciones vacías, el dominio de la función T es S (con lo cual no se permiten transiciones desde un estado de un mismo símbolo a varios estados).

A partir de este autómata finito es posible hallar la expresión regular resolviendo un sistema de ecuaciones.

S1 = 1 S1 + 0 S2 + ε
S2 = 1 S2 + 0 S1

Siendo ε la palabra nula. Resolviendo el sistema y haciendo uso de las reducciones apropiadas se obtiene la siguiente expresión regular: 1*(01*01*)*.

Inversamente, dada la expresión regular es posible generar un autómata que reconozca el lenguaje en cuestión utilizando el algoritmo de Thompson, desarrollado por Ken Thompson, uno de los principales creadores de UNIX, junto con Dennis Ritchie.

Un tipo de autómatas finitos deterministas interesantes son los tries.

Autómatas finitos no deterministas

Un AFND o autómata finito no determinista es aquel que presenta cero, una o más transiciones por el mismo carácter del alfabeto.

Un autómata finito no determinista también puede o no tener más de un nodo inicial.

Los AFND también se representan formalmente como tuplas de 5 elementos . La única diferencia respecto al AFD es T.

AFD:

AFND: (partes de S)

Debido a que la función de transición lleva a un conjunto de estados, el automáta puede estar en varios estados a la vez (o en ninguno si se trata del conjunto vacío de estados).

Autómatas finitos no deterministas con transiciones vacías

Un AFND- o autómata finito no determinista con transiciones permite cambiar de estado sin procesar ningún símbolo de entrada. Cuando el autómata llega a un estado, se encuentra en ese estado y en los estados a los que apunte éste mediante una transición .

Un automata es un AFND: (partes de S)

AFND-: (partes de S)

Cuando el símbolo de entrada es la palabra vacía (), existe una transición entre los estados.


Cierre *

AFD, AFND y AFND-

Para todo AFND- existe un AFND equivalente y para todo AFND existe un AFD equivalente.

Existen algoritmos para transformar un autómata en otro. Los AFD son los más sencillos de construir, por tanto, puede ser útil diseñar un autómata complejo como AFND- o AFND para luego transformarlo en AFD para su implementación.

Véase también

Enlaces externos