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 à différents scénarios

  • Les processus non déterministes font varier la réponse du système
  • Vidéo précédente : 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 à divers scénarios

Cela aide à :

  • Planifier des extensions d’activité
  • Réaliser des tests de résistance
  • Se préparer aux 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 au changement

Espace des paramètres quand les échantillons augmentent

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

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

Graphique montrant les résultats de 5000 échantillons de Monte-Carlo. Les résultats du modèle montrent des motifs clairs, en grille.

Simulation d’événements discrets en Python

Échantillonnage de Monte-Carlo : analyse de processus

Exemple : exécution Monte-Carlo pour comprendre l’intervalle de 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")

Visualiser les résultats Graphique affichant l’échantillonnage de 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
  • Aider à la décision

Schéma montrant un système à quatre états, où des processus font évoluer les é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 chaque durée se propage dans le système

  • Donne des trajectoires de modèle différentes

  • Appelé « 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é manufacturière comprenant 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...