Conjuntos de simulación: muestreo Monte Carlo

Simulación de eventos discretos en Python

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

Respuesta del sistema ante distintos escenarios

  • Procesos no deterministas causan variación en la respuesta del sistema
  • Vídeo anterior: cómo modelar procesos no deterministas
  • Caracterizar la propagación de la incertidumbre en el modelo
  • Estudiar la respuesta del sistema ante distintos escenarios

Esto ayuda a

  • Planificar expansiones del negocio
  • Hacer pruebas de estrés
  • Prepararse para situaciones extremas
Simulación de eventos discretos en Python

Muestreo Monte Carlo

  • Muestreo aleatorio repetido
  • Modelar el sistema con pequeños cambios
  • Examinar la respuesta del sistema al cambio

Espacio de parámetros al aumentar las muestras

Gráfico con los resultados de 100 muestras Monte Carlo. No se aprecian patrones en los resultados.

Gráfico con los resultados de 1500 muestras Monte Carlo. Empiezan a verse algunos patrones, pero aún limitados.

Gráfico con los resultados de 5000 muestras Monte Carlo. Ahora se ven patrones claros en forma de cuadrícula.

Simulación de eventos discretos en Python

Muestreo Monte Carlo: investigación de procesos

Ejemplo: ejecución Monte Carlo para entender el rango de salidas de un generador de eventos basado en distribución normal (gauss)

import random as rd
import numpy as np
import matplotlib.pyplot as plt

# Generating samples: Gaussian distribution
duration_sample = [rd.gauss(25, 5) 
for i in range(5000)]

# Plotting
plt.scatter(duration_sample, np.r_[0:5000], 
marker='.', c=duration_sample, cmap='CMRmap')
plt.xlabel("Duration [min]")
plt.ylabel("Monte Carlo Runs")

Visualización de resultados Gráfico que muestra el muestreo Monte Carlo de duraciones generadas con una distribución gaussiana.

Simulación de eventos discretos en Python

Muestreo Monte Carlo: modelos de eventos discretos

Objetivo principal

  • Explorar la incertidumbre del modelo
  • Derivada de procesos no deterministas
  • Caracterizar la incertidumbre
  • Apoyar la toma de decisiones

Diagrama de un sistema con cuatro estados, donde los procesos cambian los estados. Como la duración de cada proceso varía en cada repetición, el número de posibilidades de los estados del sistema aumenta a lo largo de la secuencia de procesos.

Simulación de eventos discretos en Python

Muestreo Monte Carlo: modelos de eventos discretos

  • La incertidumbre en cada duración se propaga por el sistema

  • Da lugar a trayectorias de modelo distintas

  • Se llama envolvente de respuesta

Ejemplo:

n_trajectories = 50

process_1 = {"Name": "Raw_material", 
             "OperationTime": 20, 
             "MaxDelayTimePercent": 10}
process_2 = {"Name": "Unloading", 
            "OperationTime": 15, 
            "MaxDelayTimePercent": 5}

Gráfico que muestra la envolvente de respuesta de una actividad de fabricación con una serie de procesos secuenciales.

Simulación de eventos discretos en Python

¡Vamos a practicar!

Simulación de eventos discretos en Python

Preparing Video For Download...