Zestawy symulacji: próbkowanie Monte Carlo

Symulacja zdarzeń dyskretnych w Pythonie

Diogo Costa (PhD, MSc)

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

Odpowiedź systemu na różne scenariusze

  • Procesy niedeterministyczne powodują zmienność odpowiedzi systemu
  • Poprzedni film: modelowanie procesów niedeterministycznych
  • Charakteryzowanie propagacji niepewności w modelu
  • Analiza odpowiedzi systemu na różne scenariusze

Może to wspomóc:

  • Planowanie rozbudowy firmy
  • Przeprowadzanie testów warunków skrajnych
  • Przygotowanie na sytuacje ekstremalne
Symulacja zdarzeń dyskretnych w Pythonie

Próbkowanie Monte Carlo

  • Wielokrotne losowe próbkowanie
  • Modelowanie systemu z drobnymi zmianami
  • Analiza odpowiedzi systemu na zmiany

Przestrzeń parametrów przy wzroście liczby próbek

Wykres wyników 100 próbek Monte Carlo. Wzorce wyników modelu nie są widoczne.

Wykres wyników 1500 próbek Monte Carlo. Niektóre wzorce wyników modelu są już widoczne, ale wciąż ograniczone.

Wykres wyników 5000 próbek Monte Carlo. Wyniki modelu wykazują wyraźne wzorce w postaci siatki.

Symulacja zdarzeń dyskretnych w Pythonie

Próbkowanie Monte Carlo: analiza procesów

Przykład: uruchomienie Monte Carlo w celu analizy zakresu wyników generatora zdarzeń opartego na rozkładzie normalnym (Gaussa)

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

Wizualizacja wyników Wykres przedstawiający próbkowanie Monte Carlo dla czasów trwania wygenerowanych na podstawie rozkładu Gaussa.

Symulacja zdarzeń dyskretnych w Pythonie

Próbkowanie Monte Carlo: modele zdarzeń dyskretnych

Główny cel

  • Eksploracja niepewności modelu
  • Wynikającej z procesów niedeterministycznych
  • Charakteryzowanie niepewności
  • Wspomaganie podejmowania decyzji

Diagram przedstawiający system z czterema stanami, w którym procesy zmieniają stany. Zmienność czasu trwania każdego procesu sprawia, że liczba możliwych stanów systemu wzrasta wraz z kolejnymi procesami.

Symulacja zdarzeń dyskretnych w Pythonie

Próbkowanie Monte Carlo: modele zdarzeń dyskretnych

  • Niepewność czasu trwania każdego procesu propaguje się przez system

  • Skutkuje różnymi trajektoriami modelu

  • Zwana Obwiednią odpowiedzi

Przykład:

n_trajectories = 50

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

Wykres przedstawiający obwiednię odpowiedzi procesu produkcyjnego obejmującego serię sekwencyjnych procesów.

Symulacja zdarzeń dyskretnych w Pythonie

Czas na ćwiczenia!

Symulacja zdarzeń dyskretnych w Pythonie

Preparing Video For Download...