Método de
Montecarlo
Simulación de Sistemas Discretos, Unidad 1
Ing. Eduardo López Sandoval
[email protected]
Red de Aprendizaje
Modelado
y
Simulación
Proyectos de
Simulación de
Sistemas
Elaboración de Sistema de Colas
un simulador con Sistemas de
Montecarlo Un servidor Inventarios Revisión
Periódica
Generación Sistemas Combinados
Simulación Sistema de Colas Sistemas de
Valores de de
por con combinado de
Variables Sistema de Colas e
Eventos Servidores en Serie colas
Aleatorias Inventario
Sistemas de
Sistemas de Colas Líneas de Inventarios Punto de Cadenas
con elaboración de Repedido logísticas de
Servidores en productos o elaboración de
Paralelo prestación de productos.
servicios
Objetivo
• En esta parte del curso aprenderemos a diseñar simuladores y
resolver modelos elaborados según el Proceso Montecarlo.
• Se emplearán diagramas de flujo para su representación
Ejemplo 1: Lanzar un dado no cargado
• El numero de caras que tiene un dado Dado
común es 6 y cada una tiene la misma
probabilidad de salir en un lanzamiento.
Se pide hacer un diagrama de flujo de R = Random
una función que le permita simular en
computadora el lanzamiento de un
dado. R
• Solución: ≤ 1/6 ≤ 2/6 ≤ 3/6 ≤ 4/6 ≤ 5/6 Otro
caso
• Datos de entrada:
• R : Número aleatorio entre X=1 X=2 X=3 X=4 X=5 X=6
[0;1>
• Dato de salida:
• X : Cara resultante del dado Dado = X
Retornar: Dado
Ejemplo 2: ¿Cómo jugar a Craps?
• Se necesitan 2 dados para jugar.
• Cada ronda inicia con un tiro de salida:
• El jugador lanza los dos dados y se suma el valor obtenido de los mismos. Un
par de dados pueden dar totales desde 2 hasta 12. Si se obtiene 2 o 12, son
considerados Craps y la ronda se pierde. Si se obtiene 7 u 11, se le llama
“Natural” y se gana la ronda. Si se obtiene cualquier otro valor, se le considera
como “El Punto” (No ganas ni pierdes)
• Si se obtiene “El Punto”, la ronda aún no termina y ese punto queda
establecido. Una vez establecido “El Punto”, el jugador continúa lanzando los
dados hasta que acierte otra vez al Punto (en ese caso gana la ronda) u
obtenga un 7 (en ese caso pierde la ronda)
• Se pide desarrollar el diagrama de flujo del juego, para determinar aplicando el
Método de Montecarlo, la probabilidad de que un jugador gane una ronda.
Inicio 3
RG = 0
Sí S1 = 2 ó
Variables: S1 = 12
• RG: Rondas ganadas N
• i: Contador del FOR NEXT No
• N: Número de rondas Para i=1 i>N
2 D1 = Dado
• X: # Aleatorio uniforme hasta N
discreta entre 1 y 6 i≤N P = RG / N D2 = Dado
• D1: Valor de dado 1 D1 = Dado
• D2: Valor de dado 1 P S2 = D1+D2
• S1: Suma del primer D2 = Dado
lanzamiento Sí
Fin S2=S1
• S2: Suma del resto de S1 = D1+D2
lanzamiento de una No
ronda No
S1 = 7 ó Sí S2=7 RG = RG + 1 1
• P: Probabilidad de ganar S1 = 11
una ronda Sí
No Sgte i
3 1
2
Ejemplo 2: ¿Cómo ayudar a Gerardo?
Inicio 1 2
TTAR = 0 TD = UNIF(12,17) No
LlegaOf > 120
N TIO = EXPO(50)
Sí
Para i=1 i>N FinArr = HLG + TARR TTAR = TTAR + 120 - LlegaOf
3
hasta N
PromT = TTAR / N Sí Sgte i
i≤N FinArr < HLP
HLG = UNIF(15,30) PromT No HLP = FinArr 3
FinPD = HLP + TPD Variables:
TARR = DISC • TTAR: Tiempo total de tardanza.
Fin Sí
•
•
N: Número de días a simular
i: Contador del FOR NEXT
HLP = 20 + FinArr < FinPD • HLG: Hora que se levanta Gerardo
NORM(5,1.5) • TARR: Tiempo que tarda Gerardo en
No FinD = FinPD + TD arreglarse.
• HLP: Hora que se levanta la persona
TPD = UNIF(10,15) FinD = FinArr + TD •
•
TPD: Tiempo de preparación del desayuno.
TD: Tiempo que Gerardo demora en
desayunar.
• TIO: Tiempo de ida a la oficina.
LlegOf = FinD + TIO
1 • FinArr: Hora de fin en arreglarse.
• FinPD: Hora de fin de preparar el desayuno.
• FinD: Hora de fin de desayunar.
2 • LLegOf: Hora de llegada a la oficina.
• PromT: Tiempo promedio diario de tardanza.
UNIF(a,b) DISC EXPO(P)
R = Random R = Random R = Random
U = a + (b-a)R R E = – P + Ln(1-R)
≤ 8/30 ≤ 26/30 Otro
UNIF = U ≤ 19/30 EXPO = E
caso
X = 15 X = 20 X = 25 X = 30
Retornar: UNIF Retornar: EXPO
DISC= X
Retornar: DISC
NORM(Mu,Sigma)
S=0
Para i=1 i > 12
hasta 12
i ≤ 12
R = Random
S=S+R
Siguiente i
Z=S–6
NORM = Mu + Z * Sigma
Retornar: NORM
Caso de la venta de periódicos (Tarea 1)
Un sistema de una cola con un servidor
• La Empresa Ventajas S.A.C. tiene una oficina donde los clientes están arribando
con un tiempo entre llegadas distribuido normalmente con una media de 8
minutos y una desviación estándar de 2 minutos. El tiempo requerido para
atenderlos se distribuye exponencial con una media 9 minutos por cliente.
• Esta oficina tiene un solo empleado quien atiende a los clientes uno por vez en
estricto orden de llegada. Luego de completar la atención, cada cliente se retira
de la oficina.
• Para realizar un estudio de simulación del sistema se desea saber:
a) ¿Cuál es número clientes atendidos?
b) ¿Cuál es la cola máxima que se forma?
c) ¿Cuánto tiempo pasaron en cola y cuanto en el sistema?
Inicio
1
Tmax 2
No Sí
TSLL = 0 TSLL < TSS
Procesar Procesar
TSS = +∞
Una Llegada Una Salida
Reloj = 0
1
LQ = 0
No
ES = 0 2 Reloj ≥ Tmax
Variables:
• Tmax: Duración de la simulación.
Sí •
NCA = 0 TSLL: Tiempo de la siguiente llegada.
• TSS: Tiempo de la siguiente salida
NCA • Reloj: Reloj de la simulación
W=0 W • LQ: Número de clientes en cola.
WQ • ES: Estado del servidor (0=desocupado, 1=Ocupado)
• TELL: Tiempo entre llegadas.
WQ = 0 • TS: Tiempo de servicio.
1 Fin
Procesar Procesar
Una Llegada Una Salida
Reloj = TSLL Reloj = TSS
No Sí No Sí
ES = 0 LQ > 0
LQ = LQ + 1 ES = 1 ES = 0 LQ = LQ – 1
TS = EXPO(9) TS = EXPO(9)
TSS = +∞
TSS = Reloj + TS TSS = Reloj + TS
TELL = NORM(8,2)
TSLL = Reloj + TELL Retornar
Retornar