Conjuntos de simulação: amostragem de Monte Carlo

Simulação de Eventos Discretos em Python

Diogo Costa (PhD, MSc)

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

Resposta do sistema a cenários diferentes

  • Processos não determinísticos causam variação na resposta do sistema
  • Vídeo anterior: como modelar processos não determinísticos
  • Caracterizar a propagação da incerteza no modelo
  • Estudar a resposta do sistema a cenários diferentes

Isso ajuda em

  • Planejar expansões do negócio
  • Fazer testes de estresse
  • Se preparar para situações extremas
Simulação de Eventos Discretos em Python

Amostragem de Monte Carlo

  • Amostragem aleatória repetida
  • Modelar o sistema com pequenas mudanças
  • Ver a resposta do sistema à mudança

Espaço de parâmetros conforme aumentam as amostras

Gráfico mostrando os resultados de 100 amostras de Monte Carlo. Os padrões dos resultados do modelo não são visíveis.

Gráfico mostrando os resultados de 1500 amostras de Monte Carlo. Alguns padrões dos resultados do modelo agora são visíveis, mas ainda limitados.

Gráfico mostrando os resultados de 5000 amostras de Monte Carlo. Os resultados do modelo agora exibem padrões claros, formando uma grade.

Simulação de Eventos Discretos em Python

Amostragem de Monte Carlo: investigação de processos

Exemplo: execução de Monte Carlo para entender a faixa de saídas de um gerador de eventos com distribuição 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")

Plotando os resultados Gráfico exibindo a amostragem de Monte Carlo para durações geradas com base na distribuição Gaussiana.

Simulação de Eventos Discretos em Python

Amostragem de Monte Carlo: modelos de eventos discretos

Objetivo principal

  • Explorar a incerteza do modelo
  • De processos não determinísticos
  • Caracterizar a incerteza
  • Apoiar a tomada de decisão

Diagrama mostrando um sistema com quatro estados, onde processos mudam os estados. Como há variabilidade na duração de cada processo a cada repetição, o número de possibilidades dos estados do sistema do modelo aumenta na sequência de processos.

Simulação de Eventos Discretos em Python

Amostragem de Monte Carlo: modelos de eventos discretos

  • A incerteza na duração de cada processo se propaga pelo sistema

  • Gera trajetórias de modelo diferentes

  • Chamado de Envelope de Resposta

Exemplo:

n_trajectories = 50

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

Gráfico mostrando o envelope de resposta de uma atividade de manufatura que inclui uma série de processos sequenciais.

Simulação de Eventos Discretos em Python

Vamos praticar!

Simulação de Eventos Discretos em Python

Preparing Video For Download...