Sur cette page

Fonctionnement du moteur de simulation

Process Intelligence Process Intelligence Disponible avec une licence utilisateur Process Intelligence ou supérieure. Seules les licences utilisateur de ce forfait ou d’un forfait supérieur peuvent utiliser cette fonctionnalité. Comparer les forfaits Disponible avec une licence utilisateur Process Intelligence ou une offre supérieure

Comprendre le moteur de simulation

ProcessMind utilise un moteur de simulation à événements discrets (DES) pour modéliser vos processus. En comprenant son fonctionnement, vous pourrez configurer vos simulations plus efficacement et interpréter les résultats avec précision.

Configuration et résultats de la simulation ProcessMind

Qu’est-ce que la simulation à événements discrets ?

Dans une simulation à événements discrets, l’état du système ne change qu’à certains événements : l’horloge passe d’un événement au suivant et, entre deux événements, rien ne se produit. Cette approche convient particulièrement aux processus métier, car :

  • Les activités ont des heures de début et de fin distinctes
  • Les ressources sont affectées et libérées à des moments précis
  • Les cas arrivent et se terminent à des points définis

Pourquoi des événements discrets ?

Contrairement à la simulation continue, utilisée en physique ou en mécanique des fluides, les processus métier ne nécessitent pas une modélisation instant par instant. Une demande de prêt ne passe pas progressivement de « soumise » à « approuvée » : son état change lors d’événements précis.

La boucle principale des événements

Le moteur de simulation suit une boucle simple :

1. Initialize: Set up starting conditions
2. Get Next Event: Find the earliest scheduled event from the priority queue
3. Advance Time: Move simulation clock to that event's time
4. Process Event: Handle the event (start activity, complete activity, etc.)
5. Schedule New Events: Based on what happened, add new events
6. Repeat: Continue until end time or max events reached (5,000,000)
7. Output: Generate the complete event log

Types d’événements

La simulation génère et traite plusieurs types d’événements :

Type d’événement Ce qui se passe
Arrivée d’un cas Un nouveau cas entre dans le processus par un événement de début
Début d’une activité Un cas commence à exécuter une activité, et les ressources sont affectées
Fin d’une activité Un cas termine une activité, et les ressources sont libérées
Évaluation d’une passerelle Un point de décision détermine le ou les chemins à suivre
Fin d’un cas Un cas atteint un événement de fin

Génération et arrivée des cas

Les cas entrent dans la simulation par les Start Events de votre modèle BPMN. Le schéma d’arrivée est contrôlé par la distribution de génération des cas.

Schéma d’arrivée par défaut

Par défaut, les cas arrivent selon une distribution de Poisson, à raison d’un cas par heure. Cela crée des intervalles aléatoires réalistes entre les arrivées, caractéristiques de nombreux processus métier.

Personnaliser les arrivées

Vous pouvez configurer différents schémas d’arrivée à l’aide des distributions décrites dans la documentation Distributions.

Flux des cas dans le processus

Sequence Flows

Lorsqu’un cas termine un élément, il suit immédiatement le Sequence Flow sortant. S’il n’existe qu’un seul chemin sortant, le cas l’emprunte automatiquement.

Comportement des passerelles

Les passerelles contrôlent la bifurcation et la fusion des cas :

Type de passerelle Comportement
XOR (Exclusive) Un seul chemin sortant est sélectionné selon un tirage aléatoire pondéré par les probabilités. Les probabilités sont traitées comme des poids relatifs et normalisées automatiquement.
AND (Parallel) Tous les chemins sortants sont suivis simultanément. Le cas est divisé en jetons parallèles.
OR (Inclusive) Les chemins sont sélectionnés aléatoirement, avec la garantie qu’au moins un chemin sera suivi.
Event-Based Sélection aléatoire parmi les événements disponibles.

Définir les probabilités

Pour les passerelles XOR, vous attribuez une probabilité à chaque flux sortant. Il s’agit de poids relatifs :

  • Si vous définissez les flux sur 70, 20 et 10, ils sont normalisés à 70 %, 20 % et 10 %
  • Si vous définissez les flux sur 7, 2 et 1, vous obtenez le même résultat
  • Les flux non attribués utilisent le pourcentage restant

Exécution d’une activité

Lorsqu’un cas atteint une tâche, c’est-à-dire une activité, le moteur suit la séquence suivante :

1. Vérifier la disponibilité des ressources

La ressource requise dispose-t-elle d’une capacité disponible ?

2. Mettre en file d’attente si nécessaire

Si les ressources ne sont pas disponibles, le cas entre dans la file d’attente. Par défaut, ProcessMind utilise l’ordre FIFO (First In, First Out) : les cas sont traités dans l’ordre de leur arrivée.

3. Affecter les ressources

Dès qu’elles sont disponibles, les unités de ressources requises sont réservées pour ce cas.

4. Échantillonner le temps de traitement

Le moteur tire une valeur à partir de la distribution du temps de traitement configurée. Cette valeur détermine la durée de l’activité.

5. Planifier l’événement de fin

Un événement de fin est ajouté à la file d’événements à current_time + processing_time.

6. Libérer les ressources

Lorsque l’événement de fin se produit, les ressources sont remises à disposition des autres cas.

Temps de traitement minimal

Pour garantir l’unicité des horodatages et un comportement réaliste, toutes les activités ont une durée minimale de 1 seconde. Même avec une distribution de durée nulle, les activités prennent au moins ce temps.

Probabilité d’ignorer une activité

Les activités peuvent être configurées avec une probabilité d’ignorer l’étape, de 0 à 100 %. Lorsqu’une activité est ignorée :

  • Le cas passe immédiatement à l’élément suivant
  • Aucune ressource n’est consommée
  • Aucun temps ne s’écoule, à l’exception de la seconde minimale
  • L’activité apparaît dans le journal avec une durée minimale

Cela permet de modéliser les situations réelles dans lesquelles certaines étapes sont occasionnellement ignorées.

Gestion du temps

L’horloge de simulation

La simulation utilise une horloge virtuelle qui avance par étapes, d’un événement au suivant. Si le prochain événement est prévu à 10 h 35 et que l’heure actuelle est 10 h 30, l’horloge passe directement à 10 h 35.

Unités de temps

Toutes les durées sont converties en interne dans des unités cohérentes. Vous pouvez spécifier les durées en :

  • Secondes
  • Minutes
  • Heures
  • Jours

Les taux d’arrivée sont définis séparément, par heure, jour, semaine, mois ou année.

Périodicité et créneaux horaires

Les paramètres peuvent varier selon le temps écoulé dans la simulation. Par exemple :

  • Des taux d’arrivée différents en semaine et le week-end
  • Des temps de traitement différents le matin et l’après-midi
  • Une capacité de ressources différente pendant les heures de pointe

Consultez la documentation Périodicité pour connaître les détails de configuration.

Gestion des ressources

Pools de ressources

Chaque ressource possède une capacité définie, c’est-à-dire le nombre de cas qu’elle peut traiter simultanément.

Gestion des files d’attente

Lorsque la demande dépasse la capacité, les cas attendent dans une file. Par défaut, ProcessMind utilise l’ordre FIFO (First In, First Out), afin de traiter les cas dans leur ordre d’arrivée.

Génération du journal d’événements

Pendant l’exécution de la simulation, chaque activité est enregistrée dans le journal d’événements produit :

Champ Description
ID du cas Identifiant unique de chaque cas, généré séquentiellement
Activité Nom de l’élément BPMN
Horodatage de début Moment où l’activité a commencé
Horodatage de fin Moment où l’activité s’est terminée
Ressource Ressource qui a exécuté l’activité
Attributs Attributs du cas à ce moment-là

Ce journal respecte les formats standard des journaux d’événements et peut être analysé avec tous les outils ProcessMind.

Limites de la simulation

Limite Valeur Objectif
Nombre maximal d’événements 5 000 000 Empêcher les simulations incontrôlées
Durée minimale 1 seconde Garantir l’unicité des horodatages

Commencez petit, puis augmentez progressivement

Lors de la configuration d’une nouvelle simulation, commencez par une période courte, de quelques jours ou semaines, afin de valider votre configuration. Une fois que vous avez vérifié que le modèle se comporte correctement, passez à des périodes plus longues.

Étapes suivantes

Ressources
Découvrez comment modéliser les ressources et les contraintes de capacité.