You are on page 1of 22

1.

3 Modelo a eventos discretos

Un ejemplo de L & K

Considere un sistema tipo M/M/1.


Asuma que los tiempos de llegada y servicio
para los primeros clientes son conocidos:
Entidad

Tpo. entre llegadas

0.4

1.2

0.5

1.7

0.2

1.6

0.2

1.4

1.9

Tpo. de llegada

0.4

1.6

2.1

3.8

5.6

5.8

7.2

9.1

Tpo. de servicio

0.7

0.2

1.1

3.7

0.6

Tiempo = 0
Llegada
programada

A1-0.4

0
# en la
cola

Status del
servidor

RELOJ

LISTA de EVENTOS

Cola
Suma de

Tpo. de
ltimo
evento

esperas

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

rea
bajo Q(t)

rea
bajo B(t)

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0

Largo de Cola (Q(t))

10

12

10

Status del Servidor (B(t))

12

Time = .4
1-0.4

Scheduled
Arrivals

A-2 1.6
0

Num in
Queue

Server
Status

0.4

D-1- 2.4

CLOCK

EVENTS

Total
Delay

Area
Under
Q(t)

Area
Under
B(t)

Queue

Time of
Last Event

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0

Queue Size

10

12

Server Status

10

12

Time = 1.6
1-0.4

Scheduled
Arrivals

A-3 2.1
1

3
Num in
Queue

2-1.6

Server
Status

0.4

1.6

D-1 2.4

CLOCK

EVENTS

1.2

Total
Delay

Area
Under
Q(t)

Area
Under
B(t)

Queue

Time of
Last Event

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0

Queue Size

10

12

Server Status

10

12

Time = 2.1
1-0.4

Scheduled
Arrivals

D-1 2.4

Num in
Queue

Server
Status

2-1.6

2.1

A-4- 3.8

3-2.1

EVENTS
CLOCK

1.6

.5

1.7

Total
Delay

Area
Under
Q(t)

Area
Under
B(t)

Queue

Time of
Last Event

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0

Queue Size

10

12

Server Status

10

12

Time = 2.4
2-1.6

Scheduled
Arrivals

D-2 3.1

Num in
Queue

3-2.1

2.4

Server
Status

A-4 3.8
EVENTS

CLOCK

2.1

0.8

1.1

2.0

Total
Delay

Area
Under
Q(t)

Area
Under
B(t)

Queue

Time of
Last Event

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0

Queue Size

10

12

Server Status

10

12

Time = 3.1
Scheduled
Arrivals

3-2.1
D-3 3.3

Num in
Queue

Server
Status

2.4

3.1

A-43.8

CLOCK

EVENTS

1.8

1.8

2.7

Total
Delay

Area
Under
Q(t)

Area
Under
B(t)

Queue

Time of
Last Event

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0

Queue Size

10

12

Server Status

10

12

Time = 3.3
Scheduled
Arrivals

A-4 3.8

Num in
Queue

Server
Status

3.3
EVENTS

CLOCK

3.1

1.8

1.8

2.9

Total
Delay

Area
Under
Q(t)

Area
Under
B(t)

Queue

Time of
Last Event

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

Queue Size

10

12

Server Status

10

12

Time = 3.8
4-3.8

Scheduled
Arrivals

A-5 4.0

Num in
Queue

Server
Status

3.3

3.8

D-4 4.9

CLOCK

EVENTS

1.8

1.8

2.9

Total
Delay

Area
Under
Q(t)

Area
Under
B(t)

Queue

Time of
Last Event

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0

Queue Size

10

12

Server Status

10

12

Medidas de Desempeo
Considere que en el ejemplo anterior se est interesado en las
siguientes medidas de desempeo, despus que n clientes han
finalizado su servicio:
1.
2.
3.

Demora promedio en la cola Wq(n).


Longutid medio de la cola Lq(n).
Tasa media de utilizacin del servidor - .

Nota: Si bien estas medidas son estocsticas, en cada corrida de


una simulacin se calcula un valor exacto (ya que es posible saber
exactamente lo que pas). Sin embargo, una corrida de
simulacin es un experimento
aleatorio, as, la simulacin provee

slo de un estimador (ej. Wq ) del verdadero valor de la variable


aleatoria.

10

Medidas de Desempeo:
Estimadores Puntuales
Demora promedio en la cola:

Tiempo total esperado 1.8


Wq

0.45
# Clientes
4
Longitud media de la cola:

Tiempo total esperado 1.8


Lq

0.47
Tiempo simulacin
3.8
Tasa media de utilizacin del servidor

11

Tiempo servidor ocupado 2.9

0.71
Tiempo simulacin
3.8

Diagrama de Flujo de un Programa de Simulacin a


Eventos Discretos
INICIO
Inicializar:
Reloj =0
ESTADO DEL SISTEMA
LISTA_DE_EVENTOS

Encontrar PROXIMO_EVENTO
Avanzar reloj a TIEMPO_ PROXIMO_EVENTO

EVENTO TIPO 1: Actualizar ESTADO DEL SISTEMA


Actualizar ACUMULADORES
Generar EVENTOS FUTUROS y
agregarlos a LISTA_DE_EVENTOS

Calcular estadsticos
Generar Reportes
FIN

...
FIN ?

EVENTO TIPO N: Actualizar ESTADO DEL SISTEMA


Actualizar ACUMULADORES
Generar EVENTOS FUTUROS y
agregarlos a LISTA_DE_EVENTOS

no

Modelo a eventos discretos


En una simulacin a eventos discretos se
requiere definir:
Variables de estado
Eventos
Acumuladores
Medidas de desempeo (informes)

13

Modelo a eventos discretos


La ruta asociada a un evento tiene las siguientes
instrucciones:
- Actualizar reloj al tiempo de ocurrencia del evento.
- Actualizar variables de estado.
- Actualizar acumuladores.
- Generar momento de un evento futuro.
- Programar el evento futuro (agregar tipo de evento y
momento en la Lista de Eventos).
Las dos primeras son obligatorias, las dems
dependen del tipo de evento.

14

Ejemplo de programa de simulacin a


eventos discretos (seudo lenguaje)
Considere una lnea de produccin con dos procesos en lnea. Las piezas a
ser transformadas llegan de manera unitaria. El tiempo entre llegadas sigue
una distribucin aproximadamente uniforme entre 3 y 6 minutos. El primer
proceso tarda exactamente 4 minutos, pero en el segundo el 70% de las
piezas demoran 2 minutos y el 30% restante demoran 6 minutos en ser
procesadas.

El objetivo del estudio es determinar:


Cunto tiempo pasan en promedio las piezas en la lnea.
Cul es la cantidad promedio de piezas esperando por el primer proceso.
Cul es la cantidad promedio de piezas esperando por el segundo proceso.

Ejemplo de programa de simulacin a


eventos discretos (seudo lenguaje)
Supuestos
Antes de construir el modelo se deben hacer ciertos supuestos y
simplificaciones de la naturaleza del sistema. La validez de los resultados
obtenidos estar supeditada a la validez de dichos supuestos.
La lnea funciona sin interrupciones.
Existe espacio de almacenamiento intermedio suficiente antes de cada
procesador.

Las piezas no requieren reprocesamiento.


Las tasas de llegada y de servicio son constantes e independientes.
Las piezas se transportan de manera instantnea.

Ejemplo de programa de simulacin a


eventos discretos (seudo lenguaje)
Variables de Estado
Qi(Li,Vi) : cola uno. Contiene un vector (Vi) con el momento de llegada de
cada pieza que espera por el proceso i (i=1,2), y la cantidad de ellas (Li).
Si: estatus del servidor i (i=1,2). Toma el valor 1 si el servidor i est
ocupado y 0 en caso contrario.
Eventos
A: llegada de una pieza a la lnea.
Ti: trmino del proceso en la pieza que se encontraba en el servidor i
(i=1,2).
Acumuladores
Ni: nmero total de piezas que han empezado su proceso i (i=1,2).
WTi: tiempo total que han esperado las piezas en la cola i (i=1,2).

Evento Tipo A (seudo lenguaje)


Procedimiento Llegada_de _pieza (tiempo_programado)
Reloj tiempo_programado;
Si S1 = 1
Actualizar Q1: (L1=L1+1; Incorporar el valor de Reloj al final de V1)
Sino

S1 1
Programar _evento (T1, Reloj + 4)
N1 N1 + 1
Programar_evento (A, Reloj + 3*Random + 3)
Fin Evento

Evento Tipo T1 (seudo lenguaje)


Procedimiento Trmino_Servicio _Maq_1 (tiempo_programado)
Reloj tiempo_programado;
Si L1 = 0
S1 0
Sino

Espera Reloj Primer_Valor_en_V1


Actualizar Q1: (L1=L1-1; borrar primera entrada de V1)
N1 N1 + 1
WT1 WT1 + Espera
Programar_evento (T1, Reloj + 4)

Evento Tipo T1 (continuacin)


Si S2 = 1
Actualizar Q2: (L2 =L2 +1; Incorporar el valor de Reloj al final de V2)
Sino
S2 1
Generar_duracin_de_servicio_2 (serv2)
Programar _evento (T2, Reloj + serv2)
N2 N2 + 1
Fin Evento
Funcin Generar_duracin_de_servicio_2 (serv2)

Si (Random < 0.7)


serv2 2
Sino
serv2 6

Medidas de Desempeo:
Estimadores Puntuales
Tiempo medio de las piezas en el sistema:

Ws = Wq1 + E(serv1) + Wq2 + E(serv2),


donde

Wqi

WT i
Ni

Longitud media de la cola i:

WT i
Lqi
Tiempo simulacin

21