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.
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.