You are on page 1of 55

Modelado de

Sistemas de
Eventos Discretos

Máquina de Estado Finito


Una máquina es un sistema que puede aceptar una
entrada y producirá una salida y tendrá algún tipo de
memoria interna que podrá registrar cierta información de
las entradas previas.
Introducción.

La condición interna completa de la máquina y de toda la memoria,


en un momento en particular, constituye el estado de la máquina en
ese momento.

El estado en que una máquina se encuentra en cualquier momento,


recibe la “memoria” de las entradas pasadas y determina cómo
reaccionará a las entradas subsecuentes.

Cuando se introducen más entradas, el estado actual y las entradas


determinarán el estado siguiente a ocupar y cualquier salida que
podría producirse.

Si el número de estados es finito, la máquina es una máquina de


estados finitos.
FSM

Todas las máquinas de estado finito tienen un conjunto de estados,


incluido el estado inicial, un alfabeto fuente y una función de
transición que a cada pareja de estado y dato de entrada le asigna
el estado siguiente.

Algunas máquinas de estado finito producen un símbolo como dato


de salida para cada transición y pueden utilizarse para modelar gran
variedad de máquinas, entre las que se incluyen las maquinas
expendedoras, los semáforos, los sumadores binarios y los
reconocedores de lenguajes.
FSM con Salida

Una máquina de estado finito con salida, 𝑀 = (𝑆, 𝐼, 𝑂, 𝑓, 𝑔, 𝑠0 ), consiste


en un conjunto finito de estados 𝑆, un alfabeto (conjunto finito no
vacío) de entradas 𝐼, un alfabeto de salidas 𝑂, un estado inicial 𝑠0 ,
una función de transición 𝑓 ∶ 𝑆 × 𝐼 → 𝑆 y una función de salida 𝑔 ∶ 𝑆 ×
𝑂 → 𝑂.
Máquina de Mealy

Sí la salida está determinada sólo por el estado, se llama Máquina


de Moore.
Representación de FSM.

Tabla de transición de estados

Diagrama de Estados: Grafo dirigido


Ejemplo
Ejercicio.

Suponiendo una máquina expendedora con dos tipos de productos


A y B. El precio de cada producto es de 10 céntimos. La máquina
admite únicamente monedas de 5 y 10 céntimos y devuelve el
cambio necesario.

Dispone de un botón rojo que expide el producto A y uno verde que


hace lo mismo con el producto B. Un cliente quiso comprar el
producto A y para ello introdujo consecutivamente dos monedas de
5 céntimos. Luego apretó el botón rojo y obtuvo el producto
deseado.
Ejercicio.

Construya la tabla de estados

Halle las cadenas de salida para las entradas:


a. 0101
b. 111111
c. 11101110111
Ejercicio

Tabla de transición de estados

Diagrama de Estados: Grafo dirigido


Ejercicio

Diagrama de Estados: Grafo dirigido

Realice la tabla de transición de estados.

Determine la salida para cada una de estas


cadenas de entrada.
a. 0000
b. 101010
c. 1011100010
Ejercicios

Autómata Finito.


Un autómata finito es un modelo matemático de una máquina, que permite
saber si una cadena de símbolos pertenece o no a un lenguaje definido sobre
cierto alfabeto.
Autómata Finito

Los Autómatas se caracterizan por tener un Estado inicial, reciben


una cadena de símbolos, cambian de estado por cada elemento
leído o pueden permanecer en el mismo estado. También tienen un
conjunto de Estados Finales o Aceptables que nos indican si una
cadena pertenece al lenguaje al final de una lectura.
Tipos de Autómatas

Autómatas Finitos Deterministas. Un Autómata recibe secuencialmente una


cadena de símbolos y cambia de estado por cada símbolo leído o también
puede permanecer en el mismo estado. Al final de la lectura el estado del
Autómata indica si la cadena es aceptada o mejor dicho pertenece al Lenguaje
que describe la máquina. Si al final de leer todos los símbolos de entrada, la
máquina está en alguno de los estados Finales entonces esa cadena es
aceptada, si el estado no es final entonces la cadena no pertenece al lenguaje.

Autómatas Finitos No Deterministas. A diferencia de los Autómatas Finitos


Deterministas, donde existe una única forma de llegar de un estado a otro con
una entrada y se tiene solo un estado inicial, los Autómatas Finitos No
Deterministas no cuentan con estas virtudes.
Tipos de Autómatas
Autómata Finito Determinista

1. Los nodos representan los estados. Se usan para señalar, en ese


momento, hasta qué lugar se ha analizado la cadena.

2. Los arcos o aristas del grafo se etiquetan con los caracteres del
alfabeto y se llaman transiciones. Si el siguiente carácter a reconocer
concuerda con la etiqueta de alguna transición que parta del estado
actual, se desplaza al estado al que lleve la arista correspondiente .

Un subconjunto 𝑋𝑚
de X representa los
estados de X que son
marcados.
Autómata Finito Determinista

Algunos hechos extractados del ejemplo:


• Puede ocurrir un evento sin cambio de estado.
• Para definir completamente un autómata se requiere definir el estado
inicial x0 y un subconjunto Xm de X que representa los estados
marcados de X. Éstos también reciben el nombre de estados aceptables
o finales y se definen cuando se quiere prestar atención especial al
significado de esos estados.
• Los estados iniciales se representan con una flecha apuntándolos,
mientras que los estados marcados se representan con un doble círculo.
Autómata Finito Determinista

Un Autómata Determinístico denotado por G, es una quintupla.

𝐺 = 𝑋, 𝐸, 𝑓, 𝑥0 , 𝑋𝑚
Donde:

X: Es un conjunto de estados.
E: Es un conjunto finito de eventos asociados a las transiciones.
f:XxE→X: Es la función de transición de estados.
X0: Es el estado inicial.
Xm  X: Es el conjunto de estados marcados.
Ejemplo

1. El conjunto de nodos es el conjunto de estados del autómata.


X={x, y, z}
2. El conjunto de etiquetas para las transiciones, corresponde al conjunto de
eventos (Alfabeto) del autómata.
E={a, b, g}
3. Los arcos en el grafo suministran una representación gráfica de la función de
transición del autómata.

Dibujar el grafo dirigido o grafo de transición de estados para representar el


autómata.
Ejemplo

La notación f(y; a) = x indica: si el autómata está en el estado y, con la


ocurrencia del evento a, el autómata hará una transición instantánea al
estado x. La causa del evento es irrelevante.
Cómo opera un Autómata

X = x, y, z
E = a, b, g

¿Cuál es el estado resultante de f(x; gba)?.


Ejemplo

Definir el autómata.
Definición de
Autómatas a partir de
Lenguajes.
Hallar el Autómata para cada expresión
E = a, b.
Considere el lenguaje:
L = a, aa, ba, aaa, aba, baa, bba, …, consistente de todas las cadenas de a y b,
siempre seguidas por un evento a.

El autómata que marca ese lenguaje queda Diagrama de estados.


definido por:

G = (E, X, f, x0, Xm) con:


E = a, b
X = 0, 1
x0 = 0,
Xm = 1
f: f(0,a) =1, f(0, b) = 0, f(1, a) = 1, f(1, b) = 0.

Definición de Autómatas a partir de lenguajes


Hallar el Autómata para cada expresión
1. El lenguaje L1= (a+b) Definición del autómata
X = 0,1
E = a, b
f: X x E  X. f(0,a) = f(0, b) =1
xo = 0; Xm  X = 1.
¿Diagrama de transición de estados?

2. El lenguaje L2= a* Definición del autómata


X = 0
E = a
f: X x E  X. f(0,a) = 0
xo = 0; Xm  X = 0
¿Diagrama de transición de estados?

Definición de Autómatas a partir de lenguajes


Hallar el Autómata para cada expresión
3. El lenguaje L3= (ab)* Definición del autómata
X = 0,1
E = a, b
f: X x E  X f(0,a) = 1 f(1, b) =0
xo = 0; Xm  X = 0
¿Diagrama de transición de estados?
4. El lenguaje L4= (ab)* + g Definición del autómata
X = 0, 1, 2, 3
E = a, b, g 
f: X x E  X. f(0,a) = 1, f(1,b) = 3, f(0,g) = 2,
f(3,a) = 1
xo = 0; Xm  X = 2, 3
¿Diagrama de transición de estados?

Definición de Autómatas a partir de lenguajes


Hallar el Autómata para cada expresión
5. El lenguaje L5= aa*bb*

6. El lenguaje L6= (a+b)*

Definición de Autómatas a partir de lenguajes


Hallar el Autómata para cada expresión
7. El lenguaje L7= (ac)*+bb*

8. El lenguaje L8= (acd)* +bb*

Definición de Autómatas a partir de lenguajes


Hallar el Autómata para cada expresión

Construir los AFD que aceptan cada uno de estos


lenguajes sobre {a, b}:

Definición de Autómatas a partir de lenguajes


Hallar la expresión para cada Autómata
Lenguaje Generado y
Marcado

Lenguaje Generado por G es:

𝐿 𝐺 representa todos los caminos directos que pueden ser


seguidos a lo largo del diagrama de transición de estados,
comenzando en el estado inicial. La cadena correspondiente al
camino es la concatenación de los eventos de las transiciones
que componen el camino.
Lenguaje Generado y
Marcado
Lenguaje Marcado por G es:

El lenguaje marcado 𝐿𝑚 𝐺 , es el subconjunto de 𝐿 𝐺 que


contiene solamente las cadenas 𝑠 para las cuales 𝑓 𝑥0 , 𝑠 ∈ 𝑋𝑚 .

Esto es: cadenas que corresponden a caminos que finalizan en


un estado marcado en el diagrama de transición de estados.
Lenguaje Generado y
Marcado
Autómatas Equivalentes

Se dice que dos autómatas son equivalente si ambos


generan el mismo lenguaje marcado.

Dados G1 y G2, son equivalentes si: L(G1) = L(G2) y


Lm(G1) = Lm(G2).

Ejemplo L = a, aa, aba, abaaa, …


Operaciones

Pueden ser de dos clases:


• Unitarias
• De Composición.

Operaciones Unitarias
Parte Accesible. Ac(G) y Ac

Todos los estados que no son accesibles o alcanzables desde xo por alguna
cadena en L(G), pueden borrarse de G sin alterar los lenguajes L(G) y
Lm(G).

Cuando se “borra” un estado, se borran también todas las transiciones


adjuntas a ese estado.
Operaciones

Operaciones Unitarias
Parte Accesible. Ac(G) y Ac
Operaciones

Operaciones Unitarias
Parte CoAccesible. CoAc(G) y CoAc, donde CoAc se interpreta como tomar
la parte “coaccesible”.

Un estado x de G se dice coaccesible a Xm, o simplemente coaccesible, si


existe una cadena en Lm(G) que pase por x. Esto significa que hay un
camino en el diagrama de transición de estados que va desde el estado x
hasta un estado marcado.

La operación CoAc borra todos los estados de G que no son coaccesibles


(aquellos desde donde no es posible llegar a un estado marcado)

Si 𝐺 = 𝐶𝑜𝐴𝑐 𝐺 ; entonces G se dice coaccesible y en este caso 𝐿 𝐺 = 𝐿𝑚 𝐺 .


Operaciones

Operaciones Unitarias
Parte CoAccesible. CoAc(G) y CoAc.

G CoAc(G).
Operaciones

Operaciones Unitarias
𝑇𝑟𝑖𝑚 (Poda): 𝑇𝑟𝑖𝑚(𝐺)

Se dice que un autómata es 𝑡𝑟𝑖𝑚 cuando es simultáneamente accesible y


coaccesible.

G Trim(G).
Operaciones

Operaciones Unitarias
Complemento: Comp(G) .
Sí se tiene un autómata que es Trim, se puede construir un autómata
Comp(G) con un lenguaje marcado igual a E*, a través de dos pasos:

1. Completar la función de transición de G. Para esto se crea un nuevo estado


en X denominado muerto o vertedero xd. Todas las transiciones f(x,e) no
definidas son asignadas al estado xd.

2. Cambiar el estatus de marcado de todos los estados en Gcomp, haciendo


marcados los estados no marcados de G y no marcados los estados
marcados de G.
Operaciones

Operaciones Unitarias
Complemento: Comp(G) .

Hallar Comp(G).

G
Operaciones

Operaciones De Composición
Operaciones

Operaciones De Composición
Producto: G1xG2 .
Representa la interconexión “inflexible” de G1 y G2, donde un evento ocurre
si y solo si él ocurre en ambos autómatas. En el producto, las transiciones de
los dos autómatas siempre deben estar sincronizadas sobre un evento
común.
Sean los autómatas

Donde,
Operaciones

Operaciones De Composición
Producto: G1xG2 .

Los estados G1 x G2 son denotados por pares, donde la primera componente


corresponde al estado actual en G1 y la segunda al estado actual en G2.
Operaciones

Operaciones De Composición
Producto: G1xG2 .

Hallar G1 x G2.
Operaciones

Operaciones De Composición
Producto: G1xG2 .

Hallar G1 x G2.
Operaciones

Operaciones De Composición
Producto: G1xG2 .

Hallar G1 x G2.
Operaciones

Operaciones De Composición
Producto: G1xG2 .

Hallar G1 x G2.
Operaciones

Operaciones De Composición
Producto: G1xG2 .

Hallar G1 x G2.
Operaciones

Operaciones De Composición
Paralela: G1  G2 .
Sean los autómatas
Operaciones

Operaciones De Composición

Paralela: G1  G2 .
Un evento común solo se puede ejecutar si los dos autómatas lo ejecutan
simultáneamente. Así, los dos autómatas están sincronizados sobre los
eventos comunes. Los eventos “privados” no están sujetos a esta restricción
y se pueden ejecutar siempre que sea posible.

En este tipo de interconexión, un evento común solo puede suceder si


ambos componentes pueden ejecutarlo. Un componente puede ejecutar sus
eventos privados solo si ese evento privado NO está en el otro autómata.
Operaciones

Operaciones De Composición
Paralela: G1  G2 .
La composición paralela cumple las propiedades de conmutatividad y
asociatividad.
Operaciones

Operaciones De Composición
Paralela: G1  G2 .

Hallar G1  G2.
Operaciones

Operaciones De Composición
Paralela: G1  G2 .

Hallar P1  P2  F1  F2.

You might also like