Besliskunde College 3: Simulatie en Monte Carlo Methoden

Introductie tot Simulatie

  • Definitie van Simulatie: Simulatie is het nabootsen van werkelijke processen met behulp van een computer. Dit gebeurt vaak door middel van statistische kansberekeningen (stochastiek).

  • Toepassingsgebied: Het wordt vooral ingezet bij grote en complexe systemen waar directe experimenten in de werkelijkheid te duur, gevaarlijk of tijdrovend zouden zijn.

  • Status als Tool: Simulatie is een van de meest gebruikte kwantitatieve instrumenten voor systeemanalyse.

  • Software: Het is relatief eenvoudig te implementeren met moderne softwarepakketten zoals Excel, ARENA en PowerSim.

  • Voordeel t.o.v. Analytische Modellen: Simulatie is vaak veel makkelijker uit te voeren dan een puur wiskundige (analytische) analyse van een complex systeem.

Voorbeelden en Vergelijkingen

  • Wiskundig Raadsel (Oppervlakte): In het college wordt de vraag gesteld welke optie de meeste pizza oplevert:

    • Optie 1: Eén pizza met een diameter van 2cm2\,\text{cm} en één pizza met een diameter van 18cm18\,\text{cm}.

    • Optie 2: Twee pizza's met een diameter van 12cm12\,\text{cm}.

    • Context: Dit illustreert hoe kwantitatieve keuzes soms contra-intuïtief kunnen zijn.

  • Praktijkvoorbeelden:

    • Verkeerssimulatie (Traffic Simulation): Het tellen van voertuigen per cyclus om verkeersstromen te optimaliseren.

    • Windtunnels: Het testen van aerodynamica zonder een fysiek voertuig op de weg te hoeven testen.

    • Bedrijfsprocessen: Het simuleren van lopende banden (conveyors) en logistieke systemen.

Voor- en Nadelen van Simulatie

  • Voordelen:

    • Biedt een veilige omgeving om oplossingen te testen zonder werkelijke implementatie.

    • Geschikt voor gevoeligheidsanalyse (het effect van veranderende variabelen).

    • Kan zeer grote en complexe systemen aan waarvoor geen simpele formules bestaan.

    • Flexibel; er zijn minder strikte wiskundige aannames nodig.

    • Maakt uitgebreide "What-if"-analyses mogelijk.

  • Nadelen:

    • Het bouwen van een accuraat model voor een complex systeem kan moeilijk en kostbaar zijn.

    • Simulatie levert geen "optimale" oplossing (zoals lineair programmeren), maar is een proces van trial-and-error.

    • Elke simulatie is uniek; de resultaten van het ene probleem zijn niet zomaar overdraagbaar naar een ander probleem.

De "Flaw of Averages"

  • Concept: Het is een veelgemaakte fout om de verwachte uitkomst te berekenen door simpelweg gemiddelden in een formule in te vullen.

  • Voorbeeld Beslisprobleem:

    • Verwachte vraag = 3030.

    • Voorraad = 2525.

    • Prijs = 10euro10\,\text{euro}.

    • Formule Totale opbrengst = min(voorraad;vraag)×prijs\min(\text{voorraad}; \text{vraag}) \times \text{prijs}.

    • Foutieve berekening: min(25;30)×10=250euro\min(25; 30) \times 10 = 250\,\text{euro}.

    • Correcte berekening via kansverdeling:

      • Kansen: 0.10.1 bij vraag 1010, 0.20.2 bij vraag 2020, 0.30.3 bij vraag 3030, 0.40.4 bij vraag 4040.

      • Opbrengsten: 100100, 200200, 250250, 250250.

      • Verwachte Monetaire Waarde (EMV): (0.1×100)+(0.2×200)+(0.3×250)+(0.4×250)=10+40+75+100=225euro(0.1 \times 100) + (0.2 \times 200) + (0.3 \times 250) + (0.4 \times 250) = 10 + 40 + 75 + 100 = 225\,\text{euro}.

  • Conclusie: De prijs vermenigvuldigd met de gemiddelde vraag is niet gelijk aan de verwachte opbrengst (225250225 \neq 250). Gemiddelden verhullen de impact van variabiliteit.

Het Simulatieproces in 7 Stappen

  1. Definieer het probleem: Wat willen we onderzoeken?

  2. Introduceer variabelen: Maak onderscheid tussen beïnvloedbare variabelen (beslissingen) en niet-beïnvloedbare variabelen (onzekerheden).

  3. Construeer het simulatiemodel: Bepaal de logische samenhang.

  4. Specificeer input variabelen: Welke waarden en kansverdelingen gebruiken we?

  5. Voer de simulatie uit: Gebruik methoden zoals Monte Carlo.

  6. Analyseer resultaten: Bekijk de gemiddelden en de spreiding (risico).

  7. Selecteer de beste beslissing: Kies op basis van de analyse de optimale strategie.

Monte Carlo Simulatie

  • Kern: Een stochastische variabele wordt gesimuleerd door een willekeurige trekking uit een kansverdeling.

  • Toepassingen:

    • Aantal studenten in een collegezaal.

    • Servicetijd van monteurs.

    • Tussenkomsttijd tussen twee klantbezoeken.

    • Aantal zieke of afwezige werknemers.

  • Willekeurige Getallen: Willekeurig betekent dat er geen voorspelbaar patroon is.

  • Pseudo-willekeurige getallen: Volgens John von Neumann (1951) is het gebruik van rekenkundige methoden voor willekeur "zondig". Pseudo-random getallen worden gegenereerd via formules. Ze zijn herhaalbaar (periodiek), wat handig is voor "What-if"-analyses omdat je dezelfde scenario's met verschillende beslissingen kunt testen.

Monte Carlo Simulatie: Het 4-stappenplan

  1. Bepaal de kansverdeling: Identificeer hoe vaak elke uitkomst voorkomt.

  2. Bouw de cumulatieve kansverdeling: Tel de individuele kansen bij elkaar op.

  3. Kies intervallen: Koppel specifieke reeksen willekeurige getallen aan de uitkomsten.

  4. Genereer getallen: Voer de simulatie uit aan de hand van de gekozen intervallen.

Oefenopgave: Nederlandse Spoorwegen (NS)

  • Casus: Bepaal het verwachte aantal reizigers zonder zitplaats op een traject waar een trein met 130130 zitplaatsen rijdt.

  • Gegevens:

    • Reizigers 5050 (Kans 0.10.1), 100100 (Kans 0.40.4), 150150 (Kans 0.20.2), 200200 (Kans 0.30.3).

    • Trekkingen: 6666, 3737, 1212, 0505, 8888.

  • Intervallen (01-00):

    • 5050 reizigers: 011001-10

    • 100100 reizigers: 115011-50

    • 150150 reizigers: 517051-70

    • 200200 reizigers: 710071-00

  • Resultaten:

    • 6615066 \rightarrow 150 reizigers (tekort 2020)

    • 3710037 \rightarrow 100 reizigers (tekort 00)

    • 1210012 \rightarrow 100 reizigers (tekort 00)

    • 055005 \rightarrow 50 reizigers (tekort 00)

    • 8820088 \rightarrow 200 reizigers (tekort 7070)

  • Gemiddelden over 5 simulaties:

    • Verwacht aantal reizigers: 150+100+100+50+2005=120\frac{150+100+100+50+200}{5} = 120

    • Verwacht tekort: 20+0+0+0+705=18\frac{20+0+0+0+70}{5} = 18

Casus: Voorraadanalyse

  • Variabelen:

    • Onzeker (niet-beïnvloedbaar): Vraag per dag, Lead time (levertijd).

    • Beslissingen (beïnvloedbaar): Bestelgrootte (QQ), Bestelmoment (RR).

  • Doelstelling: Minimaliseren van de totale kosten (bestelkosten + voorraadkosten + nee-verkoopkosten).

  • Modeldetails:

    • Kosten eindvoorraad: 0.03euro0.03\,\text{euro} per eenheid per dag.

    • Boete nee-verkoop: 8euro8\,\text{euro} per eenheid.

    • Leveringskosten: 10euro10\,\text{euro} per order.

  • Input kansverdelingen (Vraag):

    • 00 (kans 0.050.05), 11 (0.10.1), 22 (0.20.2), 33 (0.40.4), 44 (0.150.15), 55 (0.10.1).

  • Input kansverdelingen (Lead time):

    • 11 dag (kans 0.20.2), 22 dagen (0.50.5), 33 dagen (0.30.3).

  • Analyse van 10 Dagen Simulatie:

    • Gemiddelde eindvoorraad: 4.14.1 per dag.

    • Gemiddelde nee-verkoop: 0.20.2 per dag.

    • Gemiddeld aantal orders: 0.30.3 per dag.

    • Totale gemiddelde kosten per dag: (4.1×0.03)+(0.2×8)+(0.3×10)=4.72euro(4.1 \times 0.03) + (0.2 \times 8) + (0.3 \times 10) = 4.72\,\text{euro}.

Verificatie versus Validatie

  • Verificatie: Gaat over de technische correctheid van het model. Is het model correct geïmplementeerd volgens de specificaties? "Did we build the model right?"

  • Validatie: Gaat over de aansluiting bij de werkelijkheid. Komt de output van het model overeen met wat we in de echte wereld zien? "Did we build the right model?"

  • Methode: Vergelijk de resultaten van het model met historische data waarbij de inputs hetzelfde waren.

Opmerkingen over computer-simulaties

  • Een simulatie van 10 dagen is veel te kort voor een betrouwbaar beeld.

  • In Excel kunnen met functies als =RAND() (of =ASELECT()) eenvoudig duizenden dagen worden gesimuleerd om een stabiel gemiddelde en een risicoprofiel te krijgen.

  • Verschillende bestelgrootten en bestelmomenten kunnen worden getest om de kosten te optimaliseren via een trial-and-error methode.