Beruflich Dokumente
Kultur Dokumente
Fundamentales de la
Simulación
Lo que haremos...
• Destacar ideas, métodos, y asuntos en
simulación
• Independencia de Software
• Ejemplo de un Sistema de procesamiento simple
Descomponer el problema
Terminología
Simulación manual
Algunos temas básicos de estadística
• Simulación de Planilla
Modelos estáticos y dinámicos simples
• Análisis de un proyecto de simulación
Slide 2 de 57
El Sistema:
Un Sistema de Procesos Simple
Máquina
(Servidor)
llegada Salida
7 6 5 4
Partes iniciales Partes Finalizadas
Cola (FIFO) Partes en Servicio
• Intención general:
Estimar producción esperada
Tiempo de espera en cola, largo de cola, proporción de tiempo de
máquina ocupado
• Unidades de Tiempo
Se pueden utilizar diferentes unidades en diferentes lugares… se
deben declarar
Cuidado con chequear unidades cuando se define el input Declare
unidades base de tiempo para output y cálculos internos
Sea razonable (interpretación, error de redondeo)
Slide 3 de 57
Especificaciones del Modelo
• Inicialmente (tiempo 0) vacío y desocupado
• Unidades base de tiempo: minutos
• Input data (asumir dadas por ahora…), en
minutos:
Numbero de Partes Tiempo llegada Tiempo entre arribos Tiempo de servicio
1 0.00 1.73 2.90
2 1.73 1.35 1.76
3 3.08 0.71 3.39
4 3.79 0.62 4.52
5 4.41 14.28 4.46
6 18.69 0.70 4.36
7 19.39 15.52 2.07
8 34.91 3.15 3.36
9 38.06 1.76 2.37
10 39.82 1.00 5.38
11 40.82 . .
. . . .
. . . .
• Para cuando han transcurrido 20 minutos de
tiempo (simulado)
Slide 4 de 57
Objetivo del Proyecto:
Medidas de Rendimiento de Salida (OUTPUT)
• Producción total de partes de una corrida (P)
• Tiempo de espera promedio de partes en cola:
N = no. de partes completando una fila de
N
espera
WQ i
i 1
WQi = Tiempo de espera en la cola (waiting
time in queue) para parte i
N
Conocer: WQ1 = 0 (Por qué?)
N > 1 (Por qué?)
Slide 5 de 57
Objetivo del Proyecto:
Medidas de Rendimiento de Salida (OUTPUT)
• Tiempo promedio número de partes en cola:
20
0 Q ( t ) dt Q(t) = numero de partes en cola
20 al tiempo t
• Máximo numero de partes en cola: max Q ( t )
0 t 20
• Promedio y máximo tiempo total en el sistema de
partes (a.k.a. tiempo de ciclo (cycle time)):
P
TS i
i 1
, max TS
TSi = tiempo en sistema de
i
P i 1 ,..., P partes i
Slide 6 de 57
Objetivo del Proyecto:
Medidas de Rendimiento de Salida (OUTPUT)
• Utilización de máquina(proporcion de tiempo en
uso (time busy))
20
B (t ) d t
1 if m a c h in e is b u s y a t tim e t
B (t )
0
,
20 0 if m a c h in e is id le a t tim e t
Slide 7 de 57
Opciones de Análisis
• Adivinar en forma informada
Tiempo promedio entre llegadas (Average interarrival time) = 4.08
minutes
Tiempo promedio de servicio (Average service time) = 3.46 minutes
Por lo tanto (en promedio) las partes están siendo procesadas más
rápido de lo que llegan
– El Sistema tiene la oportunidad de operar en forma estable, en
largas corridas; por ejemplo puede “que no explote”
– Si todos los tiempos entre llegadas y de servicio estuvieran
realmente a su promedio, nunca habría una cola.
– Sin embargo la data exhibe claramente variabilidad, por lo que se
puede formar una cola
Si tuviésemos el average interarrival < average service time, y esto
persistiese, entonces la cola explotaría
La verdad — entre estos extremos
El adivinar tiene sus límites has its limits …
Slide 8 de 57
Opciones de Análisis
• Teoría de colas
Requiere supuestos adicionales sobre el modelo
Popular, modelo simple: M/M/1 queue
– Interarrival times ~ exponencial
– Service times ~ exponencial, indep. de interarrivals
– Debe tener E(service) < E(interarrival)
– Steady-state (long-run, para siempre)
– Resultados analíticos exactos; ej., Tiempo de espera promedio en
cola (average waiting time in queue) es
S
2
A E(interarr ival time)
,
A S S E(service time)
Slide 9 de 57
Simulación Mecanizada
• Operaciones individuales (arrivals, service times) ocurrirán
exactamente como en la realidad
• Movimientos, cambios ocurren en momentos “precisos”, y en
el orden correcto
• Diferentes piezas interactúan
• Instalar “observadores” para obtener las medidas de
rendimiento de salida (output performance measures)
• Concretar, aproximación de análisis de “fuerza-bruta
• Nada misterioso o sutil
Pero con mucho detalle, archivo
El software de simulación lleva el registro por Ud.
Slide 10 de 57
Componentes de un Modelo de
Simulación
• Entidades (entities)
“Jugadores” que se mueven alrededor, cambian status, afectan o son
afectados por otras entidades
Objetos dinámicos (Dynamic objects) — Se crean, mueven alrededor, y
salen (quizás)
Usualmente representan cosas “reales”
– Nuestro modelo: entidades son partes
Pueden crearse entidades falsas para modelar “trucos”
– Breakdown demon, break angel
Generalmente se tienen múltiples realizaciones flotando alrededor
Se puede tener diferentes tipos de entidades en forma concurrente
Generalmente el identificar los tipos de entidades es lo primero que se
hace en la construcción de un modelo
Slide 11 de 57
Componentes de un Modelo de
Simulación
• Atributos (Attributes)
Características de todas las entidades: describen,
diferencian
Todas las entidades tienen los mismos atributos “espacios”
pero valores diferentes para entidades diferentes, por
ejemplo:
– Timpo de llegada (Time of arrival)
– Fecha de expiración (Due date)
– Prioridad (Priority)
– Color
El valor atributo está unido a una entidad en específico
Como las variables “local” (para entidades)
Algunas son automáticas, otras se asignan
Slide 12 de 57
Componentes de un Modelo de
Simulación
• Variables (Globales)
Reflejan una característica del modelo complete, no de
entidades en especifico
Usado para muchas cosas
– Tiempo de viaje entre todas las estaciones pares
– Numero de partes del sistema
– Reloj de simulación
Nombre, valor que tiene una sola versión para todo el
modelo
No unido a entidades
Entidades pueden acceder, cambiar variables
Escritura en muralla (reescribible)
Slide 13 de 57
Componentes de un Modelo de
Simulación
• Recursos (Resources)
Por lo que las entidades compiten
– Gente (People)
– Equipo (Equipment)
– Espacio (Space)
Las entidades toman un recurso (seize), lo usan y le
sueltan (releases)
Se debe pensar que los recursos son asignados a una
entidad, más que una entidad “pertenece” a un recurso
“Un” recurso puede tener varias unidades de capacidad
– Asientos en una mesa de restaurant
– Personal de atenci{on de tickets en un counter de aerolínea
Número de unidades de un recurso pueden ser
modificados durante la simulación
Slide 14 of 57
Componentes de un Modelo de
Simulación
• Colas (Queues)
Lugar en donde las entidades deben esperar cuando no se
pueden mover o continuar (quizás porque en recurso que
quieren utilizar no está disponible)
Asigne nombre, a menudo amarrados al correspondiente
recurso
Puede tener una cantidad finita para modelar el espacio
limitado – Se debe modelar que hacer en caso de que una
entidad se presente en una cola que se encuentra llena
Generalmente se debe observar el largo de una cola, y el
tiempo de espera en ella
Slide 15 de 57
Componentes de un Modelo de
Simulación
• Estadística de acumulación
Variables que “ven” lo que está sucediendo
Depende de las medidas deseadas de la performance de
salida
“Pasivo” en el modelo — No se anticipe, sólo observe
Muchas son automáticas, pero algunas deben establecerse
y mantenerse durante la simulación
Al final de la simulación, se utilizó para computar el
rendimiento final
Slide 16 de 57
Componentes de un Modelo de
Simulación
• Acumuladores estadísticos para sistemas de
procesamiento simple
Numero de partes producidas hasta el momento
Total of tiempos de espera en la cola hasta el momento
Número de partes que han pasado por la cola
Tiempo Max en la cola, que se ha visto hasta el momento
Total de tiempo transcurrido en el sistema
Tiempo Max en el sistema, que hemos visto hasta el
momento
Área bajo la curva de la cola Q(t), hasta el momento
Max de Q(t) hasta el momento
Área bajo la curva de servidor ocupado (server-busy),
hasta el momento curve B(t)
Slide 17 de 57
Dinámica de la Simulación:
Event-Scheduling “World View”
• Identificar eventos característicos
• Decidir la lógica para cada tipo de evento para:
Efectuar cambios de estado (state changes) para cada tipo de evento
Observar la estadística
Actualizar tiempos de eventos futuros(quizás de este tipo, o de otros
tipos)
• Mantener un reloj (clock), y un calendario de eventos
futuros
• Saltar de un evento al siguiente, procesar, observar
estadística, actualizar calendario de eventos
• Debe especificar una regla de detención apropiada
• Generalmente hecha con un lenguaje de programación de
propósito general(C++, Java, Matlab, FORTRAN, etc.)
Slide 18 de 57
Eventos para el Sistema de
Procesamiento Simple
• Llegada (Arrival) de una nueva pieza al sistema
Actualizar los acumuladores estadísticos persistentes en el tiempo
(desde el último evento hasta ahora)
– Área bajo Q(t)
– Max de Q(t)
– Área bajo B(t)
“Marcar” partes que llegan con el tiempo presente (uso después)
Si la máquina está desocupada:
– Comenzar procesamiento (programa de partida - schedule
departure), Mantener la máquina ocupada, Mantener la cuenta del
tiempo de espera en la cola(0)
Si no (la maquina está ocupada):
– Ponga la parte al final de la cola, aumente el largo variable de la
cola
Programe el próximo evento de llegada
Slide 19 de 57
Eventos para el Sistema de
Procesamiento Simple
• Partida o salida (Departure) (cuando un servicio es completado)
Incrementar el numero producido del acumulador estadístico
Computar & llevar el tiempo en el sistema (ahora – tiempo de llegada
(arrival))
Actualizar estadística persistente en el tiempo (como en un evento de
llegada)
Si la cola no está vacía:
– Tome la primera pieza fuera de la cola, compute y cuente el tiempo
de espera en la cola, y el comienzo de servicio (programar
departure time)
Si no (la cola está vacía):
– Mantenga la máquina desocupada (Notar: no habrá evento de
salida programado para futuros eventos de, calendario, Lo que si se
desea
Slide 20 de 57
Eventos para el Sistema de
Procesamiento Simple
• Finalización
Actualizar las estadísticas persistentes en el tiempo (para
finalizar la simulación)
Computar las medidas de rendimiento de salida finales
utilizando los valores actuales del acumulador de
estadísticas
Después de cada evento, el registro superior del calendario
de eventos es removido para ver cual es el tiempo, y que
hacer
• También se debe reinicializar todo
Slide 21 de 57
Algunos puntos adicionales para el
Sistema de Procesamiento Simple
• Reloj de Simulación variable (interno en Arena)
• Calendario de eventos : lista de eventos registrados:
[Entity No., Event Time, Event Type]
Mantener rankeado en orden creciente en Event Time
Próximo evento siempre al comienzo del registro (record)
Inicialmente, programe la primera llegada (Arrival), la
última (The End) (Dep.?)
• Variable de estado (State variables): describe el estatus
actual
Estatus del Servidor B(t) = 1 ocupado (busy), 0 libre (idle)
Numero de clientes en cola Q(t)
Hora de llegada de cada cliente en la cola (una ista de
largo aleatorio)
Slide 22 de 57
Simulation Manual
• Manualmente traquee las variables de estado, y
los acumuladores estadísticos
• Use el interarrival (entre llegadas) “dado (given)”,
y los tiempos de servicio
• Mantenga el registro del calendario de eventos
• “Avance” el reloj de un evento al siguiente
• Se omitirán el tiempo en el sistema, “maximiza”
computación aqui
Slide 23 de 57
Simulación Manual:
Setup
S y s te m C lo c k B (t) Q (t) A r r iv a l t im e s o f E v e n t c a le n d a r
c u s t s . in q u e u e
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le t e d w a it in g w a it in g t im e s in q u e u e Q (t) B (t)
t im e s in q u e u e
4
3
Q (t) g ra p h
2
1
0
0 5 10 15 20
2
B (t) g ra p h 1
0
0 5 10 15 20
T im e ( M in u t e s )
I n t e r a r r iv a l t im e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e t im e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 24 de 57
Simulación Manual :
t = 0.00, Inicializar
S y s te m C lo c k B (t) Q (t) A r r iv a l t im e s o f E v e n t c a le n d a r
c u s t s . in q u e u e [1 , 0 .0 0 , A rr]
0 .0 0 0 0 < e m p ty > [– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le t e d w a it in g w a it in g t im e s in q u e u e Q (t) B (t)
t im e s in q u e u e
0 0 .0 0 0 .0 0 0 .0 0
4
3
Q (t) g ra p h
2
1
0
0 5 10 15 20
2
B (t) g ra p h 1
0
0 5 10 15 20
T im e ( M in u t e s )
I n t e r a r r iv a l t im e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e t im e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 25 de 57
Simulación Manual :
t = 10.00,Arrival (llegada) of Part 1(Pieza 1 )
S y s te m C lo c k B (t) Q (t) A r r iv a l t im e s o f E v e n t c a le n d a r
c u s t s . in q u e u e [2 , 1 .7 3 , A rr]
1 0 .0 0 1 0 < e m p ty > [1 , 2 .9 0 , Dep]
[– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le t e d w a it in g w a it in g t im e s in q u e u e Q (t) B (t)
t im e s in q u e u e
1 0 .0 0 0 .0 0 0 .0 0
4
3
Q (t) g ra p h
2
1
0
0 5 10 15 20
2
B (t) g ra p h 1
0
0 5 10 15 20
T im e ( M in u t e s )
I n t e r a r r iv a l t im e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e t im e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 26 de 57
Simulación Manual :
t = 1.73, Arrival (llegada) of Part 2(Pieza 2)
S y s te m C lo c k B (t) Q (t) A r r iv a l t im e s o f E v e n t c a le n d a r
c u s t s . in q u e u e [1 , 2 .9 0 , Dep]
2 1 1 .7 3 1 1 (1 .7 3 ) [3 , 3 .0 8 , A rr]
[– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le t e d w a it in g w a it in g t im e s in q u e u e Q (t) B (t)
t im e s in q u e u e
1 0 .0 0 0 .0 0 1 .7 3
4
3
Q (t) g ra p h
2
1
0
0 5 10 15 20
2
B (t) g ra p h 1
0
0 5 10 15 20
T im e ( M in u t e s )
I n t e r a r r iv a l t im e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e t im e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 27 de 57
Simulación Manual :
t = 2.90, Departure (salida) of Part 1
S y s te m C lo c k B (t) Q (t) A r r iv a l t im e s o f E v e n t c a le n d a r
c u s t s . in q u e u e [3 , 3 .0 8 , A rr]
2 2 .9 0 1 0 < e m p ty > [2 , 4 .6 6 , Dep]
[– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le t e d w a it in g w a it in g t im e s in q u e u e Q (t) B (t)
t im e s in q u e u e
2 1 .1 7 1 .1 7 2 .9 0
Q (t) g ra p h
2
B (t) g ra p h 1
0
0 5 10 15 20
T im e ( M in u t e s )
I n t e r a r r iv a l t im e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e t im e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 28 de 57
Simulación Manual :
t = 3.08, Arrival of Part 3
S y s te m C lo c k B (t) Q (t) A r r iv a l t im e s o f E v e n t c a le n d a r
c u s t s . in q u e u e [4 , 3 .7 9 , A rr]
3 2 3 .0 8 1 1 (3 .0 8 ) [2 , 4 .6 6 , Dep]
[– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le t e d w a it in g w a it in g t im e s in q u e u e Q (t) B (t)
t im e s in q u e u e
2 1 .1 7 1 .1 7 3 .0 8
4
3
Q (t) g ra p h
2
1
0
0 5 10 15 20
2
B (t) g ra p h 1
0
0 5 10 15 20
T im e ( M in u t e s )
I n t e r a r r iv a l t im e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e t im e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 29 de 57
Simulación Manual :
t = 3.79, Arrival of Part 4
S y s te m C lo c k B (t) Q (t) A r r iv a l t im e s o f E v e n t c a le n d a r
c u s t s . in q u e u e [5 , 4 .4 1 , A rr]
4 3 2 3 .7 9 1 2 (3 .7 9 , 3 .0 8 ) [2 , 4 .6 6 , Dep]
[– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le t e d w a it in g w a it in g t im e s in q u e u e Q (t) B (t)
t im e s in q u e u e
2 1 .1 7 1 .8 8 3 .7 9
4
3
Q (t) g ra p h
2
1
0
0 5 10 15 20
2
B (t) g ra p h 1
0
0 5 10 15 20
T im e ( M in u t e s )
I n t e r a r r iv a l t im e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e t im e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 30 de 57
Simulación Manual :
t = 4.41, Arrival of Part 5
S y s te m C lo c k B ( t) Q ( t) A r r iv a l tim e s o f E v e n t c a le n d a r
c u s ts . in q u e u e [2 , 4 .6 6 , D ep]
5 4 3 2 4 .4 1 1 3 ( 4 .4 1 , 3 .7 9 , 3 .0 8 ) [6 , 1 8 .6 9 , A rr]
[– , 2 0 .0 0 , End]
N um ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le te d w a itin g w a itin g tim e s in q u e u e Q ( t) B ( t)
tim e s in q u e u e
2 1 .1 7 3 .1 2 4 .4 1
4
3
Q ( t) g r a p h
2
1
0
0 5 10 15 20
2
B ( t) g r a p h 1
0
0 5 10 15 20
T im e ( M in u te s )
In te r a r r iv a l tim e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e tim e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 31 de 57
Simulación Manual :
t = 4.66, Departure of Part 2
S y s te m C lo c k B ( t) Q ( t) A r r iv a l tim e s o f E v e n t c a le n d a r
c u s ts . in q u e u e [3 , 8 .0 5 , Dep]
5 4 3 4 .6 6 1 2 ( 4 .4 1 , 3 .7 9 ) [6 , 1 8 .6 9 , A rr]
[– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le te d w a itin g w a itin g tim e s in q u e u e Q ( t) B ( t)
tim e s in q u e u e
3 2 .7 5 3 .8 7 4 .6 6
4
3
Q ( t) g r a p h
2
1
0
0 5 10 15 20
2
B ( t) g r a p h 1
0
0 5 10 15 20
T im e ( M in u te s )
In te r a r r iv a l tim e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e tim e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 32 de 57
Simulación Manual :
t = 8.05, Departure of Part 3
S y s te m C lo c k B ( t) Q ( t) A r r iv a l tim e s o f E v e n t c a le n d a r
c u s ts . in q u e u e [4 , 1 2 .5 7 , Dep]
5 4 8 .0 5 1 1 ( 4 .4 1 ) [6 , 1 8 .6 9 , A rr]
[– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le te d w a itin g w a itin g tim e s in q u e u e Q ( t) B ( t)
tim e s in q u e u e
4 7 .0 1 1 0 .6 5 8 .0 5
4
3
Q ( t) g r a p h
2
1
0
0 5 10 15 20
2
B ( t) g r a p h 1
0
0 5 10 15 20
T im e ( M in u te s )
In te r a r r iv a l tim e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e tim e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 33 ode 57
Simulación Manual :
t = 12.57, Departure of Part 4
S y s te m C lo c k B ( t) Q ( t) A r r iv a l tim e s o f E v e n t c a le n d a r
c u s ts . in q u e u e [5 , 1 7 .0 3 , Dep]
5 1 2 .5 7 1 0 () [6 , 1 8 .6 9 , A rr]
[– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le te d w a itin g w a itin g tim e s in q u e u e Q ( t) B ( t)
tim e s in q u e u e
5 1 5 .1 7 1 5 .1 7 1 2 .5 7
4
3
Q ( t) g r a p h
2
1
0
0 5 10 15 20
2
B ( t) g r a p h 1
0
0 5 10 15 20
T im e ( M in u te s )
In te r a r r iv a l tim e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e tim e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 34 de 57
Simulación Manual :
t = 17.03, Departure of Part 5
S y s te m C lo c k B ( t) Q ( t) A r r iv a l tim e s o f E v e n t c a le n d a r
c u s ts . in q u e u e [6 , 1 8 .6 9 , A rr]
1 7 .0 3 0 0 () [– , 2 0 .0 0 , End]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le te d w a itin g w a itin g tim e s in q u e u e Q ( t) B ( t)
tim e s in q u e u e
5 1 5 .1 7 1 5 .1 7 1 7 .0 3
4
3
Q ( t) g r a p h
2
1
0
0 5 10 15 20
2
B ( t) g r a p h 1
0
0 5 10 15 20
T im e ( M in u te s )
In te r a r r iv a l tim e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e tim e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 35 de 57
Simulación Manual :
t = 18.69, Arrival of Part 6
S y s te m C lo c k B ( t) Q ( t) A r r iv a l tim e s o f E v e n t c a le n d a r
c u s ts . in q u e u e [7 , 1 9 .3 9 , A rr]
6 1 8 .6 9 1 0 () [– , 2 0 .0 0 , End]
[6 , 2 3 .0 5 , Dep]
Num ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le te d w a itin g w a itin g tim e s in q u e u e Q ( t) B ( t)
tim e s in q u e u e
6 1 5 .1 7 1 5 .1 7 1 7 .0 3
4
3
Q ( t) g r a p h
2
1
0
0 5 10 15 20
2
B ( t) g r a p h 1
0
0 5 10 15 20
T im e ( M in u te s )
In te r a r r iv a l tim e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e tim e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 36 de 57
Simulación Manual :
t = 19.39, Arrival of Part 7
S y s te m C lo c k B ( t) Q ( t) A r r iv a l tim e s o f E v e n t c a le n d a r
c u s ts . in q u e u e [– , 2 0 .0 0 , End]
7 6 1 9 .3 9 1 1 ( 1 9 .3 9 ) [6 , 2 3 .0 5 , D ep]
[8 , 3 4 .9 1 , A rr]
N um ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le te d w a itin g w a itin g tim e s in q u e u e Q ( t) B ( t)
tim e s in q u e u e
6 1 5 .1 7 1 5 .1 7 1 7 .7 3
4
3
Q ( t) g r a p h
2
1
0
0 5 10 15 20
2
B ( t) g r a p h 1
0
0 5 10 15 20
T im e ( M in u te s )
In te r a r r iv a l tim e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e tim e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 37 de 57
Simulación Manual :
t = 20.00, The End (Término de la Simulación)
S y s te m C lo c k B ( t) Q ( t) A r r iv a l tim e s o f E v e n t c a le n d a r
c u s ts . in q u e u e [6 , 2 3 .0 5 , D ep]
7 6 2 0 .0 0 1 1 ( 1 9 .3 9 ) [8 , 3 4 .9 1 , A rr]
N um ber of T o ta l o f A re a u n d e r A re a u n d e r
c o m p le te d w a itin g w a itin g tim e s in q u e u e Q ( t) B ( t)
tim e s in q u e u e
6 1 5 .1 7 1 5 .7 8 1 8 .3 4
4
3
Q ( t) g r a p h
2
1
0
0 5 10 15 20
2
B ( t) g r a p h 1
0
0 5 10 15 20
T im e ( M in u te s )
In te r a r r iv a l tim e s 1 .7 3 , 1 .3 5 , 0 .7 1 , 0 .6 2 , 1 4 .2 8 , 0 .7 0 , 1 5 .5 2 , 3 .1 5 , 1 .7 6 , 1 .0 0 , ...
S e r v ic e tim e s 2 .9 0 , 1 .7 6 , 3 .3 9 , 4 .5 2 , 4 .4 6 , 4 .3 6 , 2 .0 7 , 3 .3 6 , 2 .3 7 , 5 .3 8 , ...
Slide 38 de 57
Simulación Manual :
Terminando
• Average waiting time in queue:
Total of times in queue 15 . 17
2 . 53 minutes per part
No. of times in queue 6
Slide 39 de 57
Complete Record of the
Hand Simulation
Slide 40 de 57
Event-Scheduling Logic via
Programación
• Claramente se adecuan a lenguajes de programación
estándar (C, C++, Java, etc.)
• A menudo se utiliza librerías “utility” para:
Listas de procesamiento
Generación de números aleatorios (Random-number
generation)
Generación de variables aleatorias (Random-variate
generation)
Recolección estadística
Listas de eventos y administración del reloj
Resumen y output
• Programa principal lo une, ejecuta eventos en orden
Slide 41 de 57
Dinámica de la Simulación :
Process-Interaction World View
• Identificar entidades características en el sistema
• Copias múltiples de entidades co-existen, interactúan,
compiten
• “Codificar” no es procedimental
• Cuente una historia de lo que le pasa a una entidad
“típica”
• Puede tener muchos tipos de entidades, entidades falsas
(fake) para cosas como falla de maquinas
• Generalmente requiere software de simulación
especializado
Por debajo, todavía ejecutado como event-scheduling
• La vista es manejada por el software (Arena, Simio)
Arena traduce la descripción de su modelo en un programa
en lenguaje de simulación SIMAN para su ejecución
Slide 42 de 57
Aleatoriedad en la Simulación
• Anteriormente sólo fue una “replica” — una
muestra de tamaño uno (no vale mucho)
• Ahora 5 réplicas (IID):
Variabilidad
substancial a lo largo
de las replicas
Slide 44 de 57
Resultados: Original vs. Double-Time
Arrivals
• Original – círculos
• Double-time – triángulos
• Replication 1 – Relleno
• Replications 2-5 – Vacío
• Notar variabilidad
• Peligro en tomar decisiones
basado en una (primera) réplica
• Difícil ver diferencias reales
• Se necesita: Análisis
Estadístico de Output data de
Simulación (Statistical analysis
of simulation output data)
Slide 45 de 57
Simulación con Planillas:
Introducción
• Herramienta popular, ubicua
• Puede usarse para modelos simples de
simulación
Típico, solo modelos estadísticos
– Análisis de riesgo, escenarios financieros/inversión
Sólo modelos dinámicos (muy) simples
• Dos ejemplos
Newsvendor problem (estático)
Tiempos de espera en single-server queue (cola)
(dinámico)
– Repercusión especial válida sólo para este caso
Slide 46 de 57
Simulación con Planillas :
Newsvendor Problem – Setup
• Rupert vende periódicos en la calle
Rupert compra por c = $0.55 c/u, vende por r = $1.00 c/u
• Cada mañana, Rupert compra q copias
q es un número fijo, el mismo cada día
• Demanda durante un dia: D = max (X, 0)
X ~ normal ( = 135.7, s = 27.1), de data histórica
X redondea a X al entero más cercano
• Si D q, satisface toda la demanda, y q – D 0 lo que
sobra, vende por desecho a s = $0.03 c/u
• Si D > q, vende todo (vende todas las q copias), No hay
desecho
Pero se le pasó que las ventas D – q > 0
• Cuanto debe ser q?
Slide 47 de 57
Simulación con Planillas :
Newsvendor Problem – Formulación
• Elegir q para maximizar la ganancia esperada por día
q demasiado pequeño– vende todo, pierde $0.45 de ganancia por
periódico
q demasiado grande– tiene sobras, desecho a una pérdida de $0.52
por periódico
• Problema clásico de Investigación Operacional
Muchas versiones, variantes, extensiones, aplicaciones
Mucha investigación en soluciones exactas en ciertos casos
Pero fácil de simular, incluso en una planilla
• Ganancia en un día, como función de q:
W(q) = r min (D, q) + s max (q – D, 0) – cq
Ganancia venta Ganancia desecho Costo
W(q) es una variable aleatoria– la ganancia varía de un día a otro
• Maximizar E(W(q)) sobre enteros positivos q
Slide 48 de 57
Simulación con Planillas :
Newsvendor Problem – Simulación
• Establecer valor de prueba para q, generar demanda D, computar
ganancia para ese día
Luego repetir esto por muchos días, independientemente, promediar
para estimar E(W(q))
– También obtener intervalo de confianza, estimar P (pérdida),
histograma de W(q)
Probar para un rango de valores de q
• Necesario generar demanda D = max (X, 0)
Se necesita generar X ~ normal ( = 135.7, s = 27.1)
(Mucho) por delante – Sec. 12.2, generating random variates
En este caso, generar X = F,s(U)
1
Slide 50 de 57
Simulación con Planillas :
Newsvendor Problem – Excel (cont’d.)
• Para cada q:
columna“Sold” : numero de periódicos vendidos ese día
column“Scrap” : numero de periódicos desechados ese día
column“Profit” : ganancia (+, –, 0) de ese día
Ubicación de“$” en formulas para facilitar la copia
• Al final de las columnas “Profit” columns (verde):
Promedi de ganancia sobre 30 días
Half-width de 95% intervalo de confianza E(W(q))
– Valor 2.045 es superior a 0.975 punto critico de distribución t con 29
d.f.
– Plotear intervalo de confianza como “I-beams” en borde izquierdo
Estimación de P(W(q) < 0)
– Use función COUNTIF
• Histogramas de W(q) al final
Línea roja vertical en 0, separata ganancias, pérdidas
Slide 51 de 57
Simulación con Planillas :
Newsvendor Problem – Resultados
• Afinando– Se uso la misma demanda diaria (columna E) para cada
día, por sobre todos los valores de prueba de q
Habría sido válido para generarlos independientemente
Porqué es mejor usar la misma demanda para todos los q?
• Resultados
El mejor q es cerca de140, quizás un poco menos
Aleatoriedad (Randomness) en todos los resultados (F9)
– Todas las demandas, ganancias, cambios gráficos
– Cambio en intervalo de confianza y ploteos de histogramas
– Recuerde que estos son outputs aleatorios, ploteos aleatorios
Mayor q más variabilidad en la demanda
– Histogramas al final son mas anchos para mayores q
– Mayor probabilidad de grandes ganancias, y mayor probabilidad de
pérdidas a su vez
– Razón riesgo/retorno puede ser cuantificado– risk taker vs. risk-
averse
Slide 52 de 57
Simulación con Planillas :
Single-Server Queue – Setup
• Como la Simulación Manual, pero:
Tiempo entre llegadas (Interarrival times) ~ exponencial con media 1/l
= 1.6 min.
Service times ~ uniform en [a, b] = [0.27, 2.29] min.
Parar cuando 50th waiting time en la cola sea observado
– Ej., cuando el cliente 50th comience su servicio, no sale del sistema
• Observar waiting times en cola (in queue) WQ1, WQ2, ..., WQ50
Importante – No mirar nada más, a diferencia de antes
• Si = service time de cliente i,
Ai = interarrival time entre clientes. i – 1 e i
• Lindley’s recursion (1952): Initializar WQ1 = 0,
WQi = max (WQi – 1 + Si – 1 – Ai, 0), i = 2, 3, ...
Slide 53 de 57
Simulación con Planillas :
Single-Server Queue – Simulación
• Necesidad de generar variables aleatorias
(random variates): Sea U ~ U[0, 1]
Exponencial (media 1/l): Ai = –(1/l) ln(1 – U)
Uniform on [a, b]: Si = a + (b – a) U
• File MU1.xls
• Input parameters en celdas B4 – B6 (azul)
Algunos outputs teóricos en celdas B8 – B10
• Número de cliente (i = 1, 2, ..., 50) en columna D
• 5 IID replicas (3 columnas para cada una)
IA = interarrival times, S = service times
WQ = waiting times in queue (ploteo, curvas delgadas)
– 1ro. Inicializado en 0, remanentes usan Lindley’s recursion
Curvas se elevan desde 0, variación aumenta hacia la derecha
– Creata autocorrelació´n positiva en columnas WQ
Curvas tienen menos cambios abruptos que si los WQi’s fueran independientes
Slide 54 de 57
Simulación con Planillas :
Single-Server Queue – Resultados
• Promedio de columnas (verde)
Promedio interarrival, service times cercano a expectativas
Promedio WQi dentro de cada réplica
– No muy lejos de expectativa steady-state
– Variación considerable
– Muchas están bajo ella (Porqué?)
• Promedio Cross-replication (Del cliente) (verde)
Columna T, línea gruesa en el ploteo para bajar el ruido
• Porqué no muestra de la varianza, histogramas de WQi’s?
Podría haber computado a los dos, como en newsvendor; dos temas:
– Nonstationarity – Cual es el “típico” WQi aquí?
– Autocorrelación – estimación de la desviación de la varianza ,
puede desviar histograma si replica no es suficientemente larga
Slide 55 de 57
Simulating with Spreadsheets:
Recap
• Popular for static models
Add-ins – @RISK, Crystal Ball
• Inadequate tool for dynamic simulations if there’s
any complexity
Extremely easy to simulate single-server queue in Arena –
Chapter 3 main example
Can build very complex dynamic models with Arena – most
of rest of book
Slide 56 de 57
Vistazo a un Proyecto de Simulación
• Entender el Sistema
• Estar claro sobre los objetivos
• Formular la representación del modelo
• Traducir a software de modelación
• Verificar el “programa”
• Validar el modelo
• Diseñar experimentos
• Hacer replicas (corridas)
• Analizar, sacar conclusiones, documentar
resultados
Slide 57 de 57