Ансамбли моделирования: выборка Монте-Карло

Дискретно-событийное моделирование на 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...