Automatas Finitos

Automatas Finitos

Autómata finito

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 (S,Σ,T,s,A) donde:

Σ es un alfabeto;

S un conjunto de estados;

T es la función de transición: ;

 es el estado inicial; 

 es un conjunto de estados de aceptación o finales. 

Ejemplo 1

Σ = {0,1},

S = {S1, S2},

T = (S1,0,{S2});(S1,1,{S1});(S2,0,{S1});(S2,1,{S2})

s = S1

A = {S1}.

Formas de representar un autómata finito

Además de notar un AF a través de su definición formal es posible representarlo a través de otras notaciones que resultan más cómodas. Entre estas notaciones, las más usuales son:

Las Tablas de Transiciones: la tabla de transición para el AF del ejemplo 1 es

 0 1 

S1 S2 S1

S2 S1 S2

Los Diagramas de Transiciones: el diagrama de transición para el AF del ejemplo 1 es

Las Expresiones regulares. Se demuestra que dado un autómata de estados finitos, existe una expresión regular que lo representa.

Ø υ 1* υ (1* ο 0 ο 1* ο 0)*

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 (S,Σ,T,s,A) donde:

Σ es un alfabeto;

S un conjunto de estados;

T es la función de transición: ;

es el estado inicial;

es un conjunto de estados de aceptación o finales.

Es claro que, al contrario de la definición de Autómata finito, este es un caso particular donde no se permiten transiciones lamda (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.

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 (S,Σ,T,s,A). 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 λ

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 este mediante una transición λ.

Se representan formalmente con una tupla de 5 elementos, y se diferencian en los AFND en la función de transferencia:

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.

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ómamata complejo como AFND-λ o AFND para luego transformarlo en AFD para su implementación


Mis sitios nuevos:
Emprendedores
Politica de Privacidad