Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Introducción
Los autómatas finitos son modelos abstractos de sistemas que tienen algunas
particularidades muy especiales, en forma general, estos sistemas reaccionan
a una serie muy especı́fica de eventos bien determinados entre sı́, otra car-
acteı́stica es que esos sistemas pueden ser observados en cualquier momento
en alguno de una serie bien conocida de formas o estados.
Los estados son las maneras en que se puede describir un sistema de manera
conveniente. Los estados se deben agrupar en un conjunto finito, discreto y
no vacı́o. Generalmente se abstraen los estados con un sı́mbolo, por ejemplo,
una lámpara de luz, puede describirse con los estados ’apagado’ y ’encendido’,
mismos que podemos abstraer con los dǵitos 1 y 0 respectivamente. General-
mente dedicamos la letra E mayúscula, para determinar un conjunto de es-
tados. Pensaremos en un ejemplo que construiremos a medida que avancemos
en las definiciones. Supongamos que deseamos modelar el comportamiento de
una persona que puede ser observada en uno de los siguientes estados: Ale-
gre, Triste o Enojada; modelaremos estos tres estados con los sı́mbolos a, b, c
respectivamente (a para alegre, b para triste y c para enojada). Matemática-
mente esto es E = {a, b, c}.
Código 1. E = {a, b, c}
1 ; Los estados significan
2 ; a − Alegre
3 ; b − Triste
4 ; c − Enojado
5 (define E ’(a b c))
2
Código 2. Σ = {0, 1}
1 ; Los simbolos de entrada significan
2 ; 0 − Una patada
3 ; 1 − Un beso
4 (define S ’(0 1))
Los sı́mbolos del alfabeto de entrada, son los que hacen que el sistema pueda
cambiar de estado (si aplica). Es importante que el significado de los sı́mbolos
de entrada sean conocidos, para que no pierda sentido el modelo computacional
del sistema modelado.
δ 0 1
a c a
b b a
c c b
Tabla 1. Función de transición δ
3
Código 3. Función de transición como un procedimiento
1 (define delta
2 (lambda (e s)
3 (cond ((equal? (list e s) ’(a 0)) ’c)
4 ((equal? (list e s) ’(a 1)) ’a)
5 ((equal? (list e s) ’(b 0)) ’b)
6 ((equal? (list e s) ’(b 1)) ’a)
7 ((equal? (list e s) ’(c 0)) ’c)
8 ((equal? (list e s) ’(c 1)) ’b))))
De acuerdo con esta manera de definir las funciones de transición, para obtener
un nuevo estado, es necesario invocar el procedimiento con un par de elemen-
tos, un estado y un sı́mbolo (ambos definidos en sus respectivos conjuntos):
> (delta ’a 0)
’c
> (delta ’b 1)
’a
> delta
#<procedure:delta>
>
4
>
Cada autómata debe tener un punto de inicio, para tener una base de referencia
en cuanto a la secuencia de estados que se habrán de modificar. Es estado
inicial debe ser un elemento del conjunto de estados, en matemáticas, el estado
inicial se puede simbolizar con e0 ∈ E, o bien en Racketcomo:
Una vez descritos cada uno de los elementos de un autómata finito, daremos
la siguiente definición:
E: Es el conjunto de estados.
5
Σ: Es el conjunto de sı́mbolos de entrada (alfabeto, señales).
δ: Es la función de transición de estados.
e0 : Es el estado inicial.
A: Es el conjunto de estados aceptores.
Aquı́ hemos elegido que delta sea un procedimiento y tendremos que enfrentar
toda la responsabilidad que ello implica, claro que nada nos impide regresar
y tomar la otra opción.
Los AFD frecuentemente son representados mediante un grafo, donde los no-
dos son etiquetados con los nombres de los estados, y se hace una distinción
en aquel nodo que representa a cada estado aceptor con un doble cı́rculo; las
transiciones se representan mediante un arco de flecha, donde la punta de
flecha indica el estado al que se accede en la transición, mientras que el esta-
do actual es aquel que se encuentra en el otro extremo de la flecha. Se suele
agregar una flecha que incide en un nodo que se reconoce como estado inicial,
esta flecha es diferente que las otras en que no tiene estado en el otro extremo
de la flecha, como en el ejemplo que se ilustra en la figura 1.
Esto es ası́ porque generalmente estos son modelos de un sistema que se quiere
probar con anticipación, de modo que todas las secuencias de entrada repre-
sentan secuencias de eventos a los que se podrı́a enfrentar el sistema que esta
siendo modelado. Formalmente tenemos que definir una extensión de la fun-
ción de transición, ya que la función de transición recibe un sı́mbolo y ahora
deseamos una función que reciba una secuencia de sı́mbolos (también se le
6
Figura 1. Grafo que representa a un AFD, considerando los conjuntos construidos como
ejemplo en estas notas.
Referencias