Zo werkt de simulatie-engine
De simulatie-engine begrijpen
ProcessMind gebruikt een simulatie-engine voor discrete gebeurtenissen (DES) om processen te modelleren. Als je weet hoe de engine werkt, kun je simulaties beter instellen en de resultaten nauwkeuriger interpreteren. Je kunt de engine uitproberen met een eigen proces tijdens een gratis proefperiode.
Wat is discrete-eventsimulatie?
Bij discrete-eventsimulatie verandert de systeemstatus alleen bij specifieke gebeurtenissen. De klok springt van gebeurtenis naar gebeurtenis; tussendoor gebeurt er niets. Deze aanpak past goed bij bedrijfsprocessen, omdat:
- Activiteiten een duidelijk begin en einde hebben
- Bronnen op specifieke momenten worden toegewezen en vrijgegeven
- Cases op vastgelegde momenten binnenkomen en worden afgerond
Waarom gebeurtenissen gebruiken?
Bedrijfsprocessen hoeven niet, zoals bij continue simulatie voor bijvoorbeeld natuurkunde of stromingsleer, van moment tot moment te worden gemodelleerd. Een leningaanvraag verandert niet geleidelijk van “ingediend” naar “goedgekeurd”, maar verandert van status bij specifieke gebeurtenissen.
De centrale gebeurtenislus
De simulatie-engine doorloopt een eenvoudige lus:
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 Soorten gebeurtenissen
De simulatie genereert en verwerkt verschillende soorten gebeurtenissen:
| Gebeurtenistype | Wat gebeurt er |
|---|---|
| Case-aankomst | Een nieuwe case komt bij een startevent het proces binnen |
| Activiteit gestart | Een case begint een activiteit uit te voeren (bronnen worden toegewezen) |
| Activiteit afgerond | Een case voltooit een activiteit (bronnen worden vrijgegeven) |
| Gateway-evaluatie | Een beslispunt bepaalt welk pad of welke paden worden gevolgd |
| Case afgerond | Een case bereikt een end event |
Cases genereren en laten binnenkomen
Cases komen de simulatie binnen via Start Events in je BPMN-model. Het aankomstpatroon wordt bepaald door de verdeling voor casegeneratie.
Standaard aankomstpatroon
Standaard komen cases binnen volgens een Poisson-verdeling, met een snelheid van 1 case per uur. Dit zorgt voor realistische, willekeurige tussenpozen tussen aankomsten, zoals bij veel bedrijfsprocessen.
Aankomsten aanpassen
Je kunt verschillende aankomstpatronen instellen met de verdelingen die worden beschreven in de documentatie over verdelingen.
Caseverloop door het proces
Sequence Flows
Zodra een case een element voltooit, volgt deze meteen de uitgaande sequence flow. Is er maar één uitgaand pad, dan volgt de case dat automatisch.
Gedrag van gateways
Gateways bepalen hoe cases vertakken en samenkomen:
| Gatewaytype | Gedrag |
|---|---|
| XOR (exclusief) | Er wordt precies één uitgaand pad gekozen met een willekeurige selectie op basis van kansen. De kansen gelden als relatieve gewichten en worden automatisch genormaliseerd. |
| AND (parallel) | Alle uitgaande paden worden tegelijk gevolgd. De case wordt opgesplitst in parallelle tokens. |
| OR (inclusief) | Er worden willekeurig paden gekozen, waarbij altijd minstens één pad wordt gevolgd. |
| Gebeurtenisgestuurd | Er wordt willekeurig een van de beschikbare gebeurtenissen gekozen. |
Kansen instellen
Bij XOR-gateways wijs je kansen toe aan elke uitgaande flow. Dit zijn relatieve gewichten:
- Als je de flows instelt op 70, 20 en 10, worden de kansen genormaliseerd naar 70%, 20% en 10%
- Als je de flows instelt op 7, 2 en 1, krijg je hetzelfde resultaat
- Voor niet-toegewezen flows wordt het resterende percentage gebruikt
Activiteiten uitvoeren
Wanneer een case een taak (activiteit) bereikt, doorloopt de engine deze stappen:
1. Beschikbaarheid van bronnen controleren
Is er voldoende capaciteit beschikbaar van de benodigde bron?
2. In de wachtrij plaatsen als dat nodig is
Als er geen bronnen beschikbaar zijn, komt de case in de wachtrij. ProcessMind gebruikt standaard de volgorde FIFO (First In, First Out): cases worden verwerkt in de volgorde waarin ze zijn binnengekomen.
3. Bronnen toewijzen
Zodra de benodigde bron beschikbaar is, worden de benodigde eenheden ervan voor deze case gereserveerd.
4. Verwerkingstijd bepalen
De engine trekt een waarde uit de ingestelde verdeling voor de verwerkingstijd. Die bepaalt hoelang de activiteit duurt.
5. Voltooiingsgebeurtenis plannen
Er wordt een voltooiingsgebeurtenis aan de gebeurteniswachtrij toegevoegd op current_time + processing_time.
6. Bronnen vrijgeven
Wanneer de voltooiingsgebeurtenis plaatsvindt, worden de bronnen teruggegeven aan de pool voor andere cases.
Minimale verwerkingstijd
Om unieke timestamps en realistisch gedrag te garanderen, duurt elke activiteit minstens 1 seconde. Ook bij een verdeling met een duur van nul duurt een activiteit minimaal zo lang.
Overslaankans
Voor activiteiten kun je een overslaankans instellen (0-100%). Als een activiteit wordt overgeslagen:
- Gaat de case meteen door naar het volgende element
- Worden er geen bronnen gebruikt
- Verstrijkt er geen tijd (behalve de minimale 1 seconde)
- Verschijnt de activiteit met een minimale duur in het logboek
Zo modelleer je praktijksituaties waarin stappen soms worden overgeslagen.
Tijd verwerken
De simulatieklok
De simulatie houdt een virtuele klok bij die in stappen van gebeurtenis naar gebeurtenis gaat. Vindt de volgende gebeurtenis plaats om 10:35 en is het nu 10:30, dan springt de klok meteen naar 10:35.
Tijdseenheden
Intern worden alle tijden omgerekend naar dezelfde eenheden. Je kunt duren opgeven in:
- Seconden
- Minuten
- Uren
- Dagen
Aankomstpercentages stel je apart in, per uur, dag, week, maand of jaar.
Periodiciteit en tijdvakken
Parameters kunnen veranderen afhankelijk van de simulatietijd. Bijvoorbeeld:
- Andere aankomstpercentages op werkdagen en in het weekend
- Andere verwerkingstijden voor ochtend- en middagdiensten
- Een andere capaciteit van bronnen tijdens piekuren
Lees de documentatie over Periodiciteit voor informatie over de instellingen.
Bronnen beheren
Bronnenpools
Elke bron heeft een vastgestelde capaciteit: het aantal cases dat deze tegelijk kan afhandelen.
Wachtrijen beheren
Als de vraag groter is dan de capaciteit, wachten cases in een wachtrij. ProcessMind gebruikt standaard de volgorde FIFO (First In, First Out), zodat cases worden verwerkt in de volgorde waarin ze zijn binnengekomen.
Event log genereren
Tijdens de simulatie wordt elke uitvoering van een activiteit vastgelegd in het event log:
| Veld | Beschrijving |
|---|---|
| Case-ID | Unieke identificatie van elke case (opeenvolgend gegenereerd) |
| Activiteit | Naam van het BPMN-element |
| Starttijd | Tijdstip waarop de activiteit begon |
| Voltooiingstijd | Tijdstip waarop de activiteit eindigde |
| Bron | Bron die de activiteit uitvoerde |
| Attributen | Case-attributen op dat moment |
Dit logboek volgt gangbare event log-indelingen en kan met alle ProcessMind-functies worden geanalyseerd.
Simulatielimieten
| Limiet | Waarde | Doel |
|---|---|---|
| Maximaal aantal gebeurtenissen | 5.000.000 | Voorkomt dat simulaties onbeperkt doorgaan |
| Minimale duur | 1 seconde | Zorgt voor unieke timestamps |
Begin klein en schaal daarna op
Begin bij een nieuwe simulatie met een korte periode, bijvoorbeeld een paar dagen of weken, om je configuratie te controleren. Zodra je zeker weet dat het model goed werkt, kun je een langere periode simuleren.
Volgende stappen
Verbeter processen. Bouw aan een samenhangende architectuur. Houd de regie.
Krijg meteen toegang, zonder creditcard of wachttijd. Maak van de manier waarop je organisatie werkt heldere, samenhangende procesmodellen.
Breng de procesarchitectuur in kaart, leg verantwoordelijkheden en beheersmaatregelen vast en stem rollen en taken op elk niveau op elkaar af.
Start je gratis proefperiode en bouw een betrouwbare basis om processen te beheren en continu te verbeteren.