DMD8 automatas de estado finito

Anuncio
Maquinas de Estado
Finito
Matemáticas
Discretas
Circuitos secuenciales
Capítulo 8:
Circuitos Secuenciales,
Máquinas y Autómatas
de Estado Finito
Estudiaremos los sistemas donde la salida en un instante dado
depende, no sólo 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 secuenciación en los circuitos
consiste en utilizar un retraso unitario de tiempo.
1
2
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 números binarios
(x,y) y produce como salida la suma (z). Los dos números se
introducen de manera secuencial por pares (x0,y0;…;xn,yn).
Xt
Retraso
Retraso
Xt-1
X = 0xnxn-1…x0
Y = 0ynyn-1…y0
Z = zn+1zn … z0
Xt
Yt
Como ejemplo del retraso unitario de tiempo, analizaremos
el sumador en serie.
El sumador en serie es una aplicación del retraso unitario
Ct-1
i
Sumador
Sumador
completo
completo
St
Zt
Ct
Retraso
Retraso
El ingreso de dos números de entrada X y Y, tiene una salida Z
3
4
1
Maquinas de Estado
Finito
Maquinas de Estado
Finito
Sumador en serie
Maquina de Estado Finito
Cálculo de la suma de dos números x y y mediante el sumador
de serie. (x=010; y=011).
Una Máquina de Estado finito es un modelo Abstracto de una
máquina con una memoria interna primitiva.
El retraso unitario es el acarreo del sumador de serie
Definición:
Una máquina 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
0
i=0
Retraso
Retraso
z1=0
1
St
Sumador
Sumador
completo
completo
y2=0
i=1
f ( S, I ) = S
Una función de salida g de SxI en O.
Retraso
Retraso
{ σ1, σ2}
Una función de estado siguiente f de SxI en S.
0
{ 0, 1}
Un conjunto finito S de estados.
z2=1
{ a, b, c}
Un conjunto finito O de símbolos de salida.
Retraso
Retraso
X2=0
Un conjunto finito I de símbolos de entrada.
f ( S, I ) = O
Un estado inicial σ Є S.
Z = z0z1z2= 101
Escribimos M = (I, O, S , f, g, σ)
5
Maquinas de Estado
Finito
6
Maquinas de Estado
Finito
Cont…
Cont…
Interpretación 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:SxI→S y g:SxI → O, mediante las
reglas de la tabla dada.
f
I
a
Para M = (I, O, S , f, g, σ)
g
b
a
b
S
Tabla:
f
I
g
a
b
a
b
σ0
σ0
σ1
0
1
σ1
σ1
σ1
1
0
S
f(σ0,a)=σ0
g(σ0,a)=0
f(σ0,b)=σ1
g(σ0,a)=1
σ0
σ0 σ1
0
1
f(σ1,a)=σ1
g(σ0,a)=1
σ1
σ1 σ1
1
0
f(σ1,b)=σ1
g(σ0,a)=1
σ0 es elemento de la función de estado , a es elemento de la funcion de entrada y 1 es elemento de la función de salida
Entonces M = ( I, O, S, f, g, σo)
7
8
2
Maquinas de Estado
Finito
Diagramas de transición
Cont…
A este grupo de estados siguientes y de salida se los
puede representar mediante un Diagrama de Transición
Constan de:
σ
Los vértices que son los estados.
Un estado inicial que se indica mediante una flecha.
Definición:
Sea M = ( I, O, S, f, g, σ) una máquina de estado finito. El
diagrama de transición de M es una digráfica G cuyos vértices
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
vértice “σ” hasta el vértice “σ´” y lo etiquetamos i/o.
σ
Maquinas de
Estado Finito
Si f(σ1, j)= σ1 decimos que es un lazo dirigido en σ1, que
también será etiquetado respecto a la función g; si g(σ1, j )=1. El
lazo será etiquetado j/1
j/1
σ
i/o
i/0
σ1
σ´
σ2
9
10
Maquinas de
Estado Finito
Cont…
Maquinas de
Estado Finito
Cadena de Entrada
Realizar el diagrama de transición para la máquina de estado finito
de la tabla dada.
Definición:
f
I
g
a
b
a
b
σ0
σ0
σ1
0
1
σ1
σ1
σ1
1
0
S
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 máquina 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
σ = x1…xn
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
3
Maquinas de
Estado Finito
Maquinas de
Estado Finito
Cont…
Resolución usando el diagrama de transición
Ejemplo:
Determinar la cadena de salida
correspondiente a la cadena de entrada
aababba
para la máquina de estado finito del
ejemplo anterior
f
f
(σ
(σ
(σ
f (σ
,a)= σ
0
g (σ 0 , a ) = 0
,a)= σ
0
0
g (σ 0 , a ) = 0
0
0
,b)=
σ
1
g (σ 0 , b ) = 1
1
,a)=
σ
1
g (σ 1 , a ) = 1
f
I
S
σ0
σ1
g
a
b
σ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 máquina de estado finito para el sumador en serie
Diseñar una máquina de estado finto que realice la suma en serie.
Representaremos la máquina de estado finito mediante su diagrama de
transición.
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
según si el bit de acarreo sea 0 o 1.
10/1
Los estados serán C(acarreo) y NC(sin acarreo). Podemos ahora
dibujar los vértices y designar el estado inicial en nuestro diagrama.
CC
15
11/1
16
4
Maquinas de
Estado Finito
Maquinas de
Estado Finito
Cont…
Cont…
Ejemplo:
flip – flop SR
Un flip-flop es un componente básico de los circuitos digitales, sirve
como una celda de memoria de un bit.
El flip – flop SR se puede definir mediante la siguiente tabla:
S
R
Q
1
1
No permitida
1
0
1S
0
1
0R
0
0
{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 máquina 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 serán 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
Solución.
R
Q
En una estación del Metro una máquina distribuye tiquetes sencillos a $600
pesos el tiquete. La máquina acepta monedas de $100, $200, $500, $1000.
Mediante una tabla, describa los diferentes estados de la máquina y la
salida.
Se supondrá que la máquina 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 máquina en el tiempo ti. A esta salida le sigue
una transición de la máquina en el tiempo ti+1dado por f(x,es).
Los estados del conjunto E serán:
Implantación del flip-flop SR mediante un circuito secuencial
19
e0 = Estado inicial de la máquina sin introducir monedas.
e1 = La máquina recuerda la inserción de $100.
e2 = La máquina recuerda la inserción de $200.
e3 = La máquina recuerda la inserción de $300.
e4 = La máquina recuerda la inserción de $400.
e5 = La máquina recuerda la inserción de $500.
e6 = La máquina recuerda la inserción de $600 o más pesos.
20
5
Automatas
de estado finito
Automatas
de estado finito
Cont…
Cont…
Cont…
La función 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
botón para obtener el tiquete, se detalla en la siguiente tabla:
f
n
100
200
500
1000
b
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 máquina recordará que se le han
introducido $500.
f(e3,200)=e5 , lo que significa que la máquina pasa del estado e3;
al estado e5 ; lo que quiere decir que pasa de "recordar" que se
le habrían introducido $300 a "recordar" que se le han
introducido $500.
f(e5,200)=e6 , lo que significa que la máquina pasa de "recordar"
que se le habrían introducido $500 a "recordar" que se le han
introducido más de $600, en este caso, la función de salida se
diseñará para que devuelva $100 al comprador.
Al pulsar el botón, la máquina 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 función g:E x A ® B es la función de salida, que se detalla en el
siguiente cuadro:
g
n
100
200
500
1000
b
e0
n
n
n
n
400
n
e1
n
n
n
n
500
n
e2
n
n
n
100
600
n
e3
n
n
n
200
700
n
e4
n
n
n
300
800
n
e5
n
n
100
400
900
n
e6
n
100
200
500
1000
T
Cont…
En esta tabla, por ejemplo, g(e3,500) = 200, lo que significa
que la máquina pasa de "recordar" que se le habían
introducido $300 a "recordar" $800 y por tanto devuelve
$200. Como f(e3,500)=e6, la máquina pasa al estado e6 y
por último, como g(e6,b)=T recibe el tiquete.
Como f(e6,b)=e0, la máquina 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
6
Automatas
de estado finito
Automatas
de estado finito
Cont…
Autómatas de Estado Finito
Ejercicios:
1.
2.
3.
Diseñe una máquina de estado finito que produzca la salida 1 si la
entrada son k unos, donde k es múltiplo de 3; produce la salida 0 en
caso contrario.
Diseñe una máquina 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 demás casos, produce la salida 0.
Dibuje el diagrama de transición de la máquina 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 autómata de estado finito es un tipo particular de
máquina de estado finito.
Los autómatas de estado finito tienen un interés especial,
debido a su relación con los lenguajes.
Definición:
Un autómata de estado finito A = (I, O, S, f, g, σ) es una
máquina de estado finito en la que el conjunto de símbolos 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 aceptación.
g
a
b
e0
e0
e1
e1
e1
e1
a
b
e0
1
1
e1
0
1
25
26
Automatas
de estado finito
Automatas
de estado finito
Cont…
Cont…
Los diagramas de transición de un autómata de estado
finito se dibujan con los estados de aceptación encerrados en
círculos dobles y omitiendo los símbolos de salida.
Esto se debe a que solo existen dos símbolos de salida {0,1} y
cuando el último símbolo de salida es 1, se conoce como un
estado de aceptación, caso contrario no lo es por lo que no es
necesario señalar el símbolo de salida en los lazos dirigidos.
f
I
27
El estado inicial es σ0. Mostrar que A es un autómata de
estado finito y determinar el conjunto de estados de
aceptación.
S
g
a
b
a
b
σ0
σ1
σ0
1
0
σ1
σ2
σ0
1
0
σ2
σ2
σ0
1
0
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 autómata de estado finito. Los
estados de aceptación son σ1 y σ2.
28
7
Automatas
Automatas
de estado finito
Diagrama de transición de unde estado finito
Autómata 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
σ2
σ1
A partir del diagrama de autómata de estado finito dibujar
el diagrama de transición de una máquina de estado finito.
b/0
a/0
σ0
b/0
b/1
b
a
a
b
σ1
b/0
a/1
b/0
a
σ0
σ2
a
σ0
σ1
a/0
b
σ2
σ1
a
b
b
b
a
σ2
29
30
Automatas
de estado finito
Automatas
de estado finito
Cont…
Autómatas de estado finito aceptados
Definición
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
autómata de estado finito, terminaremos en
un estado de aceptación o en uno de no
aceptación. La situación de este estado final
determina si la cadena es aceptada por el
autómata de estado finito.
S
a
b
σ0
σ0
σ1
σ1
σ0
σ2
σ2
σ0
σ2
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
a
b
σ1
a
b
σ2
32
8
Automatas
de estado finito
Automatas
de estado finito
Cont…
Cont…
Ejemplo:
Existe una cadena “abaa”. Verificar si el autómata de
estado finito mostrado a continuación acepta esta
cadena.
Ejemplo:
Diseñar un autómata 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 símbolo 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 aceptación, la cadena abaa es aceptada por el autómata 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
aceptación. Por lo tanto el diagrama de transición del
autómata de estado finito sería:
b
b
a
NA
a
b
A
33
34
Automatas
de estado finito
Automatas
de estado finito
Cont…
Cont…
Ejemplo:
Diseñar un autómata de estado finito que acepte
precisamente aquellas cadenas sobre {a,b} que contengan
un número impar de letras a.
Algoritmo del autómata 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 número par de a.
O: Se encontró un número impar de a.
El estado E es el estado inicial y O es el único estado de
aceptación. Su diagrama de transición es:
a
b
b
E
O
a
35
36
9
Autómatas Equivalente
Automatas
de estado finito
Automatas
de estado finito
Cont…
Definición:
Si dos autómatas de estado finito aceptan precisamente las
mismas cadenas, decimos que los autómatas son
equivalentes.
Podemos verificar
con la cadena “abaab”
siguientes diagramas son equivalentes:
Los autómatas de estado finito A y A´ son equivalentes si
Ac(A) = Ac(A´).
Si definimos una relación R sobre un conjunto de autómatas de
estado finito mediante la regla ARA’.
Para que A y A’ sean equivalentes, R debe ser una relación de
equivalencia.
Ejemplo:
b
a
NA
que
b
a
A
b
a
b
σ0
Cada clase de equivalencia consta de un conjunto de autómatas de
estado finito equivalentes entre sí.
a
σ1
a
σ2
b
37
38
Automatas
de estado finito
Automatas
de estado finito
Cont…
Cont…
Ejercicios:
Muestre que la máquina de estado
finito descrita por la siguiente gráfica
es un autómata de estado finito.
Ejercicios:
Cuál es el estado de aceptación?
Trace la gráfica de un autómata de estado finito que acepte cadenas del
conjunto A = { a, b} que posean:
Dada la gráfica del autómata de estado
finito
los
Dibuje la tabla de transición de
estados y la tabla de salida.
Un número par de a.
Al menos dos a.
Exactamente dos a.
Contiene n letras a, donde n es un número múltiplo de 3.
Dado A = { a, b}, muestre que una cadena de entrada es aceptada por el
autómata de estado finito dado por la siguiente gráfica:
Determine si la cadena abbaa es
aceptada por los autómatas de los dos
ejercicios anteriores.
39
Sí y sólo sí la cadena termina en a. Cuál es la tabla de transición de estados?
40
10
Automatas
de estado finito
Cont…
Ejercicios:
Muestre que una cadena de entrada, dado A = { a, b} es aceptada
por el autómata de estado finito dado por la siguiente gráfica:
Sí y sólo sí la cadena termina en bb. Cuál es la tabla de transición
de estados?
41
11
Descargar