• No se han encontrado resultados

Máquinas de estados finitas 1

N/A
N/A
Protected

Academic year: 2021

Share "Máquinas de estados finitas 1"

Copied!
23
0
0

Texto completo

(1)

MÁQUINAS DE ESTADOS

MÁQUINAS DE ESTADOS

FINITAS

FINITAS

(2)

INTRODUCCIÓN

Evento discreto: ocurrencia de una característica en la evolución de una

señal (flanco de subida, paso por un cierto nivel, pulso, llegada de un

dato

)

dato, …).

CONTINUO DISCRETO ESTADO Eventos discretos Sistemas Continuos o Analógicos Sistemas de Eventos Discretos Asíncronos N TINUO g

TIEMPO Sistemas de Sistemas de

CO N E TO Tiempo Discreto o Muestreados Eventos Discretos Síncronos DISCR E

(3)

INTRODUCCIÓN

Sistemas de eventos discretos: sistemas dinámicos que cambian de

estado ante la ocurrencia de eventos discretos. Generalmente el estado

sólo puede adquirir un conjunto discreto de valores y puede ser

sólo puede adquirir un conjunto discreto de valores y puede ser

representado de forma simbólica en vez de numérica.

Ejemplo:

encendida

Ejemplo:

accionamiento interruptor accionamiento interruptor

Tiempo contínuo

(sistemas asíncronos)

apagada

ƒ El estado del sistema puede cambiar en cualquier instante ante la llegada de un evento. Ej.: accionamiento del interruptor.

Tiempo discreto

(sistemas síncronos)

Tiempo discreto

(sistemas síncronos)

ƒ El estado del sistema sólo cambia cada T sg en función del estado y entradas presentes en esos instantes de tiempo. Evento: señal de reloj. p p j Ej.: intermitente.

(4)

CONCEPTO DE AUTÓMATA. MODELOS

Modelo de MEALY

i d MEALY U á i i l d ti Máquina de MEALY: Una máquina secuencial de tipo MEALY es una 5-tupla M=(Q,I,O,δ,β) donde:

Q Ø es un conjunto finito de estados Q Ø es un conjunto finito de estados

I Ø es un conjunto finito de entradas (símbolos de …) O Ø es un conjunto finito de salidas (símbolos de …)

δ: QxIQ es la función de transición de estado

δ: QxI Q es la función de transición de estado

β: QxI O es la función de salida

I

O

β

Q

β

(5)

CONCEPTO DE AUTÓMATA. MODELOS

Modelo MOORE

Máquina de MOORE: Una máquina secuencial de tipo MOORE es una 5-tupla M=(Q,I,O,δ,λ) donde:

Q Ø es un conjunto finito de estados

I Ø es un conjunto finito de entradas (símbolos de …) O Ø es un conjunto finito de salidas (símbolos de …)

Q I Q l f ió d t i ió d t d

δ: QxI Q es la función de transición de estado

λ: Q O es la función de salida

I

O

I

O

λ

δ

Q

COMBINACIONAL

(6)

CONCEPTO DE AUTÓMATA. MODELOS

Ejemplo: Sumador binario serie de 1 bit

• Dos entradas binarias

x1

y

y

x2

• Una salida binaria

y

Modelo MEALY

x1 … 0 1 1 1 1

Modelo MEALY

Q = {q0,q1} donde

0 t d d … y x 1 1 0 1 1

+

ƒ q0 → estado de no acarreo ƒ q1 → estado de acarreo 2 x … 0 1 1 0 0

Función de transición de estado:

ƒ δ(q0,11) = q1 δ(q0,00/01/10) = q0 ƒ δ(q1,00) = q0 δ(q1,10/01/11) = q1

Función de salida:

ƒ β(q0,00/11) = 0 β(q0,01/10) = 1 ƒ β(q1,00/11) = 1 β(q1,01/10) = 0

(7)

CONCEPTO DE AUTÓMATA. MODELOS

Modelo MOORE

Q = {q00,q01,q10,q11} donde

{q

q

q

q

}

0 1 1 1 1

ƒ q00 → estado de no acarreo con salida y=0 ƒ q01 → estado de no acarreo con salida y=1

… y x1 1 0 1 1 1 1 1 1 0 1

+

q y

ƒ q10 → estado de acarreo con salida y=0 ƒ q11 → estado de acarreo con salida y=1

2 x

0 1 1 0 0

q11 → estado de acarreo con salida y 1

Función de transición de estado:

ƒ δ(q00/q01 00) = q00 δ(q00/q01 11) = q10 ƒ δ(q00/q01 ,00) = q00 δ(q00/q01 ,11) = q10 ƒ δ(q10/q11 ,00) = q01 δ(q10/q11 ,11) = q11 ƒ δ(q00/q01 01/10) = q01 δ(q10/q11 01/10) = q10 ƒ δ(q00/q01 ,01/10) = q01 δ(q10/q11,01/10) = q10

Función de salida

:

( / ) ( / ) ƒ λ(q00/q10) = 0 λ(q01/q11) = 1

(8)

REPRESENTACIÓN Y MODELADO

Tabla de transición

• Representación tabular de las funciones de transición de estado y

p

y

salida

SUMADOR EN SERIE DE 1 BIT

Modelo MEALY Modelo MOORE

q

q

00

01

11

10

00

01

11

10

O

q0

q0,

0

q0,

1

q1,

0

q0,

1

q00 q00 q01 q10 q01

0

q1

q0,

1

q1,

0

q1,

1

q1,

0

q01 q00 q01 q10 q01

1

T

q

q

T

q1

q0,

1

q1,

0

q1,

1

q1,

0

q01 q00 q01 q10 q01

1

q10 q01 q10 q11 q10

0

q11 q01 q10 q11 q10

1

T T

q

T T

q

Diseño: La salida se computa a partir

Diseño: La salida se computa a partir del estado actual y las entradas

(9)

REPRESENTACIÓN Y MODELADO

Diagrama de transición

• Grafo cuyos nodos representan estados y los arcos cambios de

y

p

y

estado.

M d l MEALY 00/0 11/1 ƒ Modelo MEALY q0 q1 11/0 00/1 01,10/0 01,10/1 00 q00/0 11 q /0 10 01 SUMADOR EN SERIE DE 1 BIT ƒ Modelo MOORE 00 10,01 0 0 0 0 q00/0 q 10/0 0 0 01,10 11 00 11 01,1 0 00 11 01,10 q01/1 q11/1

(10)

REDUCCIÓN DE AUTOMATAS

Autómatas completamente especificados

• Una vez construido un modelo:

ƒ ¿Es posible reducir el número de estados?

– ↓ coste de implementación/ejecuciónp j

– ↑ manejabilidad del modelo RELACION DE

EQUIVALENCIA

Estados equivalentes: Dado un autómata de estados

finitos A=(Q,I,O,

δ

,

λ

), dos estados qi, qj

Q se dicen

equivalentes

q

⇔ δ

(qi,e) =

(q , )

δ

(qj,e)

(qj, )

e

I y

y (q )

λ

(qi) =

λ

(qj).

(qj)

(MEALY

β

(qi,e) =

β

(qj,e)

e

I)

• Dos estados equivalentes son

INDISTINGUIBLES

• El comportamiento del autómata a partir de cualquiera de los dos

estados es el mismo.

(11)

REDUCCIÓN DE AUTÓMATAS

Reconocedor de cadenas 101

x y

…10101 una sola secuencia

I: x={0 1}

Rec.(101) x y ...111011011 ...001001000 0/0 1/0 1/0

I: x={0,1}

O: y={0,1}

NADA 1 10 101 1/0 1/0 0/0 1/1 0/0 0/0 Cadena no encontrada Cadena encontrada

Estados:

NADA

nada reconocido

1

subcadena 1 reconocida

10

subcadena 10 reconocida

Mealy/Moore?

101

cadena 101 reconocida

Análisis computacional

(12)

REDUCCIÓN DE AUTÓMATAS

Identificación de estados equivalentes

0/0 1/0 NADA 1 10 101 0/0 1/0 1/0 0/0 1/1 1/0 0/0 0/0 1/1 x=0 x=1 Qn Qn/0 Q1/0 Q Q /0 Q /0 0/0 Q1 Q10/0 Q1/0 Q10 Qn/0 Q101/1 Q101 Qn/0 Q1/0 Control secuencial

Conversión a Máquina de Moore

0 1 1 101 n 1 x=0 x=1 y Control secuencial Máquinas Síncronas NADA/0 1 1/0 0 10/0 1 101/1 0 Qn Qn Q1 0 Q1 Q10 Q1 0 Q Q Q 0 0 Q10 Qn Q101 0

(13)

REDUCCIÓN DE AUTÓMATAS

Autómatas incompletamente especificados

• Ejemplo: Detector de coches en sentido contrario

j

p

ƒ Especificar un sistema que permita detectar vehículos que circulan en dirección contraria por una autovía. Dicho sistema tendrá dos entradas e1 y e2 que serán las señales de dos células fotoeléctricas situadas a una y e2 que serán las señales de dos células fotoeléctricas situadas a una distancia menor que la longitud del vehículo y la separación entre vehículos. e1 e2 q1 q2 q3 q4 ¿MEALY o MOORE? ¿MEALY o MOORE? q5 q6 q7

(14)

REDUCCIÓN DE AUTÓMATAS

Estados compatibles: Dado un autómata de

estados finitos A=(Q,I,O,δ,λ) incompletamente

ifi d di d t d Transitiva?

especificado, se dice que dos estados qi, qj Q son compatibles qi ~ qj

(1) δ(qi e) δ(qj e)e I en el dominio

Transitiva?

(1) δ(qi,e) = δ(qj,e) e I en el dominio de especificación (2) λ(qi) λ(qj) en el dominio de (2) λ(qi) = λ(qj) en el dominio de especificación Condiciones de retención del estado? 00 01 11 10 S q1 q1 q5 X q2 1 q2 X X q3 q2 1 q q q q3 X q4 q3 X 1 q4 q1 q4 X X 1 q5 X q5 q6 X 0 q6 X X q6 q7 0 q7 q1 X X q7 0

(15)

REDUCCIÓN DE AUTÓMATAS

GRAFO DE COMPATIBILIDAD

Algoritmo para reducción

1)Construir el grafo de C 2 C1 q1 q2 compatibilidad binaria

2)Encontrar el mayor subgrafo

completo S en el grafo (estados

compatibles)

2

C1

q7 compatibles)

3)Borrar S y volver al paso 2 hasta que todos los vértices estén agrupados q6 q3 q5 q4 C3 Análisis de complejidad

(16)

REDUCCIÓN DE AUTÓMATAS

Reducción de estados

q1 -> C1 (sistema en reposo)

q2,q3,q4 -> C2 (coche en sentido permitido)

q5,q6,q7 -> C3 (coche en sentido contrario)

00 01 11 10 S C1 C1 C3 X C2 1 C1 C1 C3 X C2 1 C2 C1 C2 C2 C2 1 C3 C1 C3 C3 C3 0 00,11 01,11,10 01,11,10 C1/1 C3/0 10 C2/1 01 00 00 Mealy/Moore? 01 00

(17)

IMPLEMENTACIÓN-

ENTRADAS

Eventos

-> espera a su llegada para que evolucione el sistema

ƒ Muestreo apagado encendido

ƒ Interrupción encendido encendido apagado

Entradas de nivel

ƒ Lectura asíncrona apagado Lectura asíncrona

– Las entradas se leen conforme se vayan

necesitando en el control (ciclo de tratamiento) –

Aleatoriedades / Transitorios

L t í

ƒ Lectura síncrona

Se leen todas las entradas a la vez

M i I

(18)

IMPLEMENTACIÓN-SALIDAS

Impulsionales

p

e

r/set(

o

j)

e

m/clear(

o

j)

ƒ Asociadas a cambios de estados / Modelo MEALY

De nivel o mantenidas

e

s/set(

o

j)

e

n/clear(

o

j)

q

i

De nivel o mantenidas

ƒ Asociadas a estados / Modelo MOORE

e

r

e

m

e

s/set(

o

j)

e

n/clear(

o

j)

e

m

q

i/

o

j

Generación

e

s

e

n

ƒ En el instante en que se calculan (asíncrona) ƒ Todas al final del tratamiento (síncrona)

(19)

IMPLEMENTACIÓN

Ejemplo: Detector sentido contrario

void main (void) {

//... C1:

Genera (NO_ALARMA) ;

Entrada = Leer_Entrada () ;

if (Entrada == I01) goto C3 ;

if (Entrada == I10) gotog C2 ;

goto C1 ; C2:

Genera (NO_ALARMA) ;

Entrada = Leer Entrada () ;

00,11 01,11,10 10

00 01,11,10

_

if (Entrada == I00) goto C1 ;

goto C2 ; C3: Genera (ALARMA) ; C1/1 C3/0 C2/1 01 00 Entrada = Leer_Entrada () ;

if (Entrada == I00) goto C1 ;

goto C3 ; CÓDIGO NO ESTRUCTURADO

//...

return ; }

Difícil puesta a punto y mantenimiento

(20)

IMPLEMENTACIÓN

Ciclo de tratamiento

Ej.: Detección

j

void main (void)

sentido contrario

ƒ MOORE { while (1) { Entrada = Leer_Entrada () ; ƒ Entradas nivel síncronas S lid _ Estado = Sig_Estado ; switch (Estado) {

case C1 : Genera (NO_ALARMA) ; ƒ Salidas

asíncronas

_

switch (Entrada) {

case I01 : Sig_Estado = C3 ; break ; case I10 : Sig_Estado = C2 ; break ; default : ;}

break ;

case C2 : Genera (NO_ALARMA) ;

if (Entrada == I00) Sig_Estado = C3 ;

break ;

¿Salidas

case C3 : Genera (ALARMA) ;

if (Entrada == I00) Sig_Estado = C1 ;

break ; } ¿Salidas síncronas? } return ; }

(21)

IMPLEMENTACIÓN

Ej: Reconocedor de cadenas

void main (void)

0/0 1/0 { while (1) { [Espera_Sincronismo ();] d i () NADA 1/0 1 0/0 10 0/0 Entrada Entrada = Leer_Bit (); switch (Estado) {

case NADA : if (Entrada==0) {Salida=0; Estado=NADA;}

l if ( d 1) {S lid 0 d 1 }

1/1 Síncrona

else if (Entrada==1) {Salida=0; Estado=E1;}

break ;

case E1 : if (Entrada==0) {Salida=0; Estado=E10;}

else if (Entrada==1) {Salida=0; Estado=E1;}

b k

Máquina de Mealy

break ;

case E10 : if (Entrada==0) {Salida=0; Estado=NADA;}

else if (Entrada==1) {Salida=1; Estado=E101;}

break ;

E101 if (E t d 0) {S lid 0 E t d NADA }

Retención

case E101 : if (Entrada==0) {Salida=0; Estado=NADA;} else if (Entrada==1) {Salida=0; Estado=E1;} break ; } G (S lid ) Salidas Sincronas Genera (Salida) ; } return ; } Sincronas

(22)

IMPLEMENTACIÓN

Reconocedor de cadenas con entrada de validación

0 1

1

1 0 1

void main (void) { while (1) NADA/0 1 1/0 0 10/0 1 101/1 0 0 ( ) { Espera_Sincronismo () ; Entrada = Leer_Bit () ; switch (Estado) 0 Salida ( ) { case NADA : ... ... } 0 1 Genera (Salida) ; } return ; }

(23)

FIN

FIN

Referencias

Documento similar

En toda entidad pública es elemental para su buen funcionamiento un eficiente y adecuado control interno de los recursos financieros y es por ello qué el presente trabajo tiene

Conocedores de la necesidad de aprender, difundir y discutir los avances recientes respecto de este prioritario tema, en cuanto a proceso educativo,

La función de esta herramienta consiste en obtener una determinada iluminación de una antena leaky para sintetizar un diagrama de radiación determinado y además comprobar que a

La Planeación Estratégica es un proceso continuo de evaluación sistemática de la naturaleza de la organización, definiendo sus objetivos a largo plazo, identificando

Tema: Existe un vocabulario básico para efectos del intercambio de información personal básica en inglés, a fin de llevar a cabo una

4.- Los elementos de un array se inicializan al valor por defecto del tipo correspondiente (cero para valores numéricos, el carácter nulo par char, false para boolean, null para

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

Comunicación en los sistemas distribuidos de control en tiempo real .... Sistemas disparados por tiempo y disparados por