Sie sind auf Seite 1von 57

Conceptos

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é?)

• Máximo tiempo de espera de partes en la cola:


max WQ i
i  1,..., N

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

• Muchas otras posibilidades (sobrecarga de


información)

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)

 Problemas: validez, estimación de promedios, rango de tiempo (time


frame)
 A menudo útil como una aproximación de primera instancia

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

• Time-average number in queue:


Area under Q ( t ) curve 15 . 78
  0 . 79 part
Final clock value 20

• Utilization of drill press:


Area under B ( t ) curve 18 . 34
  0 . 92 (dimension less)
Final clock value 20

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

• Intervalo de confianza para valores esperados:


 En general, X  t n  1,1   / 2 s / n (Supuesto normal?)
 Para producción total esperada 3 . 80  ( 2 . 776 )( 1 . 64 / 5)
3 . 80  2 . 04 Precisión?
Slide 43 de 57
Comparando Alternativas
• Generalmente, la simulación es usada para la
“configuración” de mas de un solo modelo
• A menudo se quiere comparar alternativas,
seleccionar o buscar la mejor (vía algún criterio)
• Sistema de Procesamiento Simple: ¿Que pasaría
si la frecuencia de llegada se duplica?
 Se corta el tiempo entre llegada en la mitad
 Echar a correr nuevamente el modelo para llegadas de
tiempo duplicado
 Hacer 5 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

U es un número aleatorio uniformemente distribuido en [0, 1] (Sec.


12.1)
F,s es una función de distribución acumulativa de la distribución
normal (, s)
Slide 49 de 57
Simulación con Planillas :
Newsvendor Problem – Excel
• File Newsvendor.xls
• Parámetros de ingreso en celdas B4 – B8 (azul)
• Valores de prueba para q en fila 2 (roza)
• Número de día (1, 2, ..., 30) en columna D
• Demanda en columna E para cada día:
= MAX(ROUND(NORMINV(RAND(), $B$7, $B$8), 0), 0)
Función redondeo F 1
U(0, 1)  s
Número aleatorio

RAND() es “volatil” X ~ normal (, s)


por lo que se Redondear
regenera con al entero
MAX 2nd
cualquier tecka edit próximo
argument
o F9

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

Das könnte Ihnen auch gefallen