Ensembles de simulation : échantillonnage de Monte-Carlo

Simulation d'événements discrets en Python

Diogo Costa (PhD, MSc)

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

Réponse du système selon divers scénarios

  • Les processus non déterministes font varier la réponse du système
  • Vidéo précédente : comment modéliser des processus non déterministes
  • Caractériser la propagation de l'incertitude dans le modèle
  • Étudier la réponse du système selon divers scénarios

Cela aide à :

  • Planifier des expansions d'affaires
  • Réaliser des tests de résistance
  • Se préparer à des situations extrêmes
Simulation d'événements discrets en Python

Échantillonnage de Monte Carlo

  • Échantillonnage aléatoire répété
  • Modéliser le système avec de petits changements
  • Examiner la réponse du système aux changements

Espace des paramètres à mesure que les échantillons augmentent

Graphique montrant les résultats de 100 échantillons Monte Carlo. Les motifs des résultats du modèle ne sont pas visibles.

Graphique montrant les résultats de 1500 échantillons Monte Carlo. Certains motifs des résultats du modèle sont maintenant visibles mais restent limités.

Graphique montrant les résultats de 5000 échantillons Monte Carlo. Les résultats du modèle affichent maintenant des motifs clairs formant une grille.

Simulation d'événements discrets en Python

Échantillonnage de Monte Carlo : analyse du procédé

Exemple : exécution Monte Carlo pour comprendre l'éventail des sorties d'un générateur d'événements basé sur une distribution normale (gaussienne)

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

Tracer les résultats Graphique affichant l'échantillonnage Monte-Carlo pour des durées générées selon la distribution gaussienne.

Simulation d'événements discrets en Python

Échantillonnage de Monte Carlo : modèles à événements discrets

Objectif sous-jacent

  • Explorer l'incertitude du modèle
  • Issue de processus non déterministes
  • Caractériser l'incertitude
  • Appuyer la prise de décision

Schéma montrant un système à quatre états, où des processus font évoluer ces états. Comme la durée de chaque processus varie à chaque répétition, le nombre de possibilités d'états du modèle augmente au fil de la séquence.

Simulation d'événements discrets en Python

Échantillonnage de Monte Carlo : modèles à événements discrets

  • L'incertitude de la durée de chaque processus se propage dans le système

  • Elle produit différentes trajectoires du modèle

  • Appelée « enveloppe de réponse »

Exemple :

n_trajectories = 50

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

Graphique montrant l'enveloppe de réponse d'une activité de fabrication composée d'une série de processus séquentiels.

Simulation d'événements discrets en Python

Passons à la pratique !

Simulation d'événements discrets en Python

Preparing Video For Download...