Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 3 - Maquinas de Estado Finito PDF
Tema 3 - Maquinas de Estado Finito PDF
M
aquinas de estado finito y
expresiones regulares
En este tema definiremos y estudiaremos maquinas de estado finito, llamadas tambien maquinas de estado finito secuenciales o automatas finitos.
Estos objetos matematicos son los modelos para los ordenadores digitales
y constituyen una importante herramienta en el dise
no de circuitos fsicosecuenciales, en el estudio de los lenguajes formales y de compiladores e
interpretes de varios lenguajes de programacion. Desde un punto de vista
teorico, las maquinas de estado finito son casos especiales de objetos mas
generales, tales como las maquinas de Turing, esenciales en el estudio de
problemas en computabilidad.
Mientras que en un circuito combinacional la salida depende u
nicamente
de la entrada en ese instante, una maquina secuencial es un sistema que
acepta unas entradas y genera unas salidas en instantes de tiempo discretos,
la salida en un instante depende de la entrada y de la condicion interna
(estado) de la maquina en ese instante y, ademas, esa entrada y el estado
en ese instante determinan el estado que la maquina tendra en el instante
siguiente.
Todas las maquinas de estado finito tienen un conjunto de estados, includo el estado inicial, un alfabeto fuente y una funcion de transicion que a
cada pareja de estado y dato de entrada le asigna el estado siguiente. Los estados de la maquina le dan unas capacidades de memoria limitadas. Algunas
maquinas de estado finito producen un smbolo como dato de salida para cada
transicion y pueden utilizarse para modelar gran variedad de maquinas, entre
las que se incluyen las maquinas expendedoras, los semaforos, los sumadores
binarios y los reconocedores de lenguajes. Tambien estudiaremos maquinas de
estado finito que no generan datos de salida, pero tienen estados finales. Estas
maquinas (automatas) se utilizan con gran frecuencia en el reconocimiento
79
CAPITULO 3. AUTOMATAS
FINITOS
80
Estado
Entrada
Salida
t0
s0
5
nada
t1
s1
5
nada
t2
s2
R
A
t3
s0
3.1. MAQUINAS
DE ESTADO FINITO CON SALIDA
81
3.1.
M
aquinas de estado finito con salida
Definici
on 53. Una maquina de estado finito con salida M = (S, I, O, f, g, s0)
consiste en un conjunto finito de estados S, un alfabeto (conjunto finito no
vaco) de entradas I, un alfabeto de salidas O, un estado inicial s0 , una
funcion de transicion f : S I S y una funci
on de salida g : S I O.
i, o
s0
s1
s2
Transicion
Entrada
5 10 R V
s1 s2 s0 s0
s2 s2 s1 s1
s2 s2 s0 s0
5
n
n
5
Salida
Entrada
10 R
n n
5 n
10 A
V
n
n
B
CAPITULO 3. AUTOMATAS
FINITOS
82
{R, V }, n
s0
10, 5
s1
5, n
{R, V }, n
V, B
5, 5
5, n
10, n
s2
10, 10
R, A
s0
s1
s2
Transicion
Entrada
0
1
s1
s0
s2
s1
s2
s0
Salida
Entrada
0
1
0
0
1
1
0
1
1, 0
0, 0
s0
1, 1
s1
0, 1
1, 1
s2
0, 0
3.1. MAQUINAS
DE ESTADO FINITO CON SALIDA
1, 1
83
s1
1, 0
s0
0, 1
1, 0
0, 0
s2
0, 0
En una maquina de estado finito con dos unidades de retardo que, dada
una cadena de entrada x = x1 . . . xk devuelva 00x1 . . . xk2 , debemos
tener un estado inicial s0 y queremos recordar si la entrada previa ha
sido 00 (s1 ), 01 (s2 ), 10 (s3 ) o 11 (s4 ). El diagrama de estados sera:
0, 0
0, 1
s1
0, 0
0, 0
1, 0
s0
0, 1
1, 1
1, 0
1, 1
s2
s3
1, 0
s4
Se quiere dise
nar una maquina de estado finito que efect
ue suma binaria
en serie. Las entradas posibles son los pares {00, 01, 10, 11}. Si la cifra
de arrastre de la suma anterior es 0, el estado es s0 y si la cifra de
arrastre es 1, el estado es s1 . El diagrama de estados sera:
00, 0
s0
10, 1
11, 0
01, 0
s1
01, 1
00, 1
10, 0
11, 1
CAPITULO 3. AUTOMATAS
FINITOS
84
0, 0
s0
1, 0
0, 0
1, 0
s1
1, 1
s2
0, 0
Esta maquina es un ejemplo de reconocedor de lenguajes porque, dada una
secuencia de entradas, la secuencia de salidas termina en 1 si, y solo si, la
cadena de entrada leda tiene una determinada propiedad. El reconocimiento
de lenguajes es una aplicacion importante de las maquinas de estado finito.
Esta aplicacion desempe
na un papel fundamental en el dise
no y construccion
de compiladores para los lenguajes de programacion.
3.2.
Aut
omatas finitos
Un automata finito (determinista) es un modelo matematico de una maquina que permite saber si una cadena de smbolos pertenece o no a un
lenguaje definido sobre cierto alfabeto. Consiste en un conjunto finito de
estados y un conjunto de transiciones entre estos estados, que dependen de
los smbolos de la cadena de entrada. El automata acepta una cadena de
entrada si al terminar de leer todos los smbolos de esa cadena la maquina
esta en alguno de los posibles estados finales; si el estado no es final, entonces
la cadena no pertenece al lenguaje que reconoce la maquina.
Definici
on 54. Una automata de estado finito M = (S, I, f, s0 , F ) consiste
en un conjunto finito de estados S, un alfabeto de entradas I, un estado
inicial s0 , una funcion de transici
on f : S I S y un conjunto F de
estados finales o de aceptaci
on (F S).
En el diagrama de transicion de un automata finito los estados finales
estan encerrados en un crculo doble. Para cada estado si y un smbolo de
entrada a hay una u
nica flecha de si a f (si , a), que se etiqueta como a.
El diagrama de estados del aut
omata finito M = (S, I, f, s0 , F )
Ejemplo 50.
con S = {s0 , s1 , s2 , s3 }, I = {0, 1}, F = {s0 , s3 } y cuya funci
on de transicion viene dada por la tabla:
3.2. AUTOMATAS
FINITOS
85
Estados
s0
s1
s2
s3
Transicion
Entrada
0
1
s0
s1
s0
s2
s0
s0
s2
s1
es el siguiente:
s1
1
0
1
s0
s3
0
0
0
s2
0
s0
s1
1
s0
1 1
s1
s2
s3
0
M3 = (S, I, f, s0 , F ) si S = {s0 , s1 , s2 , s3 }, I = {0, 1}, F = {s0 , s3 }
0
s0
s1
s2
1
0
s3
1
CAPITULO 3. AUTOMATAS
FINITOS
86
3.3.
de I .
La funcion de transicion f : S I S de un automata se puede extender
a f : S I S del modo siguiente. Dado t S y x = x1 . . . xk I ,
llamaremos t0 = t y
ti = f (ti1 , xi )
para i = 1, 2, . . . , k. De este modo, f (t, x) := tk . Para cualquier estado s S,
se tiene que f (s, ) = s.
Definici
on 56. Una palabra o cadena x = x1 . . . xk I es aceptada o
reconocida por M si f (s0 , x) F . El lenguaje formado por todas las palabras
reconocidas por M se denota L(M).
Ejemplo 51. En los aut
omatas M1 , M2 y M3 de los ejemplos anteriores, se
tiene que
L(M1 ) = {1n ; n = 0, 1, 2, . . .}
L(M2 ) = {1, 01}
L(M3 ) = {0n , 0n 10x ; x cualquier cadena binaria}
Ejemplo 52.
El aut
omata finito que acepta el lenguaje L = {an cbm ; n
1, m 0} es M = (S, I, f, s0 , F ) con S = {s0 , s1 , s2 }, I = {a, b, c},
F = {s2 } y diagrama de transici
on
a
s0
s1
s2
0 0
s0
s1
s2
87
s3
1
a
s0
b
b
s1
s2
s3
s4
Es importante se
nalar que en cada una de las maquinas del ejemplo anterior falta determinar el comportamiento del automata en algunos casos, sera
suficiente a
nadir un estado auxiliar, no terminal, que sera sumidero para
aquellas flechas que faltan.
Nota. Para cada automata se puede definir una maquina de Moore en
la cual el conjunto de salidas es O = {0, 1} y un estado es final si, y solo
si, la salida que tiene asociada es 1. As, reconoce una cadena de entradas
si la salida final es 1. Los automatas son maquinas de estado finito aceptadoras (indican si una cadena pertenece o no al lenguaje), mientras que las
maquinas de Mealy y de Moore son traductoras o transductoras (devuelven
como resultado a una cadena de entrada una cierta cadena de salida).
3.4.
k=0
Ak
CAPITULO 3. AUTOMATAS
FINITOS
88
89
k
[
{ I / f (s0 , ) = si }
i=1
es una union de conjuntos. Teniendo en cuenta que cada uno de estos conjuntos es regular y que la union de conjuntos regulares es regular, se obtiene
que L(M) es regular.
Teorema 6. Un lenguaje L sobre un alfabeto I es regular si, y s
olo si, existe
un automata finito M, con conjunto de entradas I, tal que L = L(M).
Se cumple que un automata finito reconoce un solo lenguaje, pero un
lenguaje puede ser reconocido por distintos automatas.
Ejemplo 54.
El automata finito que acepta todas las sucesiones binarias que terminan con los dgitos 011 es la dada por el diagrama de
estados siguiente: L = {x011 / x {0, 1}} (este conjunto regular es
el que corresponde a la expresi
on regular (0 1) 011).
0
s0
0
s1
s2
s3
El automata finito que acepta todas las sucesiones binarias que tienen
la forma de cualquier cantidad de n
umeros 0, seguido por uno o m
as
n
umeros 1, seguido por uno o m
as n
umeros 0, seguidos por un 1, seguido por cualquier cantidad de n
umeros 0, seguido por un 1, y entonces
seguidos por cualquier cosa es:
L = {0n 1m 0k 10l 1x / n, l N {0}, m, k N, x {0, 1} }
1
s0
0
s1
0
s2
s3
s4
CAPITULO 3. AUTOMATAS
FINITOS
90
3.5.
Simplificaci
on de aut
omatas finitos
1 0
s0
s1
1
0
s0
s3
s1
s2
Definici
on 59. Si M = (S, I, f, s0 , F ) es un aut
omata finito, dos estados
si , sj S son -equivalentes si para toda cadena x I , se verifica que
f (si , x) F f (sj , x) F.
Esta situacion la denotaremos si R sj e indica que, para cualquier cadena de
entrada, ambos estados son terminales o ninguno de ellos lo es.
R es una relacion de equivalencia en el conjunto de estados S. El proceso
para determinar si dos estados si y sj son -equivalentes es muy complejo
puesto que requerira analizar infinitas cadenas de entrada. En la practica se
procede de manera recursiva:
Definici
on 60. Si M = (S, I, f, s0 , F ) es un aut
omata finito y k es un
n
umero natural, dos estados si , sj S son k-equivalentes si para toda cadena
x I de longitud menor o igual que k, se verifica que
f (si , x) F f (sj , x) F.
DE AUTOMATAS
3.5. SIMPLIFICACION
FINITOS
91
0
s0
s1
s2
1 0
1
s4
s3
Dos estados son 0-equivalentes si ambos son terminales o los dos son no terminales.
CAPITULO 3. AUTOMATAS
FINITOS
92
cociente de M es M = (S, I, f,
S el conjunto cociente de S por la relaci
on de equivalencia R .
F = {
s; s F}
s, n) = f (s, n), para cada s S y n I.
f(
Ejemplo 58. En el ejemplo 56, el aut
omata cociente tiene como diagrama
de estados:
1
s0
0
s1
s2
1