Periodieke en Tijdafhankelijke Parameters
Wat is periodiciteit?
Echte processen verlopen niet altijd hetzelfde. Een klantenservice krijgt meer telefoontjes tijdens kantooruren. Productiebedrijven draaien verschillende shifts met verschillende bezetting. Winkels kennen piekmomenten in bepaalde seizoenen.
Met periodiciteit kun je vastleggen wanneer specifieke simulatieregels gelden. In plaats van één waarde kun je verschillende parameters kiezen voor aparte periodes:
- Weekdagen vs. weekend
- Ochtendshift vs. avondshift
- Piek vs. rustige tijden
- Kantooruren vs. buiten kantooruren
Daardoor werkt je simulatie realistisch in elke tijdscontext.
Waarom is periodiciteit belangrijk?
Een eenvoudig voorbeeld: het modelleren van klant aankomsten.
Zonder periodiciteit:
- 10 klanten per uur, 24/7
Met periodiciteit:
- 25 klanten per uur, doordeweeks 9:00-18:00
- 15 klanten per uur, doordeweeks 18:00-21:00
- 5 klanten per uur, weekend
- 2 klanten per uur, ‘s nachts
Met periodiciteit sluit je beter aan bij de echte vraag en zijn wachtrijen, inzet van resources en output realistischer.
Beschikbare types periodiciteit
ProcessMind ondersteunt negen types periodiciteit, elk bepaalt wanneer een regel geldt:
| Type | Parameters | Omschrijving |
|---|---|---|
| Always | (geen) | Regel geldt altijd, zonder variatie |
| Default | (geen) | Vangnetregel als er geen andere tijdsgebonden regel geldt |
| Fixed Period | startDateTime, endDateTime | Eenmalige periode (niet herhalend) |
| Each Day | startTime, endTime | Zelfde tijden elke dag |
| Each Weekday | startTime, endTime | Alleen maandag t/m vrijdag |
| Each Weekend Day | startTime, endTime | Alleen zaterdag en zondag |
| Each Week | startDay, startTime, endDay, endTime | Wekelijks herhalend, kan meerdere dagen omvatten |
| Each Month | startDayOfMonth, startTime, endDayOfMonth, endTime | Maandelijks patroon |
| Each Year | startMonth, startDayOfMonth, startTime, endMonth, endDayOfMonth, endTime | Jaarlijks/seizoenspatroon |
Periodiciteitstypes in detail
Always
De simpelste optie: de regel geldt altijd zonder variatie.
Gebruik wanneer: De parameter verschilt niet in de tijd of bij een eenvoudige baseline-simulatie.
Default
Fungeert als vangnet als geen andere tijdsregel geldt op het huidige simulatiemoment.
Gebruik wanneer: Je uitzonderingen wilt voor specifieke momenten en de rest standaardwaarden gebruikt.
Altijd een Default toevoegen
Gebruik je meerdere periodiciteitsregels? Voeg dan altijd een Default-regel toe. Zo voorkom je onverwacht gedrag als er geen andere regel passend is.
Each Day
De regel geldt op bepaalde uren elke dag van de week.
Parameters:
startTime: Tijd waarop de regel ingaat (bijv. 09:00)endTime: Tijd waarop de regel eindigt (bijv. 17:00)
Voorbeeld: Algemene kantooruren 09:00-17:00 gelden elke dag, ook in het weekend.
Each Weekday
De regel geldt op vaste uren alleen op maandag t/m vrijdag.
Parameters:
startTime: Tijd waarop de regel begintendTime: Tijd waarop de regel eindigt
Voorbeeld: Klantenservice werkt 08:00-18:00 op werkdagen en heeft andere regels in het weekend.
Each Weekend Day
De regel geldt op vaste uren alleen op zaterdag en zondag.
Parameters:
startTime: Tijd waarop de regel startendTime: Tijd waarop de regel stopt
Voorbeeld: Minder support 10:00-16:00 in het weekend.
Each Week
De regel geldt over een tijdsperiode die meerdere dagen binnen een week kan beslaan. Handig voor patronen die niet binnen één dag passen.
Parameters:
startDay: Dag waarop de regel begint (bijv. maandag)startTime: Tijd op de begindagendDay: Dag waarop de regel stoptendTime: Tijd op de einddag
Voorbeeld: Drukte van woensdag 14:00 tot vrijdag 12:00.
Each Month
De regel geldt op vaste dagen elke maand.
Parameters:
startDayOfMonth: Begindag van de maand (1-31)startTime: Tijd op de begindagendDayOfMonth: Einddag van de maandendTime: Tijd op de einddag
Voorbeeld: Maandafsluiting van 25ste om 08:00 tot en met de laatste dag om 23:59.
Each Year
De regel geldt op vaste data elk jaar.
Parameters:
startMonth: StartmaandstartDayOfMonth: Startdag van de maandstartTime: Tijd op de startdagendMonth: EindmaandendDayOfMonth: Einddag van de maandendTime: Tijd op de einddag
Voorbeeld: Winkelpiek van 15 november 00:00 tot en met 31 december 23:59.
Vaste Periode
De regel geldt binnen een specifiek datum- en tijdsbereik (niet herhalend). Gebruik dit voor eenmalige events.
Parameters:
startDateTime: Exacte startdatum en -tijdendDateTime: Exacte einddatum en -tijd
Voorbeeld: Productlancering week 15-22 maart 2025, met speciale afhandelregels.
Meerdere regels combineren
De echte kracht van periodiciteit zit in het combineren van meerdere regels. Je kunt per tijdscontext andere parameters opgeven, en de simulatie kiest steeds de juiste regel.
Voorbeeld: Multi-Shift Verwerkingstijd
Stel je een productieproces voor waarbij verwerkingstijden per shift verschillen:
| Regelnaam | Frequentie | Verdeling verwerkingstijd |
|---|---|---|
| Day Shift | Elke werkdag, 08:00-16:00 | Normal(30 min, 5 min) |
| Evening Shift | Elke werkdag, 16:00-00:00 | Normal(45 min, 10 min) |
| Weekend Crew | Elke weekenddag, 10:00-18:00 | Normal(60 min, 15 min) |
| Overnight/Default | Default | Normal(90 min, 20 min) |
De dagdienst is het snelst (volledige bezetting, frisse medewerkers). Avond is trager (minder toezicht). Weekenden zijn het traagst (minimale bezetting). Default vangt de nachturen op.
Prioriteit van Regels
Wanneer meerdere regels kunnen gelden:
- Regels worden beoordeeld in de volgorde zoals opgegeven in je configuratie
- De eerste matchende regel wordt toegepast (bovenste regel wint)
- Default regels gelden alleen als geen andere regel van toepassing is
Tip: Zet specifieke regels boven algemene. Plaats “Elke werkdag” boven “Elke dag” als je ander gedrag wilt voor werkdagen dan voor het weekend.
Waar gebruik je periodiciteit?
Periodiciteit pas je toe op veel simulatieparameters:
| Parameter | Gebruik periodiciteit |
|---|---|
| Case Arrivals | Meer instroom tijdens kantooruren, minder ‘s nachts |
| Processing Times | Snellere verwerking met meer personeel, trager bij minder bezetting |
| Resource Capacity | Extra medewerkers tijdens piekuren, minimale bezetting ‘s nachts |
| Skip Chances | Andere routeringsregels in weekend of op feestdagen |
| Gateway Probabilities | Andere beslispatronen per tijdstip |
Uitgebreid voorbeeld: Klantenservice Center
Hieronder een realistisch voorbeeld van hoe periodiciteit werkt met diverse parameters in een klantenservice simulatie:
Instelling aankomstsnelheid
| Periodiciteit | Aankomstsnelheid |
|---|---|
| Each Weekday 09:00-18:00 | Poisson(50 per uur) |
| Each Weekday 18:00-22:00 | Poisson(20 per uur) |
| Each Weekend Day 10:00-16:00 | Poisson(15 per uur) |
| Default | Poisson(5 per uur) |
Drukte tijdens kantooruren, wat verkeer in de avond en rustig in weekend en nacht.
Instellen van Verwerkingstijd
| Frequentie | Verdeling |
|---|---|
| Elke werkdag 09:00-17:00 | Triangular(10, 20, 45 min) |
| Elke weekenddag | Triangular(20, 40, 90 min) |
| Default | Triangular(30, 60, 120 min) |
Het snelst tijdens piekbezetting, trager in het weekend en buiten kantooruren.
Instellen van Personeelscapaciteit
| Frequentie | Beschikbare agents |
|---|---|
| Elke werkdag 09:00-18:00 | 10 agents |
| Elke werkdag 18:00-22:00 | 4 agents |
| Elke weekenddag 10:00-16:00 | 3 agents |
| Default | 1 agent |
Volledige bezetting tijdens kantooruren, beperkte bezetting daarbuiten.
Zo Werkt Het Samen
Om 10:00 op dinsdag:
- Instroom gebruikt het tarief van 50/uur
- Verwerking gebruikt de snelle driehoeksverdeling
- 10 agents beschikbaar
Om 20:00 op dinsdag:
- Instroom daalt naar 20/uur
- Verwerking gebruikt de default (tragere) verdeling
- Slechts 4 agents beschikbaar
Om 14:00 op zaterdag:
- Instroom is 15/uur
- Verwerking gebruikt de weekendverdeling
- 3 agents beschikbaar
Best practices
1. Begin met Default
Definieer altijd eerst je Default-regel. Zo is elk tijdstip afgedekt, ook als andere regels niet gelden.
2. Werk van algemeen naar specifiek
Begin met brede patronen (weekdagen vs. weekend) en voeg bij behoefte specifiekere regels toe (zoals aparte shifturen).
3. Begin simpel
Start met alleen onderscheid tussen weekdagen en weekend. Uur- of seizoensdetails kun je altijd nog toevoegen.
4. Baseer patronen op data
Analyseer waar mogelijk je historische data om echte patronen te herkennen. Kijk naar instroom, verwerkingstijden en bezetting per dag en uur.
5. Test edge cases
Controleer of je regels goed omgaan met overgangsmomenten:
- Wat gebeurt er precies om 17:00 bij een shiftwissel?
- Loopt middernacht goed?
- Werken maand-einde regels ook bij maanden met minder dagen?
6. Documenteer je regels
Complexe periodiciteitsregels zijn later lastig te begrijpen. Documenteer daarom waarom elke regel bestaat en welk bedrijfsproces erbij hoort.