Комплекси симуляцій: вибірка Монте-Карло

Дискретно-подієве моделювання в Python

Diogo Costa (PhD, MSc)

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

Реакція системи на різні сценарії

  • Недетерміновані процеси спричиняють варіацію реакції системи
  • Попереднє відео: як моделювати недетерміновані процеси
  • Опис поширення невизначеності в моделі
  • Вивчення реакції системи на різні сценарії

Це допомагає з

  • Плануванням розширення бізнесу
  • Проведенням стрес-тестів
  • Підготовкою до екстремальних ситуацій
Дискретно-подієве моделювання в Python

Вибірка Монте-Карло

  • Повторна випадкова вибірка
  • Моделювання системи з малими змінами
  • Аналіз реакції системи на зміни

Простір параметрів зі зростанням вибірки

Графік результатів 100 вибірок Монте-Карло. Візерунки результатів моделі не помітні.

Графік результатів 1500 вибірок Монте-Карло. Деякі візерунки результатів моделі вже помітні, але ще обмежені.

Графік результатів 5000 вибірок Монте-Карло. Результати моделі демонструють чіткі візерунки зі структурою сітки.

Дискретно-подієве моделювання в Python

Вибірка Монте-Карло: дослідження процесу

Приклад: запуск Монте-Карло, щоб зрозуміти діапазон виходів генератора подій на основі нормального (гаусового) розподілу

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

Візуалізація результатів Графік, що показує вибірку Монте-Карло для тривалостей, згенерованих за гаусовим розподілом.

Дискретно-подієве моделювання в Python

Вибірка Монте-Карло: дискретно-подієві моделі

Базова мета

  • Дослідити невизначеність моделі
  • Що виникає через недетерміновані процеси
  • Охарактеризувати невизначеність
  • Підтримати ухвалення рішень

Діаграма системи з чотирма станами, де процеси змінюють стани. Через варіативність тривалості кожного процесу під час повторів кількість можливих станів моделі зростає в міру послідовності процесів.

Дискретно-подієве моделювання в Python

Вибірка Монте-Карло: дискретно-подієві моделі

  • Невизначеність тривалості кожного процесу поширюється в системі

  • Призводить до різних траєкторій моделі

  • Називається конверт реакцій

Приклад:

n_trajectories = 50

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

Графік, що показує конверт реакцій виробничої діяльності з низкою послідовних процесів.

Дискретно-подієве моделювання в Python

Давайте потренуємось!

Дискретно-подієве моделювання в Python

Preparing Video For Download...