Está en la página 1de 11

Maquinas de Estado

Finito

Matemticas
Discretas

Circuitos secuenciales


Captulo 8:
Circuitos Secuenciales,
Mquinas y Autmatas
de Estado Finito





Estudiaremos los sistemas donde la salida en un instante dado


depende, no slo de la entrada en ese mismo instante, sino del
estado del sistema en el momento en que se introduce la
entrada.
Estos sistemas tienen memoria y se les llama circuitos
secuenciales.
En este tipo de circuitos, el estado interno del sistema depende
del estado precedente de ste y de la entrada precedente.
Las operaciones dentro de una computadora digital se realizan a
intervalos discretos de tiempo.
Una forma sencilla de introducir la secuenciacin en los circuitos
consiste en utilizar un retraso unitario de tiempo.

Maquinas de Estado
Finito

Maquinas de Estado
Finito

Sumador en serie

Retraso Unitario de Tiempo




Un retraso unitario de tiempo acepta como entrada un bit xt


en el instante y tiene como salida xt-1.

Un sumador en serie acepta como entrada dos nmeros binarios


(x,y) y produce como salida la suma (z). Los dos nmeros se
introducen de manera secuencial por pares (x0,y0;;xn,yn).


Xt

Retraso
Retraso

Xt-1




X = 0xnxn-1x0
Y = 0ynyn-1y0
Z = zn+1zn z0
Xt
Yt

Como ejemplo del retraso unitario de tiempo, analizaremos


el sumador en serie.
El sumador en serie es una aplicacin del retraso unitario

Ct-1

Sumador
Sumador
completo
completo

St

Zt

Ct

Retraso
Retraso
 El ingreso de dos nmeros de entrada X y Y, tiene una salida Z
3

Maquinas de Estado
Finito

Maquinas de Estado
Finito

Sumador en serie

Maquina de Estado Finito

Clculo de la suma de dos nmeros x y y mediante el sumador


de serie. (x=010; y=011).

Una Mquina de Estado finito es un modelo Abstracto de una


mquina con una memoria interna primitiva.

El retraso unitario es el acarreo del sumador de serie

Definicin:
 Una mquina de estado finita M consta de:

St

X0=0

Sumador
Sumador
completo
completo

y0=1
i=0

St

X1=1

z0=1

Sumador
Sumador
completo
completo

y1=1

i=0

Retraso
Retraso


z1=0
1

St
Sumador
Sumador
completo
completo

y2=0
i=1




f ( S, I ) = S

Una funcin de salida g de SxI en O.




Retraso
Retraso

{ 1, 2}

Una funcin de estado siguiente f de SxI en S.




{ 0, 1}

Un conjunto finito S de estados.




z2=1

{ a, b, c}

Un conjunto finito O de smbolos de salida.




Retraso
Retraso
X2=0

Un conjunto finito I de smbolos de entrada.




f ( S, I ) = O

Un estado inicial S.

Z = z0z1z2= 101

Escribimos M = (I, O, S , f, g, )

Maquinas de Estado
Finito

Maquinas de Estado
Finito

Cont

Cont
Interpretacin de la Tabla:

Sea I = {a,b}, O = {0,1} y S = {0, 1}.

I es la entrada, O es la salida y S es el estado.

Definimos el par de funciones f:SxIS y g:SxI O, mediante las


reglas de la tabla dada.

f
I

Para M = (I, O, S , f, g, )

g
b

Tabla:

f
I

f(0,a)=0

g(0,a)=0

f(0,b)=1

g(0,a)=1

0 1

f(1,a)=1

g(0,a)=1

1 1

f(1,b)=1

g(0,a)=1

 0 es elemento de la funcin de estado , a es elemento de la funcion de entrada y 1 es elemento de la funcin de salida

Entonces M = ( I, O, S, f, g, o)

Maquinas de Estado
Finito

Diagramas de transicin


Cont


A este grupo de estados siguientes y de salida se los


puede representar mediante un Diagrama de Transicin


Constan de:

Los vrtices que son los estados.


Un estado inicial que se indica mediante una flecha.




Definicin:
 Sea M = ( I, O, S, f, g, ) una mquina de estado finito. El
diagrama de transicin de M es una digrfica G cuyos vrtices
son los miembros de de S. Una flecha indica el estado Inicial .
Una arista dirigida (1, 2 ) existe en G si existe una entrada i tal
que f(1, i) = 2. En este caso, si g(1, i )=O, la arista (1, 2 ) se
etiqueta i/o.

Si estamos en el estado y la entrada i produce una


salida o.
Y nos pasa al estado ; trazamos una arista dirigida del
vrtice hasta el vrtice y lo etiquetamos i/o.




Maquinas de
Estado Finito

Si f(1, j)= 1 decimos que es un lazo dirigido en 1, que


tambin ser etiquetado respecto a la funcin g; si g(1, j )=1. El
lazo ser etiquetado j/1

j/1

i/o

i/0

10

Maquinas de
Estado Finito

Cont


Maquinas de
Estado Finito

Cadena de Entrada

Realizar el diagrama de transicin para la mquina de estado finito


de la tabla dada.

Definicin:


f
I

Para M = (I, O, S , f, g, )
f(0,a)=0
g(0,a)=0
f(0,b)=1
g(0,a)=1
f(1,a)=1
g(0,a)=1
f(1,b)=1
g(0,a)=1

Sea M = (I, O, S, f, g, ) una mquina de estado finito. Una


cadena de entrada para M es una cadena en I. La cadena
y1 yn
es la cadena de salida para M correspondiente a la
cadena de entrada
= x1xn

a/0
a/1

0
0

b/1

1
1
b/0

 Trazamos una arista dirigida de 0 a 1 y la etiquetamos, la parte superior es la entrada y la parte inferior es la salida
11

si existen estados 0, , n tales que


 0 =
 i = f(i-1 , xi ) para i=1, , n
 yi = g(i-1 , xi ) para i=1, , n
12

Maquinas de
Estado Finito

Maquinas de
Estado Finito

Cont

Resolucin usando el diagrama de transicin

Ejemplo:

Determinar la cadena de salida


correspondiente a la cadena de entrada
aababba
para la mquina de estado finito del
ejemplo anterior
f
f

(
(

(
f (

,a)=

g ( 0 , a ) = 0

,a)=
0

g ( 0 , a ) = 0

,b)=

g ( 0 , b ) = 1

,a)=

g ( 1 , a ) = 1

I
S
0
1

g
a

0 1
1 1

0
1

1
0

f ( 1 , b ) = 1

g ( 1 , b ) = 0

f ( 1 , b ) = 1

g ( 1 , b ) = 0

f ( 1 , a ) = 1

Salida
Salida

Entrada
Entrada

f
a b

aababba

Entrada
Entrada
a/0
Entrada
o

b/1

b/0
Estado inicial

g ( 1 , a ) = 1

Entrada
Entrada
0 0

La cadena de salida es 0011001

Salida
Salida
Salida
a/1
Siguiente
1
Estado

Salida
Salida

1 1 0 0 1

13

14

Maquinas de
Estado Finito

Maquinas de
Estado Finito

Cont

Cont



Ejemplo:
Una mquina de estado finito para el sumador en serie




Disear una mquina de estado finto que realice la suma en serie.


Representaremos la mquina de estado finito mediante su diagrama de
transicin.
Como el sumador en serie acepta pares de bits ,







el conjunto de entrada ser {00, 01, 10, 11}


El conjunto de salida es {0, 1}

El conjunto de salida es: {0,1}.


Tendremos dos entradas x y y.
Realizamos dos acciones: sumamos x y y o x,y y 1.
Tenemos dos estados C (acarreo) y NC (sin acarreo).
NC es el estado inicial.
01/1
01/0

00/0
11/0

Dada una entrada xy, realizamos una de las dos acciones siguientes:



10/0

sumamos x y y, o
sumamos x, y y 1,

NC
NC
00/1

segn si el bit de acarreo sea 0 o 1.


10/1


Los estados sern C(acarreo) y NC(sin acarreo). Podemos ahora


dibujar los vrtices y designar el estado inicial en nuestro diagrama.

CC

15

11/1

16

Maquinas de
Estado Finito

Maquinas de
Estado Finito

Cont



Cont

Ejemplo:
flip flop SR



Un flip-flop es un componente bsico de los circuitos digitales, sirve


como una celda de memoria de un bit.
El flip flop SR se puede definir mediante la siguiente tabla:

No permitida

1S

0R

{1 si S fue ultimo bit igual a 1


{0 si R fue ultimo bit igual a 1

Podemos modelar el flip flop SR como una mquina de estado


finito, definiendo los estados S fue el ltimo bit igual a 1 y R fue el
ltimo bit igual a 1.

La entrada sern los valores de S y R. Definimos a Q como la salida.


De manera arbitraria hemos escogido a S fue el ltimo bit igual a 1
como estado inicial.
00/1

00/0
01/0

S fue el ultimo
bit igual a uno

10/1

R fue el ultimo
bit igual a uno

10/1

01/0

17

18

Maquinas de
Estado Finito

Automatas
de estado finito

Cont

Cont


Ejemplo:


S


Solucin.


En una estacin del Metro una mquina distribuye tiquetes sencillos a $600
pesos el tiquete. La mquina acepta monedas de $100, $200, $500, $1000.
Mediante una tabla, describa los diferentes estados de la mquina y la
salida.

Se supondr que la mquina se encuentra en el estado e0 perteneciente a E


en el tiempo t0. Al introducir una moneda en el tiempo ti la salida ser g(x,es)
donde es es el estado de la mquina en el tiempo ti. A esta salida le sigue
una transicin de la mquina en el tiempo ti+1dado por f(x,es).
Los estados del conjunto E sern:





 Implantacin del flip-flop SR mediante un circuito secuencial



19

e0 = Estado inicial de la mquina sin introducir monedas.


e1 = La mquina recuerda la insercin de $100.
e2 = La mquina recuerda la insercin de $200.
e3 = La mquina recuerda la insercin de $300.
e4 = La mquina recuerda la insercin de $400.
e5 = La mquina recuerda la insercin de $500.
e6 = La mquina recuerda la insercin de $600 o ms pesos.

20

Automatas
de estado finito

Automatas
de estado finito

Cont


Cont

Cont


La funcin f: E x A E donde A = { n, 100, 200, 500, 1000, b } es la


entrada donde n detalla el hecho de no introducir monedas y b hundir
botn para obtener el tiquete, se detalla en la siguiente tabla:
f
n

100

200

500

1000

e0

e0

e1

e2

e5

e6

e0

e1

e1

e2

e3

e6

e6

e1

e2

e2

e3

e4

e6

e6

e2

e3

e3

e4

e5

e6

e6

e3

e4

e4

e5

e6

e6

e6

e4

e5

e5

e6

e6

e6

e6

e5

e6

e6

e6

e6

e6

e6

e0

Cont
 En esta tabla por ejemplo, f(e0,500)=e5; lo que quiere decir que
en el tiempo t siguiente la mquina recordar que se le han
introducido $500.
 f(e3,200)=e5 , lo que significa que la mquina pasa del estado e3;
al estado e5 ; lo que quiere decir que pasa de "recordar" que se
le habran introducido $300 a "recordar" que se le han
introducido $500.
 f(e5,200)=e6 , lo que significa que la mquina pasa de "recordar"
que se le habran introducido $500 a "recordar" que se le han
introducido ms de $600, en este caso, la funcin de salida se
disear para que devuelva $100 al comprador.
 Al pulsar el botn, la mquina pasar al estado e0; si el estado
actual es e0 e6.

21

22

Automatas
de estado finito

Automatas
de estado finito

Cont


Cont


Cont


La funcin g:E x A B es la funcin de salida, que se detalla en el


siguiente cuadro:
g
n

100

200

500

1000

e0

400

e1

500

e2

100

600

e3

200

700

e4

300

800

e5

100

400

900

e6

100

200

500

1000

Cont
 En esta tabla, por ejemplo, g(e3,500) = 200, lo que significa
que la mquina pasa de "recordar" que se le haban
introducido $300 a "recordar" $800 y por tanto devuelve
$200. Como f(e3,500)=e6, la mquina pasa al estado e6 y
por ltimo, como g(e6,b)=T recibe el tiquete.


Como f(e6,b)=e0, la mquina retorna al estado inicial.

El conjunto de salida B ser:







23

B = { n, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, T}

n significa que no hay salida.


T significa que se entrega el tiquete.
24

Automatas
de estado finito

Automatas
de estado finito

Cont


Autmatas de Estado Finito

Ejercicios:
1.

2.

3.

Disee una mquina de estado finito que produzca la salida 1 si la


entrada son k unos, donde k es mltiplo de 3; produce la salida 0 en
caso contrario.
Disee una mquina de estado finito que produzca la salida 1 cuando
ve el primer 0 y hasta ver otro; a partir de ese momento produce la
salida 0; en los dems casos, produce la salida 0.
Dibuje el diagrama de transicin de la mquina M={ A, B, E, f, g}
donde A = {a, b}; B = {0, 1}; E = {e0, e1} dadas las tablas siguientes
de f y g.
f

Un autmata de estado finito es un tipo particular de


mquina de estado finito.

Los autmatas de estado finito tienen un inters especial,


debido a su relacin con los lenguajes.

Definicin:


Un autmata de estado finito A = (I, O, S, f, g, ) es una


mquina de estado finito en la que el conjunto de smbolos de
salida es {0,1} y donde el estado actual determina la ltima
salida. Aquellos estados para los cuales la ltima salida es 1
son los estados de aceptacin.

e0

e0

e1

e1

e1

e1

e0

e1

1
25

26

Automatas
de estado finito

Automatas
de estado finito

Cont

Cont

Los diagramas de transicin de un autmata de estado


finito se dibujan con los estados de aceptacin encerrados en
crculos dobles y omitiendo los smbolos de salida.

Esto se debe a que solo existen dos smbolos de salida {0,1} y


cuando el ltimo smbolo de salida es 1, se conoce como un
estado de aceptacin, caso contrario no lo es por lo que no es
necesario sealar el smbolo de salida en los lazos dirigidos.

f
I

27

El estado inicial es 0. Mostrar que A es un autmata de


estado finito y determinar el conjunto de estados de
aceptacin.

f(0,a)= 1
f(0,b)= 0
f(1,a)= 2
f(1,b)= 0
f(2,a)= 2
f(2,b)= 0

g(0,a)= 1
g(0,b)= 0
g(1,a)= 1
g(1,b)= 0
g(2,a)= 1
g(2,b)= 0

Si estamos en el estado 0, la ltima salida fue 0. Si


estamos en el estado 1 o el estado 2 la ltima salida
fue 1; as que A es un autmata de estado finito. Los
estados de aceptacin son 1 y 2.
28

Automatas

Automatas
de estado finito

Diagrama de transicin de unde estado finito


Autmata de EF

A=(I,S,f,A,).
I={ a,b }
S={0, 1, 2 }
A = { 2 }: = 0






Cont

b/0

a/1

a/1

Ejemplo:


a/1
0

A partir del diagrama de autmata de estado finito dibujar


el diagrama de transicin de una mquina de estado finito.

b/0
a/0

b/0

b/1

a
b

b/0

a/1

b/0

a
0

1
a/0

1
a

a
2

29

30

Automatas
de estado finito

Automatas
de estado finito

Cont

Autmatas de estado finito aceptados




Definicin



Ejemplo:


Sea A=(I, S, f, A, ) un A.E.F.


Sea x = x1... xn un arreglo no nulo de I. Si existen estados
0,..., n que satisfacen:
(a) 0 = *
(b) f(i-1, x1) = i para i = 1,...,n;

A = (I, O, S, f, g, ) donde: I = {a,b}; S=


{0, 1, 2}; A={2}; = 0 y f est dada
por la siguiente tabla:

f
I

Si una cadena se utiliza como entrada de un


autmata de estado finito, terminaremos en
un estado de aceptacin o en uno de no
aceptacin. La situacin de este estado final
determina si la cadena es aceptada por el
autmata de estado finito.

se dice que x es aceptado por A.


a



Al conjunto de arreglos aceptados por A se denota Ac(A)


Al camino (dirigido)(0,..., n ) se le llama camino que
representa a en A.

b
0

31

b
1
a

32

Automatas
de estado finito

Automatas
de estado finito

Cont


Cont

Ejemplo:
 Existe una cadena abaa. Verificar si el autmata de
estado finito mostrado a continuacin acepta esta
cadena.


Ejemplo:

Disear un autmata de estado finito que acepte


precisamente aquellas cadenas sobre {a,b} que no
tengan letras a.

Comenzamos en el estado 0. Cuando a es la entrada, pasamos al


estado 1. Cuando b es la entrada, vamos al estado o. Cuando a es la
entrada, pasamos a estado 1. Por ltimo, cuando se utiliza como
entrada el ltimo smbolo a, pasamos al estado 2. El camino (o, 1,
o, 1, 2) representa la cadena abaa. Como el estado final 2 es un
estado de aceptacin, la cadena abaa es aceptada por el autmata de
estado finito.
b
a
a
a
0
1
2
b

La idea es utilizar dos estados:

A: Se encontr una a.
NA: No se encontr una a.




El estado NA es el estado inicial y el nico estado de


aceptacin. Por lo tanto el diagrama de transicin del
autmata de estado finito sera:

a
NA

b
A

33

34

Automatas
de estado finito

Automatas
de estado finito

Cont


Cont

Ejemplo:
 Disear un autmata de estado finito que acepte
precisamente aquellas cadenas sobre {a,b} que contengan
un nmero impar de letras a.

Algoritmo del autmata de estado finito anterior





Entrada: n, la longitud de la cadena s1,s2,,sn


Salida:



Los dos estados son:





Aceptar si la cadena es aceptada.


Rechazar si la cadena no es aceptada.
Procedure fsa(s,n)
state:=E
for i:=1 to n do
begin
if state=E and si=a then
state:=O
if state=O and si=a then
state:=E
end
if state=O then
return(Aceptar)
else
return(Rechazar)
end fsa

E: Se encontr un nmero par de a.


O: Se encontr un nmero impar de a.

El estado E es el estado inicial y O es el nico estado de


aceptacin. Su diagrama de transicin es:
a

b
E

O
a

35

36

Autmatas Equivalente

Automatas
de estado finito

Automatas
de estado finito

Cont

Definicin:
 Si dos autmatas de estado finito aceptan precisamente las
mismas cadenas, decimos que los autmatas son
equivalentes.

Podemos verificar
con la cadena abaab
siguientes diagramas son equivalentes:

Los autmatas de estado finito A y A son equivalentes si


Ac(A) = Ac(A).

Si definimos una relacin R sobre un conjunto de autmatas de


estado finito mediante la regla ARA.

Para que A y A sean equivalentes, R debe ser una relacin de


equivalencia.

Ejemplo:

a
NA

que

a
b
0

Cada clase de equivalencia consta de un conjunto de autmatas de


estado finito equivalentes entre s.

2
b

37

38

Automatas
de estado finito

Automatas
de estado finito

Cont


Cont

Ejercicios:


Muestre que la mquina de estado


finito descrita por la siguiente grfica
es un autmata de estado finito.


Ejercicios:


Cul es el estado de aceptacin?

Trace la grfica de un autmata de estado finito que acepte cadenas del


conjunto A = { a, b} que posean:




Dada la grfica del autmata de estado


finito


los

Dibuje la tabla de transicin de


estados y la tabla de salida.

Un nmero par de a.
Al menos dos a.
Exactamente dos a.
Contiene n letras a, donde n es un nmero mltiplo de 3.

Dado A = { a, b}, muestre que una cadena de entrada es aceptada por el


autmata de estado finito dado por la siguiente grfica:

Determine si la cadena abbaa es


aceptada por los autmatas de los dos
ejercicios anteriores.


39

S y slo s la cadena termina en a. Cul es la tabla de transicin de estados?


40

10

Automatas
de estado finito

Cont


Ejercicios:


Muestre que una cadena de entrada, dado A = { a, b} es aceptada


por el autmata de estado finito dado por la siguiente grfica:

S y slo s la cadena termina en bb. Cul es la tabla de transicin


de estados?

41

11