Simulační soubory: Monte Carlo vzorkování

Diskrétní simulace událostí v Pythonu

Diogo Costa (PhD, MSc)

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

Odezva systému na různé scénáře

  • Nedeterministické procesy způsobují variabilitu odezvy systému
  • Předchozí video: Modelování nedeterministických procesů
  • Charakterizace šíření nejistoty v modelu
  • Studium odezvy systému na různé scénáře

Využití:

  • Plánování obchodní expanze
  • Provádění zátěžových testů
  • Příprava na extrémní situace
Diskrétní simulace událostí v Pythonu

Monte Carlo vzorkování

  • Opakované náhodné vzorkování
  • Modelování systému s malými změnami
  • Zkoumání odezvy systému na změny

Prostor parametrů s rostoucím počtem vzorků

Graf zobrazující výsledky 100 Monte Carlo vzorků. Vzory výsledků modelu nejsou patrné.

Graf zobrazující výsledky 1500 Monte Carlo vzorků. Vzory výsledků modelu jsou částečně viditelné.

Graf zobrazující výsledky 5000 Monte Carlo vzorků. Výsledky modelu nyní ukazují jasné vzory s mřížkovou strukturou.

Diskrétní simulace událostí v Pythonu

Monte Carlo vzorkování: Analýza procesů

Příklad: Monte Carlo simulace pro pochopení rozsahu výstupů generátoru událostí založeného na normálním (Gaussově) rozdělení

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")

Vizualizace výsledků Graf zobrazující Monte Carlo vzorkování pro doby trvání generované na základě Gaussova rozdělení.

Diskrétní simulace událostí v Pythonu

Monte Carlo vzorkování: Modely diskrétních událostí

Hlavní cíl

  • Prozkoumání nejistoty modelu
  • Vyplývající z nedeterministických procesů
  • Charakterizace nejistoty
  • Podpora rozhodování

Diagram zobrazující systém se čtyřmi stavy, kde procesy mění stavy. Kvůli variabilitě délky každého procesu se počet možností stavů systému zvyšuje s každým dalším procesem.

Diskrétní simulace událostí v Pythonu

Monte Carlo vzorkování: Modely diskrétních událostí

  • Nejistota v délce každého procesu se propaguje systémem

  • Výsledkem jsou různé trajektorie modelu

  • Označuje se jako Response Envelope

Příklad:

n_trajectories = 50

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

Graf zobrazující obálku odezvy výrobní činnosti zahrnující sérii sekvenčních procesů.

Diskrétní simulace událostí v Pythonu

Pojďme si procvičit!

Diskrétní simulace událostí v Pythonu

Preparing Video For Download...