A Monte Carlo-szimuláció sok lehetséges bemenetet sorsol a megadott eloszlásokból, minden esetben kiszámítja az eredményt, majd összesíti a kapott értékeket. Segít megbecsülni például két bizonytalan időtartam összegét. A több ismétlés a szimuláció számszerű ingadozását csökkenti; a feladat tényleges bizonytalansága ettől megmarad.
Két feladat, egyértelmű feltételezésekkel
Szemléltető példánkban az előkészítés 2 és 4 óra, a feldolgozás 3 és 7 óra közötti időt vesz igénybe. Mindkét tartományon egyenletes eloszlást feltételezünk, a két időtartamot pedig függetlennek tekintjük. Az egyenletesség azt jelenti, hogy azonos hosszúságú résztartományokhoz azonos valószínűség tartozik.
A két munka egymás után fut, ezért egy szimulált eset teljes ideje:
T = A + B.
A legkisebb lehetséges összeg 2 + 3 = 5 óra, a legnagyobb 4 + 7 = 11 óra. Az összegek eloszlása már nem egyenletes: a szélső összeghez mindkét bemenetnek ugyanazon széle közelébe kell esnie.
A Monte Carlo-kalkulátorban két tételt adj meg, mindkettő eloszlása uniform legyen, rendre 2–4 és 3–7 határokkal. Az összesítésnél az összeget válaszd. A mode mező a háromszög-eloszlás móduszához tartozik; az egyenletes példában középértékként 3, illetve 5 szerepelhet, az eloszlást a két határ határozza meg.
Számold ki az elméleti ellenőrző értéket
Egy a és b közötti egyenletes eloszlás várható értéke (a + b) / 2, varianciája (b − a)² / 12. Ezeket a NIST egyenletes eloszlásról szóló leírása is megadja.
Az első feladat várható ideje 3 óra, a másodiké 5 óra. A teljes idő várható értéke 8 óra. Függetlenség mellett a varianciákat összeadjuk:
Var(T) = 2² / 12 + 4² / 12 = 20 / 12 = 5 / 3 óra².
A teljes idő szórása √(5 / 3) ≈ 1,291 óra. Ez a modell szerinti egyedi feladatösszegek szóródását jellemzi. Egy konkrét végrehajtás ideje a 8 órás várható értéktől jelentősen eltérhet.
Mi javul tízezer helyett negyvenezer ismétléssel?
Független ismétlések átlagának Monte Carlo-standardhibája:
SE = σ / √N.
Itt N a szimulált esetek száma, σ az egyedi kimenet szórása. Ha σ ismeretlen, a szimulált eredményekből becsült szórást használjuk. A módszer és az ismétlésszám kapcsolata Mike Giles oxfordi egyetemi jegyzetében követhető.
A saját modellünkben 10 000 ismétlésnél az elméleti standardhiba 1,290994 / 100 ≈ 0,01291 óra, vagyis 0,775 perc. 40 000 ismétlésnél körülbelül 0,006455 óra, azaz 0,387 perc. Négyszer annyi eset az átlagbecslés standardhibáját felezi. A feladatösszegek 1,291 órás szórása közben nem feleződik meg.
Ezek elméleti ellenőrző számok, nem egy állítólagosan lefuttatott szimuláció eredményei. A kalkulátor egy futásban kapott átlaga kis mértékben eltérhet a 8 órától.
Előbb válassz pontosságot, aztán ismétlésszámot
A standardhiba képletét N-re rendezve N ≥ σ² / SE². Az eredményt egész ismétlésre felfelé kerekítjük. Ebben a modellben σ² = 5/3 óra². Ha az átlagbecslés kívánt standardhibája legfeljebb fél perc, azt előbb órára váltjuk: 0,5 / 60 = 1/120 óra.
N ≥ (5/3) / (1/120)² = 24 000.
| Kívánt standardhiba | Ugyanez órában | Szükséges ismétlésszám a modellben |
|---|---|---|
| 1 perc | 1/60 óra | 6 000 |
| 0,5 perc | 1/120 óra | 24 000 |
| 0,25 perc | 1/240 óra | 96 000 |
A standardhiba a becsült átlag ismételt futások közötti szórását írja le. A félperces érték nem garantálja, hogy minden futás átlaga fél percen belül lesz, és nem egy 95%-os intervallum fél szélessége. A konkrét feladat időtartama továbbra is órás nagyságrendben szóródik.
Az előre választott tűrés segít eldönteni, indokolt-e még több számítás. Ha a döntésed félperces standardhibával már stabil, a negyedperces cél négyszeres munkát kér. Más modellnél előbb annak szórását becsüld meg; a 24 000-es szám nem általános Monte Carlo-beállítás.
Ritka eseménynél más pontossági kérdést tegyél fel
Ha az átlag helyett egy ritka határátlépés valószínűségét keresed, a találatokat kell számolni. Tételezzünk fel szemléltetésként olyan futási eredményt, amelyben 10 000 független szimulált esetből egyetlen találat sincs. A megfigyelt arány nulla, de ebből nem következik, hogy a modellben az esemény lehetetlen.
A nulla találat valószínűsége egy rögzített p eseményesély mellett (1 − p)ᴺ. Ezt 0,05-tel egyenlővé téve az egzakt, egyoldali 95%-os felső konfidenciahatár p_felső = 1 − 0,05^(1/N). Tízezer esetnél ez körülbelül 0,00029953, azaz 0,029953%. Az egzakt binomiális határok elvét a NIST leírása ismerteti. A határ a választott szimulációs modell p eseményesélyére vonatkozik. Hibás bemeneti eloszlás vagy kihagyott együttmozgás esetén a valós folyamat kockázata ettől eltérhet; ezt a szimulált esetek számából kapott határ nem fedezi.
Ha a valódi modellesély 0,01%, legalább egy esemény 95%-os valószínűségű megfigyeléséhez N ≥ ln(0,05)/ln(0,9999), egészre felfelé kerekítve 29 956 ismétlés kell. Ez észlelési cél, nem pontos valószínűségbecslés. A jó átlagstandardhiba ezért önmagában nem igazolja a ritka kimenetelek megfelelő feltárását.
A modellválasztás nagyobb eltérést is okozhat
Ha a két feladat egyszerre indul és párhuzamosan végezhető, az összeg helyett a maximum írja le az elkészülési időt. Ehhez a kalkulátor külön összesítési módot kínál. A várható maximumot ne helyettesítsd automatikusan a két várható érték maximumával.
Ha ugyanaz a körülmény mindkét munkát lassítja, a függetlenségi feltevés gyenge lehet. Több sorsolás ezt nem javítja ki. Előbb az együttmozgást és a választott minimum–maximum tartományokat vizsgáld meg.
A beállításokkal együtt mentsd el a véletlengenerátor magját és az ismétlésszámot: azonos maggal és azonos modellel megismételhető a számítás. Más maggal futtatva az átlag kisebb ingadozását ellenőrizheted. Ha a döntésedet ez az ingadozás is megváltoztatja, még több ismétlésre vagy pontosabban meghatározott döntési határra van szükséged.
Záró tudáspróba
Kérdésenként egy választ jelölj meg, majd a megoldások alapján pontozd magad. Ez a három kérdés a cikkben bemutatott összefüggéseket ellenőrzi.
1. A két független egyenletes idő A = 2–4 óra és B = 3–7 óra. Mekkora az egymás után végzett munkák összidejének várható értéke és varianciája?
- A) 5 óra és 5/3 óra².
- B) 8 óra és 5/3 óra².
- C) 8 óra és 6 óra².
2. A tízezres szimulációt negyvenezer független esetre emeled. Mi feleződik azonos modellben?
- A) Az átlagbecslés Monte Carlo-standardhibája.
- B) A modellben szereplő feladatok várható időtartama.
- C) Az egyedi végrehajtási idő szórása.
3. Tízezer független esetben nincs ritka esemény. Mit állíthatsz a cikkben használt egzakt, egyoldali 95%-os eljárással?
- A) A valós folyamat kockázata biztosan nulla akkor is, ha hibás a modell.
- B) A modellesély felső konfidenciahatára körülbelül 0,029953%; a nulla esély nem bizonyított.
- C) Az esemény biztosan lehetetlen.
Megoldások és pontozás
1. B. A két várható érték 3 és 5 óra. A független idők varianciája összeadódik: 2²/12 + 4²/12 = 5/3 óra². Ismétléshez: Számold ki az elméleti ellenőrző értéket.
2. A. A standardhiba σ/√N; négyszeres N kétszeres nevezőt ad. Az egyedi kimenetek modell szerinti szóródása változatlan. Ismétléshez: Mi javul tízezer helyett negyvenezer ismétléssel?.
3. B. A felső határ 1 − 0,05^(1/10 000). Ez a megadott szimulációs modell esélyére vonatkozó eljárás; a modellhibát külön kell kezelni. Ismétléshez: Ritka eseménynél más pontossági kérdést tegyél fel.
Minden helyes válasz 1 pont; a hibás vagy kihagyott válasz 0 pont. Az összpontszám 0–3 lehet.
- 0 pont: dolgozd végig újra a három megoldásban megjelölt részt, és írd le a példák kiinduló feltételeit.
- 1 pont: a két elhibázott kérdésnél vezesd le a helyes választ; külön írd mellé, melyik feltétel vagy számolási lépés maradt ki.
- 2 pont: térj vissza az egyetlen elhibázott kérdéshez kapcsolt részhez, majd egy bemenet megváltoztatásával ellenőrizd újra az eredményt.
- 3 pont: a három összefüggést ebben a feladatsorban helyesen alkalmaztad. Próbáld ki a cikk egyik ellenőrzését saját adatokkal, a feltételeket és a mértékegységeket is feljegyezve.