Ansambluri de simulare: Eșantionare Monte Carlo

Simulare de evenimente discrete în Python

Diogo Costa (PhD, MSc)

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

Răspunsul sistemului la scenarii diferite

  • Procesele nedeterministe cauzează variație în răspunsul sistemului
  • Videoclipul anterior: Cum se modelează procesele nedeterministe
  • Caracterizarea propagării incertitudinii în model
  • Studierea răspunsului sistemului la scenarii diferite

Aplicații:

  • Planificarea extinderii afacerii
  • Efectuarea de teste de stres
  • Pregătirea pentru situații extreme
Simulare de evenimente discrete în Python

Eșantionare Monte Carlo

  • Eșantionare aleatorie repetată
  • Modelarea sistemului cu modificări mici
  • Examinarea răspunsului sistemului la modificări

Spațiul parametrilor pe măsură ce eșantioanele cresc

Grafic cu rezultatele a 100 de eșantioane Monte Carlo. Tiparele rezultatelor nu sunt vizibile.

Grafic cu rezultatele a 1500 de eșantioane Monte Carlo. Unele tipare sunt vizibile, dar limitate.

Grafic cu rezultatele a 5000 de eșantioane Monte Carlo. Tiparele sunt clare, afișând o structură de tip grilă.

Simulare de evenimente discrete în Python

Eșantionare Monte Carlo: Investigarea proceselor

Exemplu: Rulare Monte Carlo pentru a înțelege intervalul de ieșiri ale unui generator de evenimente bazat pe distribuția 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")

Vizualizarea rezultatelor Grafic care prezintă eșantionarea Monte Carlo pentru durate generate pe baza distribuției Gaussiene.

Simulare de evenimente discrete în Python

Eșantionare Monte Carlo: Modele cu evenimente discrete

Obiectiv principal

  • Explorarea incertitudinii modelului
  • Provenind din procese nedeterministe
  • Caracterizarea incertitudinii
  • Sprijinirea deciziilor

Diagramă cu un sistem cu patru stări, unde procesele modifică stările. Variabilitatea duratei fiecărui proces determină creșterea numărului de posibilități ale stărilor sistemului pe parcursul secvenței de procese.

Simulare de evenimente discrete în Python

Eșantionare Monte Carlo: Modele cu evenimente discrete

  • Incertitudinea duratei fiecărui proces se propagă prin sistem

  • Rezultă traiectorii diferite ale modelului

  • Denumit Plic de răspuns

Exemplu:

n_trajectories = 50

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

Grafic care prezintă plicul de răspuns al unei activități de producție cu o serie de procese secvențiale.

Simulare de evenimente discrete în Python

Să exersăm!

Simulare de evenimente discrete în Python

Preparing Video For Download...