Periodiciteit en tijdsafhankelijke parameters
Wat is periodiciteit?
Werkelijke processen werken niet op elk moment hetzelfde. Klantenservice verwerkt tijdens kantooruren meer gesprekken. In productie zijn er verschillende diensten met een andere bezetting. In retail zijn er seizoenspieken.
Met periodiciteit leg je vast wanneer specifieke simulatieregels gelden. In plaats van één algemene waarde kun je verschillende parameters opgeven voor verschillende perioden:
- Werkdagen en weekenden
- Ochtenddienst en avonddienst
- Piekseizoen en laagseizoen
- Kantooruren en buiten kantooruren
Zo gedraagt je simulatie zich realistisch in verschillende tijdscontexten.
Waarom periodiciteit belangrijk is
Neem een eenvoudig voorbeeld: het modelleren van klantenaankomsten.
Zonder periodiciteit:
- 10 klanten per uur, 24 uur per dag, 7 dagen per week
Met periodiciteit:
- 25 klanten per uur, werkdagen 09:00-18:00
- 15 klanten per uur, werkdagen 18:00-21:00
- 5 klanten per uur, weekenden
- 2 klanten per uur, ’s nachts
Het tweede model laat realistische vraagpatronen zien die invloed hebben op wachtrijen, brongebruik en doorvoer.
Beschikbare periodiciteitstypen
ProcessMind ondersteunt negen periodiciteitstypen. Elk type bepaalt wanneer een regel geldt:
| Type | Parameters | Beschrijving |
|---|---|---|
| Altijd | (none) | Regel geldt altijd, zonder variatie |
| Standaard | (none) | Terugvalregel wanneer geen andere tijdsafhankelijke regel overeenkomt |
| Vaste periode | startDateTime, endDateTime | Eenmalige periode, niet terugkerend |
| Elke dag | startTime, endTime | Elke dag dezelfde uren |
| Elke werkdag | startTime, endTime | Alleen maandag tot en met vrijdag |
| Elke weekenddag | startTime, endTime | Alleen zaterdag en zondag |
| Elke week | startDay, startTime, endDay, endTime | Wekelijks terugkerend, kan meerdere dagen beslaan |
| Elke maand | startDayOfMonth, startTime, endDayOfMonth, endTime | Maandelijks terugkerend patroon |
| Elk jaar | startMonth, startDayOfMonth, startTime, endMonth, endDayOfMonth, endTime | Jaarlijks of seizoensgebonden patroon |
Periodiciteitstypen in detail
Altijd
De eenvoudigste optie: de regel geldt altijd, zonder variatie.
Gebruik dit wanneer: de parameter niet afhankelijk is van tijd of wanneer je een eenvoudige basissimulatie maakt.
Standaard
Dient als terugvalregel wanneer geen andere tijdsafhankelijke regel overeenkomt met het huidige simulatietijdstip.
Gebruik dit wanneer: je uitzonderingen voor specifieke momenten wilt definiëren en voor alle andere momenten een standaardwaarde wilt gebruiken.
Altijd een standaardregel opnemen
Gebruik bij meerdere periodiciteitsregels altijd een regel Standaard om eventuele hiaten in je tijdsafhankelijke regels op te vangen. Zo voorkom je onverwacht gedrag wanneer geen specifieke regel overeenkomt.
Elke dag
De regel geldt op specifieke uren elke dag van de week.
Parameters:
startTime: Tijd waarop de regel begint, bijvoorbeeld 09:00endTime: Tijd waarop de regel eindigt, bijvoorbeeld 17:00
Voorbeeld: Algemene kantooruren van 09:00 tot 17:00 gelden elke dag, ook in het weekend.
Elke werkdag
De regel geldt op specifieke uren alleen van maandag tot en met vrijdag.
Parameters:
startTime: Tijd waarop de regel begintendTime: Tijd waarop de regel eindigt
Voorbeeld: Klantenservice werkt op werkdagen van 08:00 tot 18:00, met andere regels voor het weekend.
Elke weekenddag
De regel geldt op specifieke uren alleen op zaterdag en zondag.
Parameters:
startTime: Tijd waarop de regel begintendTime: Tijd waarop de regel eindigt
Voorbeeld: Beperkte openingstijden van 10:00 tot 16:00 in het weekend.
Elke week
De regel geldt gedurende een periode die binnen elke week meerdere dagen kan beslaan. Dit is handig voor patronen die niet netjes binnen één dag passen.
Parameters:
startDay: Dag waarop de regel begint, bijvoorbeeld maandagstartTime: Tijd op de begindagendDay: Dag waarop de regel eindigtendTime: Tijd op de einddag
Voorbeeld: Een periode met hoge volumes van woensdag 14:00 tot vrijdag 12:00.
Elke maand
De regel geldt op specifieke dagen elke maand.
Parameters:
startDayOfMonth: Dag van de maand waarop de regel begint, 1-31startTime: Tijd op de begindagendDayOfMonth: Dag van de maand waarop de regel eindigtendTime: Tijd op de einddag
Voorbeeld: Drukke verwerking aan het einde van de maand, van de 25e om 08:00 tot de laatste dag om 23:59.
Elk jaar
De regel geldt op specifieke datums elk jaar.
Parameters:
startMonth: Maand waarin de regel begintstartDayOfMonth: Dag van de beginmaandstartTime: Tijd op de begindagendMonth: Maand waarin de regel eindigtendDayOfMonth: Dag van de eindmaandendTime: Tijd op de einddag
Voorbeeld: Piek in de retail rond de feestdagen, van 15 november om 00:00 tot 31 december om 23:59.
Vaste periode
De regel geldt gedurende een specifieke datum- en tijdsperiode, zonder herhaling. Gebruik dit voor eenmalige events.
Parameters:
startDateTime: Exacte begin- en einddatumendDateTime: Exacte einddatum en -tijd
Voorbeeld: Productlanceringsweek van 15 tot en met 22 maart 2025, met speciale verwerkingsregels.
Meerdere regels combineren
De kracht van periodiciteit zit in het combineren van meerdere regels. Je kunt verschillende parameters voor verschillende tijdscontexten definiëren. De simulatie bepaalt vervolgens op elk moment welke regel geldt.
Voorbeeld: verwerkingstijd met meerdere diensten
Neem een productieproces met verschillende verwerkingstijden per dienst:
| Regelnaam | Periodiciteit | Verwerkingstijdverdeling |
|---|---|---|
| Dagdienst | Elke werkdag, 08:00-16:00 | Normaal(30 min, 5 min) |
| Avonddienst | Elke werkdag, 16:00-00:00 | Normaal(45 min, 10 min) |
| Weekendploeg | Elke weekenddag, 10:00-18:00 | Normaal(60 min, 15 min) |
| Nacht/standaard | Standaard | Normaal(90 min, 20 min) |
De dagdienst is het snelst, met volledige bezetting en uitgeruste medewerkers. De avonddienst werkt trager door minder toezicht. In het weekend is de verwerking het langzaamst door de minimale bezetting. De standaardregel vangt de nachtelijke uren op.
Regelprioriteit
Wanneer meerdere regels mogelijk overeenkomen:
- Regels worden geëvalueerd in de volgorde waarin ze in je configuratie zijn gedefinieerd
- De eerste overeenkomende regel wordt gebruikt, de bovenste regel wint
- Standaard-regels komen alleen overeen wanneer geen andere regel geldt
Tip: zet specifieke regels boven algemene regels. Plaats “Elke werkdag” vóór “Elke dag” als werkdagen ander gedrag moeten hebben dan weekenden.
Waar je periodiciteit gebruikt
Je kunt periodiciteit op veel simulatieparameters toepassen:
| Parameter | Gebruik van periodiciteit |
|---|---|
| Case-aankomsten | Hogere aankomsttarieven tijdens kantooruren en lagere ’s nachts |
| Verwerkingstijden | Snellere verwerking bij volledige bezetting en tragere verwerking bij beperkte openingstijden |
| Broncapaciteit | Meer medewerkers tijdens piekuren en minimale bezetting ’s nachts |
| Overslaankansen | Andere routeringsregels in weekenden of op feestdagen |
| Gatewaykansen | Andere beslispatronen afhankelijk van het tijdstip van de dag |
Uitgewerkt voorbeeld: klantenservicecentrum
Dit realistische voorbeeld laat zien hoe periodiciteit in een simulatie van klantenservice op meerdere parameters werkt:
Configuratie van het aankomsttarief
| Periodiciteit | Aankomsttarief |
|---|---|
| Elke werkdag 09:00-18:00 | Poisson(50 per uur) |
| Elke werkdag 18:00-22:00 | Poisson(20 per uur) |
| Elke weekenddag 10:00-16:00 | Poisson(15 per uur) |
| Standaard | Poisson(5 per uur) |
Hoge volumes tijdens kantooruren, matige drukte in de avond en weinig aankomsten in het weekend en ’s nachts.
Configuratie van de verwerkingstijd
| Periodiciteit | Verdeling |
|---|---|
| Elke werkdag 09:00-17:00 | Driehoekig(10, 20, 45 min) |
| Elke weekenddag | Driehoekig(20, 40, 90 min) |
| Standaard | Driehoekig(30, 60, 120 min) |
De verwerking is het snelst bij maximale bezetting en trager in het weekend en buiten kantooruren.
Configuratie van de personeelscapaciteit
| Periodiciteit | Beschikbare medewerkers |
|---|---|
| Elke werkdag 09:00-18:00 | 10 medewerkers |
| Elke werkdag 18:00-22:00 | 4 medewerkers |
| Elke weekenddag 10:00-16:00 | 3 medewerkers |
| Standaard | 1 medewerker |
Volledige bezetting tijdens kantooruren en beperkte bezetting daarbuiten.
Hoe alles samenwerkt
Op dinsdag om 10:00 uur:
- Aankomsten gebruiken het tarief van 50 per uur
- De verwerking gebruikt de snelle driehoekige verdeling
- Er zijn 10 medewerkers beschikbaar
Op dinsdag om 20:00 uur:
- Het aantal aankomsten daalt naar 20 per uur
- De verwerking gebruikt de tragere standaardverdeling
- Er zijn slechts 4 medewerkers beschikbaar
Op zaterdag om 14:00 uur:
- Er zijn 15 aankomsten per uur
- De verwerking gebruikt de weekendverdeling
- Er zijn 3 medewerkers beschikbaar
Best practices
1. Begin met Standaard
Definieer altijd eerst je regel Standaard. Zo dek je alle momenten af die niet expliciet door andere regels worden behandeld.
2. Werk van algemeen naar specifiek
Begin met brede patronen, zoals werkdagen tegenover weekenden, en voeg daarna waar nodig specifiekere regels toe, bijvoorbeeld voor afzonderlijke diensten.
3. Houd het eerst eenvoudig
Begin met een eenvoudig onderscheid tussen werkdagen en weekenden voordat je details per uur of seizoen toevoegt. Je kunt later altijd meer complexiteit toevoegen.
4. Baseer patronen op data
Analyseer waar mogelijk historische data om werkelijke patronen te begrijpen. Bekijk aankomsttarieven, verwerkingstijden en bezetting per uur en per dag van de week.
5. Test uitzonderingssituaties
Controleer of je regels overgangsmomenten goed afhandelen:
- Wat gebeurt er precies om 17:00 wanneer de dienst wisselt?
- Wordt middernacht goed afgehandeld?
- Werken regels voor het einde van de maand in maanden met verschillende lengtes?
6. Documenteer je regels
Complexe periodiciteitsconfiguraties kunnen later lastig te begrijpen zijn. Leg vast waarom elke regel bestaat en welk bedrijfspatroon deze vertegenwoordigt.