Monte Carlo valemite staatilise modelleerimise meetod. Kuidas Monte Carlo simulatsiooni tehakse. Objekti-mudeli suhetes pole mõisteid

Entsüklopeediline YouTube

    1 / 5

    ✪ RuleOfthumb – Monte Carlo meetod

    ✪ Dmitri Kazakov – kvargid

    ✪ [Kollokvium]: matemaatiliste meetodite sära ja vaesus rakendusuuringutes

    ✪ 1. loeng: Arvutusvead

    ✪ Elena Brown – müüt Richard lll

    Subtiitrid

Lugu

Buffoni algoritm Pi määramiseks

Visete arv Ristmike arv Nõela pikkus Ridade vaheline kaugus Pöörlemine Pi väärtus Viga
Esimene katse 500 236 3 4 puudub 3.1780 +3,6⋅10 -2
Teine katse 530 253 3 4 kohal 3.1423 +7,0⋅10 -4
Kolmas katse 590 939 5 2 kohal 3.1416 +4,7⋅10 -5

Kommentaarid:

Stohhastiliste protsesside ja diferentsiaalvõrrandite vaheline seos

Stohhastiliste meetodite matemaatilise aparaadi loomine algas 19. sajandi lõpus. 1899. aastal näitas lord Rayleigh, et ühemõõtmeline juhuslik jalutuskäik lõpmatul võrel võib anda ligikaudse lahenduse teatud tüüpi paraboolsele diferentsiaalvõrrandile. Andrei Nikolajevitš Kolmogorov andis 1931. aastal suure tõuke stohhastiliste lähenemisviiside väljatöötamisele erinevate matemaatiliste probleemide lahendamisel, kuna ta suutis tõestada, et Markovi ahelad on seotud teatud integro-diferentsiaalvõrranditega. 1933. aastal näitas Ivan Georgievitš Petrovski, et Markovi ahelat moodustav juhuslik jalutuskäik on asümptootiliselt seotud elliptilise osadiferentsiaalvõrrandi lahendusega. Pärast neid avastusi sai selgeks, et stohhastilisi protsesse saab kirjeldada diferentsiaalvõrranditega ja vastavalt uurida, kasutades nende võrrandite lahendamiseks tol ajal hästi väljatöötatud matemaatilisi meetodeid.

Monte Carlo meetodi sünd Los Alamoses

Idee töötas välja Ulam, kes haigusest taastudes pasjanssi mängides mõtles, milline on tõenäosus, et pasjanssimäng õnnestub. Selle asemel, et kasutada selliste probleemide puhul tavalisi kombinatoorika kaalutlusi, soovitas Ulam, et katse võiks lihtsalt teha mitu korda ja edukate tulemuste arvu loendamisel hinnata tõenäosust. Samuti tegi ta ettepaneku kasutada Monte Carlo arvutusteks arvuteid.

Esimeste elektrooniliste arvutite tulek, mis suutsid suurel kiirusel genereerida pseudojuhuslikke numbreid, laiendas järsult probleemide hulka, mille puhul stohhastiline lähenemine osutus teistest matemaatilistest meetoditest tõhusamaks. Pärast seda toimus suur läbimurre ja Monte Carlo meetodit kasutati paljudes probleemides, kuid selle kasutamine ei olnud alati õigustatud, kuna etteantud täpsusega vastuse saamiseks oli vaja palju arvutusi.

Monte Carlo meetodi sünniaastaks loetakse aastat 1949, mil ilmus Metropolise ja Ulami artikkel “Monte Carlo meetod”. Meetodi nimi tuleneb Monaco Vürstiriigi kommuuni nimest, mis on laialt tuntud oma arvukate kasiinode poolest, kuna rulett on üks tuntumaid juhuslike arvude generaatoreid. Stanislaw Ulam kirjutab oma autobiograafias "Matemaatiku seiklused", et selle nime pakkus välja Nicholas Metropolis oma onu auks, kes oli mängur.

Edasine areng ja kaasaegsus

Monte Carlo integratsioon

Oletame, et peame võtma mõne funktsiooni integraali. Kasutame integraali mitteametlikku geomeetrilist kirjeldust ja mõistame seda selle funktsiooni graafiku all oleva alana.

Selle ala määramiseks võite kasutada üht tavalist numbrilise integreerimise meetodit: jagada segment alamsegmentideks, arvutada igaühel neist funktsiooni graafiku alune pindala ja liita. Oletame, et joonisel 2 kujutatud funktsiooni jaoks piisab selle jagamisest 25 segmendiks ja seega 25 funktsiooni väärtuse arvutamiseks. Kujutagem nüüd ette, et meil on tegemist n (\displaystyle n)- mõõtmete funktsioon. Siis vajame 25 n (\displaystyle 25^(n)) segmendid ja sama palju funktsiooni väärtuse arvutusi. Kui funktsiooni mõõde on suurem kui 10, muutub probleem tohutuks. Kuna kõrgdimensioonilised ruumid esinevad eelkõige stringiteooria ülesannetes, aga ka paljudes teistes füüsikalistes probleemides, kus on mitme vabadusastmega süsteeme, on vaja lahendusmeetodit, mille arvutuslik keerukus ei sõltuks nii tugevalt dimensioon. Just see omadus on Monte Carlo meetodil.

Tavapärane Monte Carlo integratsioonialgoritm

Oletame, et peame arvutama kindel integraal ∫ a b f (x) d x (\displaystyle \int \limits _(a)^(b)f(x)\,dx)

Mõelge juhuslikule muutujale u (\displaystyle u), jaotatud ühtlaselt integreerimisintervallile. Siis on see ka juhuslik suurus ja selle matemaatiline ootus on väljendatud kujul
E f (u) = ∫ a b f (x) φ (x) d x (\displaystyle \mathbb (E) f(u)=\int \limits _(a)^(b)f(x)\varphi (x) \,dx), Kus φ (x) (\displaystyle \varphi (x))- jaotustihedus juhuslik muutuja u (\displaystyle u), võrdne 1 b − a (\displaystyle (\frac (1)(b-a))) Asukoht sisse lülitatud [a, b] (\displaystyle).

Seega väljendatakse vajalik integraal kujul
∫ a b f (x) d x = (b − a) E f (u) (\displaystyle \int \limits _(a)^(b)f(x)\,dx=(b-a)\mathbb (E) f( u)).

Kuid juhusliku suuruse matemaatiline ootus f (u) (\displaystyle f(u)) saab hõlpsasti hinnata, simuleerides seda juhuslikku muutujat ja arvutades valimi keskmise.

Niisiis, lõpetame N (\displaystyle N) punktid ühtlaselt jaotatud [a, b] (\displaystyle), iga punkti kohta u i (\displaystyle u_(i)) arvutama f (u i) (\displaystyle f(u_(i))). Seejärel arvutame valimi keskmise: 1 N ∑ i = 1 N f (u i) (\displaystyle (\frac (1) (N))\sum _(i=1)^(N)f(u_(i))).

Selle tulemusena saame integraali hinnangu: ∫ a b f (x) d x ≈ b − a N ∑ i = 1 N f (u i) (\displaystyle \int \limits _(a)^(b)f(x)\,dx\approx (\frac (b-a) (N))\summa _(i=1)^(N)f(u_(i)))

Hinnangu täpsus sõltub ainult punktide arvust N (\displaystyle N).

Sellel meetodil on ka geomeetriline tõlgendus. See on väga sarnane ülalkirjeldatud deterministlikule meetodile, selle erinevusega, et integreerimispiirkonna ühtlaselt väikesteks intervallideks jagamise ja saadud “tulbade” alade summeerimise asemel viskame integratsioonipiirkonda juhuslikud punktid, millest igaühel ehitada sama "veerg", määrates selle laiuse Kuidas b − a N (\displaystyle (\frac (b-a)(N))) ja võta nende alad kokku.

Geomeetriline Monte Carlo integreerimisalgoritm

Funktsiooni graafiku all oleva ala määramiseks võite kasutada järgmist stohhastilist algoritmi:

Integreeritava funktsiooni väikese arvu mõõtmete puhul on Monte Carlo integratsiooni jõudlus palju madalam kui deterministlike meetodite jõudlus. Kuid mõnel juhul, kui funktsioon on täpsustatud kaudselt ja on vaja määrata kompleksvõrratuse kujul määratud piirkond, võib stohhastiline meetod olla eelistatavam.

Olulisuse valimi kasutamine

Sama arvu juhuslike punktide korral saab arvutuste täpsust tõsta, viies soovitud funktsiooni piirava ala funktsioonile endale lähemale. Selleks on vaja kasutada juhuslikke muutujaid jaotusega, mille kuju on võimalikult lähedane integreeritava funktsiooni kujundile. See on Monte Carlo arvutuste ühe konvergentsi parandamise meetodi – olulisuse valimi – aluseks.

Optimeerimine

Optimeerimisülesannete lahendamiseks saab kasutada Monte Carlo meetodi variatsioone. Näiteks simuleeritud lõõmutamisalgoritm.

Rakendus füüsikas

Arvutimodelleerimine mängib kaasaegses füüsikas olulist rolli ja Monte Carlo meetod on paljudes valdkondades üks levinumaid alates aastast. kvantfüüsika tahkisfüüsikasse, plasmafüüsikasse ja astrofüüsikasse.

Metropoli algoritm

Traditsiooniliselt on Monte Carlo meetodit kasutatud termodünaamilises tasakaalus olevate süsteemide erinevate füüsikaliste parameetrite määramiseks. Oletame, et füüsilise süsteemi võimalike olekute hulk on olemas S (\displaystyle S). Keskmise väärtuse määramiseks A ¯ (\displaystyle (\ülejoon (A))) mingi suurus A (\displaystyle A) tuleb välja arvutada A ¯ = ∑ S A (S) P (S) (\displaystyle (\overline (A))=\sum _(S)A(S)P(S)), kus summeerimine toimub kõigi olekute üle S (\displaystyle S) alates W (S) (\displaystyle W(S)), P (S) (\displaystyle P(S))- oleku tõenäosus S (\displaystyle S).

Dünaamiline (kineetiline) koostis

Otsene Monte Carlo simulatsioon

Mis tahes füüsilise protsessi otsene Monte Carlo modelleerimine hõlmab füüsilise süsteemi üksikute elementaarsete osade käitumise modelleerimist. Sisuliselt on see otsene modelleerimine lähedane probleemi lahendamisele esimestest põhimõtetest, kuid tavaliselt on arvutuste kiirendamiseks lubatud kasutada mõningaid füüsikalisi lähendusi. Näitena võib tuua erinevate protsesside arvutamise molekulaardünaamika meetodil: ühelt poolt kirjeldatakse süsteemi selle elementaarkomponentide käitumise kaudu, teisalt on kasutatav interaktsioonipotentsiaal sageli empiiriline.

Näited otsesest Monte Carlo simulatsioonist:

  • Kiirituse simulatsioon tahked ained ioonid kahendkokkupõrke lähenduses.
  • Haruldaste gaaside otsene Monte Carlo simulatsioon.
  • Enamik kineetilisi Monte Carlo mudeleid on otsesed (eelkõige molekulaarkiire epitaksia uurimine).

Kvant-Monte Carlo meetod

Kvant-Monte Carlo meetodit kasutatakse laialdaselt keerukate molekulide ja tahkete ainete uurimiseks. See nimi ühendab mitu erinevat meetodit. Esimene neist on variatsiooniline Monte Carlo meetod, mis sisuliselt kujutab endast Schrödingeri võrrandi lahendamisel tekkivate mitmemõõtmeliste integraalide arvulist integreerimist. 1000 elektroni hõlmava ülesande lahendamine eeldab 3000-mõõtmeliste integraalide võtmist ja selliste ülesannete lahendamiseks on Monte Carlo meetodil teiste arvulise integreerimise meetodite ees tohutu jõudluse eelis. Monte Carlo meetodi teine ​​variatsioon on difusioon Monte Carlo meetod.

5. loeng.

Monte Carlo meetod

3. teema. Protsessid järjekorras seismine majandussüsteemides

1. Sissejuhatavad märkused. 1

2. Monte Carlo meetodi üldskeem. 2

3. Näide järjekorrasüsteemi arvutamisest Monte Carlo meetodil. 4

Testi küsimused... 5

1. Sissejuhatavad märkused

Statistilise modelleerimise meetod arvutis on peamine tulemuste saamise meetod stohhastiliste süsteemide simulatsioonimudelite abil, kasutades teoreetilise alusena tõenäosusteooria piirteoreeme. Aluseks on Monte Carlo statistiline katsemeetod.

Monte Carlo meetodit võib defineerida kui juhuslike suuruste simuleerimise meetodit, et arvutada nende jaotuste tunnuseid. Reeglina eeldatakse, et modelleerimine toimub elektrooniliste arvutite (arvutite) abil, kuigi mõnel juhul võib edu saavutada selliste seadmete abil nagu mõõdulint, pliiats ja paber.

Mõiste "Monte Carlo meetod" (kasutanud J. von Neumann ja 1940. aastatel) viitab protsesside simuleerimisele juhuslike arvude generaatori abil. Termin Monte Carlo (linn, mis on laialt tuntud oma kasiinode poolest) tuleneb asjaolust, et "koefitsientide arvu" (Monte Carlo simulatsioonitehnikad) kasutati keerukate võrrandite integraalide leidmiseks esimese tuumapommid(kvantmehaanika integraalid). Genereerides suuri juhuslike arvude valimeid näiteks mitmest jaotusest, saab nende (keeruliste) jaotuste integraale aproksimeerida (genereeritud) andmete põhjal.


Juhuslike nähtuste kasutamise idee tekkimist ligikaudsete arvutuste valdkonnas seostatakse tavaliselt 1878. aastaga, mil ilmus Halli töö arvude p määramiseks, visates juhuslikult nõela paralleelsete joontega tähistatud paberile. Asja olemus on katseliselt reprodutseerida sündmus, mille tõenäosus väljendub arvu p kaudu, ja selle tõenäosuse ligikaudne hindamine.

Kodused tööd Monte Carlo meetodi kohta ilmusid aastatel. Kahe aastakümne jooksul on kogunenud ulatuslik Monte Carlo meetodil kasutav bibliograafia, mis sisaldab enam kui 2000 nimetust. Veelgi enam, isegi kiire pilk teoste pealkirjadele võimaldab teha järelduse Monte Carlo meetodi rakendatavuse kohta lahendamisel. rakendatud probleemid alates suur number teaduse ja tehnoloogia valdkondades.

Esialgu kasutati Monte Carlo meetodit peamiselt neutronfüüsika probleemide lahendamiseks, kus traditsioonilistest numbrilistest meetoditest osutus vähe kasu. Lisaks levis tema mõju paljudele statistilise füüsika probleemidele, mis olid sisult väga erinevad. Teadusharud, kus Monte Carlo meetodit üha enam kasutatakse, hõlmavad probleeme järjekorra teoorias, probleeme mänguteoorias ja matemaatilises ökonoomikas, probleeme sõnumi edastamise teoorias häirete olemasolul ja mitmeid teisi.

Monte Carlo meetodil on olnud ja on ka edaspidi oluline mõju arvutusmatemaatika meetodi arengule (näiteks numbrilise integreerimise meetodite väljatöötamisele) ning paljude probleemide lahendamisel kombineeritakse see edukalt teiste arvutusmeetoditega ja täiendab neid. . Selle kasutamine on õigustatud eelkõige nendes probleemides, mis võimaldavad tõenäosusteoreetilist kirjeldamist. Seda seletatakse nii kindla etteantud tõenäosusega vastuse saamise loomulikkusega tõenäolise sisuga ülesannetes kui ka lahendusprotseduuri olulise lihtsustumisega. Konkreetse probleemi lahendamise raskused arvutis on suurel määral määratud selle tõlkimise raskusega masina "keelde". Automaatsete programmeerimiskeelte loomine on selle töö üht etappi oluliselt lihtsustanud. Seetõttu on praegu kõige keerulisemad etapid: uuritava nähtuse matemaatiline kirjeldamine, ülesande vajalikud lihtsustused, sobiva numbrilise meetodi valik, selle vea uurimine ja algoritmi fikseerimine. Juhtudel, kui probleemile on olemas tõenäosusteoreetiline kirjeldus, võib Monte Carlo meetodi kasutamine mainitud vaheetappe oluliselt lihtsustada. Kuid nagu järgnevast tuleneb, on paljudel juhtudel kasulik ka rangelt deterministlike probleemide puhul koostada tõenäosusmudel (algne probleem juhuslikult), et Monte Carlo meetodit edasi kasutada.

2. Monte Carlo meetodi üldskeem

Oletame, et peame arvutama mingi tundmatu suuruse m ja me tahame seda teha, võttes arvesse juhuslikku muutujat, mille matemaatiline ootus on M = m. Olgu selle juhusliku suuruse dispersioon D = b.

Vaatleme N juhuslikku sõltumatut muutujat,,..., mille jaotused langevad kokku vaadeldava juhusliku suuruse jaotusega ξ..gif" width="247" height="48">

Viimase seose saab ümber kirjutada kui

Saadud valem annab meetodi m arvutamiseks ja selle meetodi vea hinnangu.

Monte Carlo meetodi kasutamise olemus seisneb tulemuste määramises kindla otsuse tegemise ajal saadud statistika põhjal.

Näiteks. Olgu E1 ja E2 mingi juhusliku protsessi ainsad kaks võimalikku teostust ning p1 on tulemuse E1 tõenäosus ja p2 = 1 – p1 on tulemuse E2 tõenäosus. Et teha kindlaks, kumb kahest sündmusest, e1 või E2, sel juhul toimub, võtame intervallis 0 ja 1 juhusliku arvu, mis on intervallis (0, 1) ühtlaselt jaotunud, ja sooritame testi. Tulemus E1 ilmneb, kui , ja tulemus E2 ilmneb muidu.

Seega määrab Monte Carlo meetodil saadud tulemuste usaldusväärsuse otsustavalt juhuslike arvude generaatori kvaliteet.

Juhuslike arvude saamiseks arvutis kasutatakse genereerimismeetodeid, mis põhinevad tavaliselt teatud toimingu mitmekordsel kordamisel. Sel viisil saadud jada nimetatakse õigemini pseudojuhuslikeks numbriteks, kuna genereeritud jada on perioodiline ja alates teatud hetkest hakkavad numbrid korduma. See tuleneb sellest, et arvutikoodi saab kirjutada ainult lõplikku arvu erinevad numbrid. Järelikult langeb lõpuks üks genereeritud arvudest γ1 kokku jada γL ühe eelmise liikmega. Ja kuna genereerimine toimub vormi valemi järgi


γк+1 = F(γk),

sellest hetkest korratakse jada ülejäänud liikmeid.

Monte Carlo simulatsiooni aluseks on ühtlaselt jaotatud juhuslike arvude kasutamine. Võime öelda, et kui teatud juhuslik suurus määrati Monte Carlo meetodil, siis selle arvutamiseks kasutati ühtlaselt jaotatud juhuslike arvude jada.

Ühtlaselt jaotatud juhuslikud arvud jäävad vahemikku 0 kuni 1 ja valitakse juhuslikult vastavalt jaotusfunktsioonile

F(x) = Рr(Х< х} = х, .

Selle jaotuse korral on juhusliku suuruse mis tahes väärtuste esinemine vahemikus (0, 1) võrdselt usutav. Siin Pr(X< х} - вероятность того, что случайная величина X примет значение меньше х.

Juhuslike arvude saamise peamine meetod on nende moodulgenereerimine. Olgu m, a, c, x0 täisarvud nii, et m > x0 ja a, c, x0 > 0. Pseudojuhuslik arv xi järjestusest (xi) saadakse kordusseost kasutades

xi = a xi-1 + c (mod m).

Loodud arvude stohhastilised omadused sõltuvad otsustavalt m, a ja c valikust. Nende halb valik viib Monte Carlo simulatsioonides ekslike tulemusteni.

Numbrilised simulatsioonid nõuavad sageli suurt hulka juhuslikke arve. Seetõttu peab genereeritud juhuslike arvude jada periood, mille järel jada hakkab korduma, olema üsna suur. See peab olema oluliselt suurem modelleerimiseks vajalike juhuslike arvude arvust, vastasel juhul moonutatakse saadud tulemusi.

Enamik arvuteid ja tarkvarapakette sisaldavad juhuslike arvude generaatorit. Enamik statistilisi teste näitavad siiski korrelatsiooni saadud juhuslike arvude vahel.

Iga generaatori kontrollimiseks on olemas kiire test. Juhuslike arvude generaatori kvaliteeti saab demonstreerida täiesti d-mõõtmelise võre täitmisega (näiteks kahe- või kolmemõõtmelise). Hea generaator peaks täitma kogu hüperkuubi ruumi.

Teine ligikaudne viis N juhusliku arvu xi jaotuse ühtluse kontrollimiseks on arvutada nende matemaatiline ootus ja dispersioon. Selle kriteeriumi kohaselt peavad ühtlaseks jaotamiseks olema täidetud järgmised tingimused:

On palju statistilisi teste, mille abil saab kontrollida, kas jada on juhuslik. Spektrikriteeriumit peetakse kõige täpsemaks. Näiteks väga levinud kriteerium, mida nimetatakse KS-kriteeriumiks või Kolmogorovi-Smirnovi kriteeriumiks. Kontroll näitab, et näiteks Exceli tabelite juhuslike arvude generaator ei vasta sellele kriteeriumile.

Praktikas on peamine probleem lihtsa ja usaldusväärse juhuslike arvude generaatori koostamine, mida saate oma programmides kasutada. Selleks soovitatakse järgmist protseduuri.

Programmi alguses omistatakse kogu muutujale X teatud väärtus X0. Seejärel genereeritakse reegli järgi juhuslikud arvud

X = (aX + c) mod m. (1)

Parameetrite valimisel tuleks järgida järgmisi põhiprintsiipe.

1. Algarvu X0 saab valida meelevaldselt. Kui programmi kasutatakse mitu korda ja iga kord on vaja erinevaid juhuslike arvude allikaid, saab näiteks X0-le määrata eelmises jooksus viimati saadud X-i väärtuse.

2. Arv m peab olema suur, näiteks 230 (kuna just see arv määrab genereeritud pseudojuhusliku jada perioodi).

3.Kui m on kahe aste, vali selline, et a mod8 = 5. Kui m on kümne aste, vali selline, et a mod10 = 21. See valik tagab, et juhuslike arvude generaator toodab kõik m võimalikku väärtust, enne kui need hakkavad kordama.

4.Korrutaja A eelistatud valik on vahemikus 0,01–0,99 m ja selle kahend- või kümnendnumbrid ei tohiks olla lihtsa korrapärase struktuuriga. Kordaja peab läbima spektraalkriteeriumi ja eelistatavalt ka mitmed muud kriteeriumid.

5. Kui a on hea kordaja, c väärtus ei ole oluline, välja arvatud see, et c-l ei tohiks olla m-ga ühist kordajat, kui m on arvutisõna suurus. Võite näiteks valida c = 1 või c = a.

6. Saate genereerida mitte rohkem kui m/1000 juhuslikku arvu. Pärast seda tuleb kasutada uut ahelat, näiteks uut kordajat A.

Loetletud reeglid puudutavad peamiselt masinprogrammeerimiskeelt. Programmeerimiskeele jaoks kõrge tase, näiteks C++, kasutatakse sageli teist võimalust (1): valitakse algarv m, mis on lähedane suurimale kergesti arvutatavale täisarvule, a väärtus määratakse võrdseks m antituletise juurega ja c võetakse võrdseks null. Näiteks võite võtta a= 48271 ja t =

3. Näide järjekorrasüsteemi arvutamisest Monte Carlo meetodil

Mõelgem kõige lihtsam süsteem järjekorrateenus (QS), mis koosneb n reast (muidu nimetatakse kanaliteks või teeninduspunktideks). Suvalistel aegadel võetakse süsteemi vastu päringuid. Iga taotlus saabub liinile nr 1. Kui ilmumise Tk vastuvõtmise hetkel on see liin vaba, siis taotlust teenindatakse ajal t3 (liini hõivatud aeg). Kui liin on hõivatud, kantakse päring koheselt liinile nr 2 jne. Kui kõik n rida on hetkel hõivatud, väljastab süsteem keeldumise.

Loomulik ülesanne on määrata kindlaks antud süsteemi omadused, mille järgi saab hinnata selle tõhusust: keskmine teenuse ooteaeg, süsteemi seisaku protsent, keskmine järjekorra pikkus jne.

Selliste süsteemide puhul on praktiliselt ainus arvutusmeetod Monte Carlo meetod.

https://pandia.ru/text/78/241/images/image013_34.gif" width="373" height="257">

Juhuslike arvude saamiseks arvutis kasutatakse algoritme, mistõttu selliseid jadasid, mis on sisuliselt deterministlikud, nimetatakse pseudojuhuslikeks. Arvuti töötab n-bitiste arvudega, seetõttu kasutatakse intervalli (0,1) ühtlase juhusliku arvu pideva kogumise asemel arvutis 2n sama intervalliga juhusliku arvu diskreetset jada - jaotusseadust sellist diskreetset jada nimetatakse kvaasiühtlaseks jaotuseks.

Nõuded ideaalsele juhuslike arvude generaatorile:

1. Jada peab koosnema peaaegu ühtlaselt jaotatud arvudest.

2. Numbrid peavad olema sõltumatud.

3. Juhuslikud arvujadad peavad olema reprodutseeritavad.

4. Jadadel peavad olema mittekorduvad numbrid.

5. Jadad tuleks saada minimaalsete arvutusressurssidega.

Suurim rakendus arvutimodelleerimise praktikas pseudojuhuslike arvude jadade genereerimiseks on järgmisel kujul:

mis on esimest järku korduvad suhted.

Näiteks. x0 = 0,2152, (x0)2 = 0, x1 = 0,6311, (x1)2 = 0, x2 = 0,8287 jne.

Selliste meetodite puuduseks on korrelatsiooni olemasolu jada numbrite vahel ja mõnikord pole juhuslikkust üldse, näiteks:

x0 = 0,4500, (x0)2 = 0, x1 = 0,2500, (x1)2 = 0, x2 = 0,2500 jne.

Kongruentsed protseduurid pseudojuhuslike järjestuste genereerimiseks on laialt levinud.

Kaks täisarvu a ja b on kongruentsed (võrreldavad) moodul m, kus m on täisarv, siis ja ainult siis, kui on olemas täisarv k, nii et a-b=km.

1984º4 (mod 10), 5008º8 (mod 103).

Enamik kongruentse juhusliku arvu genereerimise protseduure põhinevad järgmisel valemil:

kus on mittenegatiivsed täisarvud.

Kasutades jada (Xi) täisarve, saame konstrueerida jada (xi)=(Xi/M) ratsionaalsed arvudühiku intervallist (0,1).

Enne modelleerimist peavad kasutatavad juhuslike arvude generaatorid läbima põhjaliku eeltesti saadud juhuslike arvude jadade ühtluse, stohhastilisuse ja sõltumatuse osas.

Juhuslike arvujadade kvaliteedi parandamise meetodid:

1. Kasutades korduvaid valemeid järjekorras r:

Kuid selle meetodi kasutamine suurendab arvude saamiseks ressursside arvutamise kulusid.

2. Häirimismeetod:

.

5. Süsteemidele avalduvate juhuslike mõjude modelleerimine

1. Tuleb rakendada juhuslik sündmus A, mis esineb etteantud tõenäosusega p. Defineerime A kui sündmust, mille korral intervallile (0,1) ühtlaselt jaotatud juhusliku suuruse valitud väärtus xi rahuldab ebavõrdsust:

Siis on sündmuse A tõenäosus https://pandia.ru/text/78/241/images/image019_31.gif" width="103" height="25">,

Testi simulatsiooniprotseduur koosneb sel juhul juhuslike arvude xi järjestikusest võrdlemisest lr väärtustega. Kui tingimus on täidetud, on testi tulemuseks sündmus Am.

3. Vaatleme sõltumatuid sündmusi A ja B esinemise tõenäosusega pA ja pB. Sel juhul on ühiskatsete võimalikud tulemused sündmused AB, tõenäosusega pArB, (1-pA)pB, pA(1-pB), (1-pA)(1-pB). Liigestestide simuleerimiseks saab kasutada kahte protseduuri varianti:

Lõikes 1 käsitletud menetluse järjepidev täitmine.

AB ühe tulemuse määramine loosi teel vastavate tõenäosustega, st lõikes 2 käsitletud protseduur.

Esimene võimalus nõuab kahte numbrit xi ja kahte võrdlust. Teise võimalusega saate hakkama ühe numbriga xi, kuid võib vaja minna rohkem võrdlusi. Modelleerimisalgoritmi koostamise ja toimingute arvu ning arvutimälu säästmise mugavuse seisukohalt on eelistatavam esimene variant.

4. Sündmused A ja B on sõltuvad ja esinevad tõenäosustega pA ja pB. Tähistame pA(B)-ga sündmuse B toimumise tingimuslikku tõenäosust, eeldusel, et sündmus A on toimunud.

Kontrollküsimused

1) Kuidas saate määratleda Monte Carlo meetodi?

2) Monte Carlo meetodi praktiline tähendus.

3) Monte Carlo meetodi üldskeem.

4) Näide järjekorrasüsteemi arvutamisest Monte Carlo meetodil.

5) Juhuslike arvude genereerimise meetodid.

6) Millised on nõuded ideaalsele juhuslike arvude generaatorile?

7) Juhuslike arvujadade kvaliteedi parandamise meetodid.

on iga meie tehtud otsuse lahutamatu osa. Oleme pidevalt silmitsi ebakindluse, ebaselguse ja muutlikkusega. Ja isegi enneolematu juurdepääsu korral teabele ei saa me tulevikku täpselt ennustada. Monte Carlo simulatsioon (tuntud ka kui Monte Carlo meetod) võimaldab teil kaaluda oma otsuste kõiki võimalikke tagajärgi ja hinnata riski mõju, võimaldades teil ebakindluse tingimustes teha paremaid otsuseid.

Mis on Monte Carlo simulatsioon?
Monte Carlo simulatsioon on automatiseeritud matemaatiline tehnika, mis on loodud riskide kaasamiseks kvantitatiivsesse analüüsi ja otsustusprotsessi. Seda metoodikat kasutavad erinevate valdkondade professionaalid, nagu rahandus, projektijuhtimine, energeetika, tootmine, inseneritöö, teadus- ja arendustegevus, kindlustus, nafta ja gaas, transport ja keskkonnakaitse.

Monte Carlo simulatsioon võimaldab iga kord edasiste tegevuste valikul kaaluda tervet rida võimalikke tagajärgi ja hinnata nende esinemise tõenäosust. See meetod demonstreerib võimalusi, mis asuvad spektri vastasotstes (all-in mineku ja kõige konservatiivsemate meetmete võtmise tulemused), samuti mõõdukate otsuste tõenäolisi tagajärgi.

Seda meetodit kasutasid esmakordselt aatomipommi väljatöötamisega seotud teadlased; see sai oma nime Monte Carlo, Monaco kuurordi järgi, mis on kuulus oma kasiinode poolest. Teise maailmasõja ajal laialt levinud Monte Carlo meetodit hakati kasutama kõikvõimalike füüsikaliste ja teoreetiliste süsteemide simuleerimiseks.

Vaadake arvustusi
Douglas Hubbard
Hubbardi otsuste uurimine
Aeg: 00:35 sek

"Monte Carlo simulatsioon on ainus viis kriitiliste otsuste analüüsimiseks ebakindluse tingimustes."

John Zhao
Suncor Energy
Aeg: 02:36 min

"Monte Carlo simulatsioonide läbiviimine kapitalikulude hindamiseks on muutunud [Suncoris] iga suurprojekti jaoks kohustuslikuks."

Kuidas Monte Carlo simulatsiooni tehakse
Monte Carlo meetodi raames viiakse riskianalüüs läbi võimalike tulemuste mudelite abil. Selliste mudelite loomisel asendatakse kõik tegurid, mida iseloomustab ebakindlus, väärtuste vahemikuga - tõenäosusjaotusega. Seejärel arvutatakse tulemused mitu korda, kasutades iga kord erinevat juhusliku tõenäosuse funktsiooni väärtuste komplekti. Mõnikord võib simulatsiooni lõpuleviimiseks olla vaja teha tuhandeid või isegi kümneid tuhandeid ümberarvutusi, olenevalt määramatuste arvust ja nende jaoks kehtestatud vahemikest. Monte Carlo simulatsioon võimaldab saada võimalike tagajärgede väärtuste jaotusi.

Tõenäosusjaotuste kasutamisel võib muutujatel olla erinev tõenäosus erinevate tagajärgede esinemiseks. Tõenäosuse jaotused on palju realistlikum viis riskianalüüsi protsessi muutujate määramatuse kirjeldamiseks. Kõige tavalisemad tõenäosusjaotused on loetletud allpool.

Normaaljaotus(või "Baussi kõver"). Keskmisest kõrvalekalde kirjeldamiseks määratleb kasutaja keskmise või eeldatava väärtuse ja standardhälbe. Keskmisel, keskmise kõrval asuvaid väärtusi iseloomustab suurim tõenäosus. Normaaljaotus on sümmeetriline ja kirjeldab paljusid tavalisi nähtusi – näiteks inimeste pikkust. Tavaliste jaotustega kirjeldatavate muutujate näited hõlmavad inflatsioonimäärasid ja energiahindu.

Lognormaalne jaotus. Väärtused on positiivselt kallutatud ja erinevalt normaaljaotusest asümmeetrilised. Seda jaotust kasutatakse suuruste kajastamiseks, mis ei lange alla nulli, kuid võivad omandada piiramatult positiivseid väärtusi. Lognormaalsete jaotustega kirjeldatud muutujate näited hõlmavad kinnisvara väärtusi, aktsiahindu ja naftavarusid.

Ühtlane jaotus. Kõik suurused võivad võtta ühe või teise väärtuse võrdse tõenäosusega, kasutaja määrab lihtsalt miinimumi ja maksimumi. Näited muutujatest, mida võib ühtlaselt jaotada, hõlmavad tootmiskulusid või uue toote tulevasest müügist saadavat tulu.

Kolmnurkne jaotus. Kasutaja määrab minimaalse, kõige tõenäolisema ja maksimaalse väärtuse. Suurima tõenäosusega on väärtused, mis asuvad maksimaalse tõenäosuse punkti lähedal. Muutujad, mida saab kirjeldada kolmnurkse jaotusega, hõlmavad ajaloolist müüki ajaühiku kohta ja varude taset.

PERT levitamine. Kasutaja määrab minimaalse, kõige tõenäolisema ja maksimaalse väärtuse - sama, mis kolmnurkse jaotuse korral. Suurima tõenäosusega on väärtused, mis asuvad maksimaalse tõenäosuse punkti lähedal. Kõige tõenäolisemate ja äärmuslike väärtuste vahelises vahemikus olevad väärtused ilmuvad aga tõenäolisemalt kui kolmnurkjaotuse korral, see tähendab, et äärmuslikel väärtustel pole rõhku. PERT-jaotuse kasutamise näide on ülesande kestuse kirjeldamine projektijuhtimismudelis.

Diskreetne jaotus. Kasutaja määrab võimalike väärtuste hulgast konkreetsed väärtused, samuti nende saamise tõenäosuse. Näide oleks tulemus kohtuprotsess: positiivse otsuse 20% tõenäosus, eitava otsuse tõenäosus 30%, pooltevahelise kokkuleppe tõenäosus 40% ja kohtuprotsessi tühistamise tõenäosus 10%.

Monte Carlo simulatsioonis valitakse väärtused juhuslikult esialgsetest tõenäosusjaotusest. Iga väärtuste näidist nimetatakse iteratsiooniks; proovist saadud tulemus registreeritakse. Modelleerimisprotsessi käigus tehakse seda protseduuri sadu või tuhandeid kordi ning tulemuseks on võimalike tagajärgede tõenäosusjaotus. Seega annab Monte Carlo simulatsioon võimalikest sündmustest palju terviklikuma pildi. See võimaldab teil hinnata mitte ainult seda, mis võib juhtuda, vaid ka seda, milline on sellise tulemuse tõenäosus.

Monte Carlo simulatsioonil on deterministliku või punkthinnangu analüüsi ees mitmeid eeliseid:

  • Tõenäosuslikud tulemused.Tulemused näitavad mitte ainult võimalikke sündmusi, vaid ka nende toimumise tõenäosust.
  • Tulemuste graafiline esitus. Monte Carlo meetodil saadud andmete iseloom võimaldab koostada erinevate tagajärgedega graafikuid, aga ka nende esinemise tõenäosusi. See on oluline tulemuste edastamisel teistele sidusrühmadele.
  • Tundlikkuse analüüs. Väheste eranditega muudab deterministlik analüüs raskeks määrata, milline muutuja tulemusi kõige enam mõjutab. Monte Carlo simulatsiooni käivitamisel on lihtne näha, millised sisendid mõjutavad lõpptulemusi kõige rohkem.
  • Stsenaariumi analüüs. Deterministlikes mudelites on väga raske simuleerida erinevate sisendväärtuste jaoks erinevaid koguste kombinatsioone ja seetõttu hinnata tõeliselt erinevate stsenaariumide mõju. Monte Carlo meetodi abil saavad analüütikud täpselt kindlaks teha, millised sisendid viivad teatud väärtusteni ja jälgida teatud tagajärgede ilmnemist. See on edasise analüüsi jaoks väga oluline.
  • Lähteandmete korrelatsioon. Monte Carlo meetod võimaldab modelleerida sisendmuutujate vahelisi omavahelisi seoseid. Usaldusväärse teabe saamiseks tuleb ette kujutada, millistel juhtudel, kui mõned tegurid suurenevad, teised vastavalt suurenevad või vähenevad.

Monte Carlo simulatsiooni tulemusi saate parandada ka proovide võtmisega, kasutades ladina hüperkuubiku meetodit, mis valib täpsemini kogu jaotusfunktsioonide hulgast.

Palisade modelleerimistooted
kasutades Monte Carlo meetodit
Arvutustabelitega töötamiseks mõeldud rakenduste ilmumine personaalarvutites on avanud spetsialistidele laialdased võimalused Monte Carlo meetodi kasutamiseks igapäevatoimingutes analüüsimisel. Microsoft Excel on üks levinumaid tabelianalüüsi tööriistu ning programm on Palisade peamine Exceli pistikprogramm, mis võimaldab teostada Monte Carlo simulatsioone. @RISK võeti esmakordselt kasutusele Lotus 1-2-3 jaoks DOS-i operatsioonisüsteemis 1987. aastal ja pälvis kohe suurepärase maine oma täpsuse, modelleerimise paindlikkuse ja kasutuslihtsuse poolest. Microsoft Projecti tulek viis Monte Carlo meetodi rakendamiseks teise loogikarakenduse loomiseni. Tema peamiseks ülesandeks oli suurte projektide juhtimisega kaasnevate ebakindluste ja riskide analüüsimine.

Statistiline modelleerimine on põhiline modelleerimismeetod, mis hõlmab mudeli testimist antud tõenäosustihedusega juhuslike signaalide komplektiga. Eesmärk on statistiline määratlus väljundtulemused. Statistiline modelleerimine põhineb meetod Monte Carlo. Pidagem meeles, et jäljendamist kasutatakse siis, kui muid meetodeid ei saa kasutada.

Monte Carlo meetod

Vaatleme Monte Carlo meetodit integraali arvutamise näitel, mille väärtust ei ole võimalik analüütiliselt leida.

Ülesanne 1. Leidke integraali väärtus:

Joonisel fig. 1.1 näitab funktsiooni graafikut f (x). Selle funktsiooni integraali väärtuse arvutamine tähendab selle graafiku all oleva pindala leidmist.

Riis. 1.1

Piirame kõverat ülalt, paremale ja vasakule. Jaotame punktid otsinguristkülikus juhuslikult. Tähistagem poolt N 1 testimiseks vastuvõetud punktide arv (st langevad ristkülikusse, need punktid on näidatud joonisel 1.1 punase ja sinisena) ja läbi N 2 - kõvera all olevate punktide arv, mis langevad funktsiooni all olevale varjutatud alale (need punktid on joonisel 1.1 näidatud punaselt). Siis on loomulik eeldada, et kõvera alla jäävate punktide arv punktide koguarvu suhtes on võrdeline kõveraaluse pindalaga (integraali väärtusega) katseristküliku pindala suhtes. Matemaatiliselt saab seda väljendada järgmiselt:

Need arutlused on loomulikult statistilised ja seda õigemad suurem arv Võtame testipunkte.

Monte Carlo meetodi algoritmi fragment plokkskeemi kujul näeb välja selline, nagu on näidatud joonisel fig. 1.2

Riis. 1.2

Väärtused r 1 ja r 2 joonisel fig. 1.2 on ühtlaselt jaotatud juhuslikud arvud intervallidest ( x 1 ; x 2) ja ( c 1 ; c 2) vastavalt.

Monte Carlo meetod on äärmiselt tõhus ja lihtne, kuid nõuab "head" juhuslike arvude generaatorit. Teiseks probleemiks meetodi rakendamisel on valimi suuruse, st antud täpsusega lahenduse leidmiseks vajalike punktide arvu määramine. Katsed näitavad, et täpsuse 10-kordseks suurendamiseks tuleb valimi suurust 100 korda suurendada; see tähendab, et täpsus on ligikaudu võrdeline valimi suuruse ruutjuurega:

Monte Carlo meetodi kasutamise skeem juhuslike parameetritega süsteemide uurimisel

Pärast juhuslike parameetritega süsteemi mudeli koostamist suunatakse selle sisendisse juhuslike arvude generaatori (RNG) sisendsignaalid, nagu on näidatud joonisel fig. 1.3 RNG on konstrueeritud nii, et see toodab ühtlaselt jaotatud juhuslikud arvud r pp intervallist . Kuna mõned sündmused võivad olla tõenäolisemad, teised vähem tõenäolised, juhitakse generaatorist ühtlaselt jaotatud juhuslikud arvud juhusliku arvu seaduse muundurisse (RLC), mis teisendab need antud tõenäosusjaotuse seaduse kasutaja, näiteks normaal- või eksponentsiaalseadus. Need teisendasid juhuslikud arvud x juhitakse mudeli sisendisse. Mudel töötleb sisendsignaali x mingi seaduse järgi y = ts (x) ja võtab vastu väljundsignaali y, mis on samuti juhuslik.

statistilise modelleerimise juhuslik suurus


Riis. 1.3

Filtrid ja loendurid on paigaldatud statistika akumulatsiooniplokki (BNStat). Filter (mingi loogiline tingimus) määrab väärtuse järgi y, kas teatud sündmus realiseerus konkreetses katses (tingimus oli täidetud, f= 1) või mitte (tingimus ei olnud täidetud, f= 0). Kui sündmus toimub, suurendatakse sündmuste loendurit ühe võrra. Kui sündmust ei realiseeru, siis loenduri väärtus ei muutu. Kui teil on vaja jälgida mitut erinevat tüüpi sündmusi, siis vajate statistiliseks modelleerimiseks mitut filtrit ja loendurit N i. Katsete arvu loendurit peetakse alati - N.

Edasine suhe N i To N, arvutatakse arvutusplokis statistilised omadused(BVSH), kasutades Monte Carlo meetodit, annab tõenäosuse hinnangu lk i sündmuse toimumine i, see tähendab, et see näitab selle esinemise sagedust seerias N katsed. See võimaldab teha järeldusi modelleeritava objekti statistiliste omaduste kohta.

Näiteks sündmus A toimus 200 katse tulemusena, mis viidi läbi 50 korda. See tähendab Monte Carlo meetodi kohaselt, et sündmuse toimumise tõenäosus on: lk A = 50/200 = 0,25. Tõenäosus, et sündmust ei toimu, on vastavalt 1 - 0,25 = 0,75.

Palun maksa tähelepanu: kui räägitakse eksperimentaalselt saadud tõenäosusest, nimetatakse seda sageduseks; sõna tõenäosus kasutatakse siis, kui tahetakse rõhutada, et me räägime teoreetilisest mõistest.

Suure hulga katsetega N sündmuse toimumise sagedus, mis on saadud eksperimentaalselt, kaldub sündmuse toimumise teoreetilise tõenäosuse väärtusele.

Usaldusväärsuse hindamise plokis (RAB) analüüsitakse mudelist võetud statistiliste eksperimentaalsete andmete usaldusväärsuse astet (võttes arvesse tulemuse täpsust e, kasutaja määratud) ja määrake selleks vajalike statistiliste testide arv. Kui sündmuste esinemissageduse kõikumised teoreetilise tõenäosuse suhtes on väiksemad kui etteantud täpsus, siis võetakse vastuseks katsesagedus, vastasel juhul jätkub juhuslike sisendmõjude genereerimine ja modelleerimisprotsess kordub. Väikese arvu testide korral võib tulemus olla ebausaldusväärne. Kuid mida rohkem teste, seda täpsem on vastus keskse piiriteoreemi järgi.

Pange tähele, et hindamine toimub halvima sagedusega. See annab usaldusväärsed tulemused mudeli kõigi mõõdetud omaduste kohta korraga.

Näide 1. Lahendame lihtne ülesanne. Kui suur on tõenäosus, et münt langeb juhuslikult kõrgelt kukkumisel pea püsti?

Alustame mündi viskamist ja iga viske tulemuste fikseerimist (vt tabel 1.1).

Tabel 1.1.

Mündiviskamise testi tulemused


Peade esinemissageduse arvutame peade juhtumite arvu ja vaatluste koguarvu suhtena. Vaata tabelit. 1,1 juhul N = 1, N = 2, N= 3 - algul ei saa sageduse väärtusi usaldusväärseteks nimetada. Proovime koostada sõltuvusgraafiku P o alates N- ja vaatame, kuidas muutub peade sagedus sõltuvalt tehtud katsete arvust. Muidugi annavad erinevad katsed erinevaid tabeleid ja seega ka erinevaid graafikuid. Joonisel fig. 1.4 näitab ühte valikutest.


Riis. 1.4

Teeme mõned järeldused.

  • 1. On näha, et väikeste väärtuste juures N, Näiteks, N = 1, N = 2, N= 3 Vastust ei saa üldse usaldada. Näiteks, P o = 0 at N= 1, st ühe viskega peade saamise tõenäosus on null! Kuigi kõik teavad hästi, et see pole nii. See tähendab, et siiani oleme saanud väga ebaviisaka vastuse. Vaata aga graafikut: pooleli säästud teave, vastus läheneb aeglaselt, kuid kindlalt õigele (see on esile tõstetud punktiirjoonega). Õnneks sel konkreetsel juhul teame õiget vastust: ideaalis on peade saamise tõenäosus 0,5 (teiste, keerulisemate ülesannete puhul jääb vastus meile muidugi teadmata). Oletame, et peame vastust täpselt teadma e= 0,1. Kulutame kaks paralleelsed jooned, mida eraldab õigest vastusest 0,5 kaugus 0,1 (vt joonis 1.4). Saadud koridori laius on 0,2. Niipea kui kõver P O ( N) siseneb sellesse koridori nii, et see sealt kunagi välja ei lähe, võite peatuda ja vaadata, mis väärtuse eest N see juhtus. Seda see on eksperimentaalselt arvutatud kriitiline tähenduses vajalik arv katseid N kr e vastuse täpsuse määramiseks e = 0.1; e- naabruskond mängib meie mõttekäigus omamoodi täppistoru rolli. Pange tähele, et vastused P o (91), P o (92) ja nii edasi ei muuda enam oma väärtusi palju (vt joonis 1.4); vähemalt esimene number pärast koma, mida oleme ülesande tingimuste kohaselt kohustatud usaldama, ei muutu.
  • 2. Kõvera sellise käitumise põhjuseks on tegevus keskne ülim teoreemid. Praegu sõnastame selle kõige lihtsamas versioonis: "Juhuslike muutujate summa on mittejuhuslik suurus." Kasutasime keskmist P o, mis kannab teavet katsete summa kohta ja seetõttu muutub see väärtus järk-järgult üha usaldusväärsemaks.
  • 3. Kui teete selle katse algusest peale uuesti, siis loomulikult on selle tulemuseks teist tüüpi juhuslik kõver. Ja vastus on erinev, kuigi ligikaudu sama. Teeme terve rea selliseid katseid (vt joonis 1.5). Sellist sarja nimetatakse teostuste ansambliks. Millist vastust peaksite lõpuks uskuma? Lõppude lõpuks, kuigi nad on lähedased, erinevad nad siiski. Praktikas toimivad nad erinevalt. Esimene võimalus on arvutada vastuste keskmine väärtus mitme teostuse lõikes (vt tabel 1.2).

Riis. 1.5

Seadsime üles mitu katset ja määrasime iga kord, kui palju katseid on vaja teha, see tähendab N kr e. Viidi läbi 10 katset, mille tulemused on kokku võetud tabelis. 1.2 10 katse tulemuste põhjal arvutati keskmine väärtus N cr e.

Tabel 1.2.

Eksperimentaalsed andmed täpsuse saavutamiseks vajaliku mündiviskete arvu kohta e

Seega otsustasime pärast 10 erineva pikkusega teostuse läbiviimist, et see on piisav V keskmine oli võimalik teha 1 realisatsioon pikkusega 94 mündiviset.

Veel üks oluline fakt. Vaata lähemalt graafikut joonisel 21.5. See näitab 100 realisatsiooni – 100 punast joont. Märkige sellele abstsiss N= 94 vertikaalset riba. On teatud protsent punaseid jooni, mida ei olnud aega ületada e-naabruskond, see tähendab ( P exp - e ? P teooria? P exp + e) ja sisenege koridori täpselt kuni hetkeni N= 94. Pange tähele, et selliseid ridu on 5 See tähendab, et 95 rida 100-st, see tähendab 95%, sisestasid usaldusväärselt määratud intervalli.

Seega saavutasime pärast 100 teostuse läbiviimist ligikaudu 95% usaldusväärsust eksperimentaalselt saadud peade tõenäosuse suhtes, määrates selle täpsusega 0,1.

Saadud tulemuse võrdlemiseks arvutame välja teoreetilise väärtuse N kr t teoreetiliselt. Selleks peame aga kasutusele võtma usalduse tõenäosuse mõiste K F, mis näitab, kui valmis oleme vastust uskuma.

Näiteks millal K F= 0,95 oleme valmis vastust uskuma 95% juhtudest 100-st. See näeb välja selline: N cr t = k (K F) · lk· (1 - lk) /e 2 kus k (K F) – Laplace'i koefitsient, lk- peade saamise tõenäosus, e- täpsus (usaldusvahemik). Tabelis 1.3 näitab erinevate vajalike katsete arvu teoreetilise väärtuse väärtusi K F(täpsuse huvides e= 0,1 ja tõenäosus lk = 0.5).

Tabel 1.3.

Täpsuse saavutamiseks vajaliku mündiviskete arvu teoreetiline arvutamine e= 0,1 peade tõenäosuse arvutamisel


Nagu näete, on realisatsiooni pikkuse hinnang, mis on võrdne 94 katsega, väga lähedane teoreetilisele, võrdne 96-ga. Teatud lahknevus on seletatav asjaoluga, et ilmselt ei piisa 10 teostusest täpne arvutus N cr e. Kui otsustate, et soovite tulemust, mida peaksite rohkem usaldama, muutke usaldustaseme väärtust. Näiteks teooria ütleb meile, et kui katseid on 167, siis ainult 1-2 rida ansamblist ei kaasata kavandatud täpsustorusse. Kuid pidage meeles, et katsete arv suureneb täpsuse ja usaldusväärsuse kasvades väga kiiresti.

Teine praktikas kasutatav võimalus on teostada üks rakendamine ja suurendama saanud Sest teda N kr uh V 2 korda. Seda peetakse vastuse täpsuse heaks garantiiks (vt joonis 1.6).


Riis. 1.6. Illustratsioon N cr e eksperimentaalsest määramisest reegli „korruta kahega“ abil

Kui tähelepanelikult vaadata ansambel juhuslik teostused, siis leiame, et sageduse konvergents teoreetilise tõenäosuse väärtusele toimub piki kõverat, mis vastab pöördruutsõltuvusele katsete arvust (vt joonis 1.7).


Riis. 1.7

Teoreetiliselt toimib see tegelikult nii. Kui muudate määratud täpsust e ja uurige nende katsete tegemiseks vajalike katsete arvu, saate tabeli. 1.4

Tabel 1.4.

Teoreetiline sõltuvus katsete arvust, mis on vajalikud etteantud täpsuse tagamiseks K F = 0.95


Ehitame tabeli järgi. 1.4 sõltuvusgraafik N crt ( e) (vt joonis 1.8).

Riis. 1.8 Antud täpsuse e saavutamiseks vajalike katsete arvu sõltuvus fikseeritud Q F = 0,95 korral

Niisiis, vaadeldavad graafikud kinnitavad ülaltoodud hinnangut:

Pange tähele, et täpsushinnanguid võib olla mitu.

Näide 2. Figuuri pindala leidmine Monte Carlo meetodil. Monte Carlo meetodi abil määrake viisnurga pindala nurkkoordinaatidega (0, 0), (0,10), (5, 20), (10,10), (7, 0).

Joonistame antud viisnurga kahemõõtmeliste koordinaatidena, kirjutades selle ristkülikusse, mille pindala, nagu arvata võib, on (10 - 0) · (20 - 0) = 200 (vt joonis 1.9).

Riis. 1.9

Juhuslike arvude tabeli kasutamine numbripaaride genereerimiseks R, G, ühtlaselt jaotunud vahemikus 0 kuni 1. Arv R X (0 ? X? 10), seega X= 10 · R. Number G simuleerib koordinaati Y (0 ? Y? 20), seega Y= 20 · G. Loome 10 numbrit R Ja G ja kuva 10 punkti ( X; Y) joonisel fig. 1.9 ja tabelis. 1.5

Tabel 1.5.

Ülesande lahendamine Monte Carlo meetodi abil


Statistiline hüpotees on, et joonise kontuuris sisalduvate punktide arv on võrdeline joonise pindalaga: 6: 10 = S: 200. See tähendab, et Monte Carlo meetodi valemi järgi leiame, et ala S viisnurk on võrdne: 200 · 6/10 = 120.

Vaatame, kuidas väärtus muutus S kogemusest kogemusse (vt tabel 1.6).

Tabel 1.6.

Vastuse täpsuse hindamine

Kuna vastuses on teise numbri väärtus veel muutumas, on võimalik ebatäpsus siiski üle 10%. Arvutustäpsust saab suurendada katsete arvu suurenemisega (vt joonis 1.10).

Riis. 1.10 Illustratsioon teoreetilise tulemuse katseliselt määratud vastuse konvergentsi protsessist

Loeng 2. Juhuslike arvude generaatorid

Monte Carlo meetod (vt loeng 1. Statistiline modelleerimine) põhineb juhuslike arvude genereerimisel, mis peaksid olema ühtlaselt jaotunud intervallis (0;1).

Kui generaator toodab numbreid, mis on nihutatud mingisse intervalli ossa (mõned numbrid ilmuvad sagedamini kui teised), siis võib statistilise meetodiga lahendatud ülesande lahendamise tulemus osutuda valeks. Seetõttu on tõeliselt juhuslike ja tõeliselt ühtlaselt jaotatud arvude hea generaatori kasutamise probleem väga terav.

Oodatud väärtus m r ja dispersioon D r selline jada, mis koosneb n juhuslikud arvud r i, peaks olema järgmine (kui need on tõesti ühtlaselt jaotatud juhuslikud arvud vahemikus 0 kuni 1):

Kui kasutaja vajab juhuslikku numbrit x oli intervallis ( a; b), erineb (0;

  • 1), peate kasutama valemit x = a + (b - a) · r, Kus r- juhuslik arv intervallist (0;
  • 1). Selle teisenduse seaduslikkust on näidatud joonisel fig. 2.1

Riis. 2.1

1) intervallis (a; b)

Nüüd x- juhuslik arv, mis on ühtlaselt jaotunud vahemikus alates a enne b.

Taga juhuslike arvude generaatori standard(RNG) võetakse kasutusele generaator, mis genereerib järeljada juhuslikud numbrid koos ühtlane jaotusseadus intervallis (0;

  • 1). Ühe kõne puhul tagastab see generaator ühe juhusliku numbri. Kui sellise RNG jälgimisest piisab kaua aega, siis selgub, et näiteks igas kümnes intervallis (0; 0,1), (0,1; 0,2), (0,2; 0,3), ..., (0,9;
  • 1) juhuslikke numbreid on peaaegu sama palju - see tähendab, et need jaotuvad ühtlaselt kogu intervalli peale (0;
  • 1). Kui on näidatud graafikul k= 10 intervalli ja sagedust N i tabab neid, saate juhuslike arvude eksperimentaalse jaotustiheduse kõvera (vt joonis 2.2).

Riis. 2.2

Pange tähele, et ideaaljuhul näeks juhuslike arvude jaotuse tiheduse kõver välja selline, nagu on näidatud joonisel fig. 2.3. See tähendab, et ideaaljuhul sisaldab iga intervall sama arvu punkte: N i = N/k, Kus N - koguarv punktid, k- intervallide arv, i = 1, …, k.


Riis. 2.3

Tuleb meeles pidada, et suvalise juhusliku arvu genereerimine koosneb kahest etapist:

  • · normaliseeritud juhusliku arvu genereerimine (st ühtlaselt jaotatud 0-st 1-ni);
  • · normaliseeritud juhuslike arvude teisendus r i juhuslikele numbritele x i, mida levitatakse vastavalt kasutaja poolt nõutud (meelevaldse) levitamisseadusele või vajaliku intervalliga.

Juhuslike arvude generaatorid jagunevad vastavalt numbrite saamise meetodile:

  • · füüsiline;
  • · tabel;
  • · algoritmiline.

Mitte kaua aega tagasi lugesin Douglas Hubbardi imelist raamatut. Raamatu lühikokkuvõttes lubasin, et pühendan ühele jaotisest eraldi märkuse – Risk Assessment: An Introduction to Monte Carlo Simulation. Jah, kõik kuidagi ei õnnestunud. Ja hiljuti hakkasin hoolikamalt uurima valuutariskide maandamise meetodeid. Sellele teemale pühendatud materjalides mainitakse sageli Monte Carlo simulatsiooni. Nii et lubatud materjal on teie ees.

Toon lihtsa näite Monte Carlo simulatsioonist neile, kes pole sellega varem töötanud, kuid omavad pisut arusaamist Exceli tabelite kasutamisest.

Oletame, et soovite rentida uut masinat. Masina aastane rendikulu on 400 000 dollarit ja leping tuleb sõlmida mitmeks aastaks. Seega, isegi kui te pole jõudnud , ei saa te ikkagi masinat kohe tagastada. Oled sõlmimas lepingut, mõeldes, et kaasaegsed seadmed hoiavad kokku tööjõukuludelt ning tooraine ja tarvikute kulult ning arvad ka, et uue masina logistika ja tehniline hooldus on odavam.

Laadige märkus alla vormingus, näited vormingus

Teie kalibreeritud hinnangud on andnud järgmised eeldatava säästu ja aastatoodangu vahemikud.

Aastane kokkuhoid on: (MS + LS + RMS) x PL

Muidugi on see näide liiga lihtne, et olla realistlik. Tootmismaht muutub igal aastal, mõned kulud vähenevad, kui töölised lõpuks uue masina selgeks saavad jne. Kuid selles näites ohverdasime lihtsuse nimel teadlikult realismi.

Kui võtta iga väärtusvahemiku mediaan (keskmine), saame aastase säästu: (15 + 3 + 6) x 25 000 = 600 000 (dollarit)

Näib, et me mitte ainult ei kaotanud tasa, vaid teenisime ka kasumit, kuid pidage meeles, et on ebakindlust. Kuidas hinnata nende investeeringute riskantsust? Kõigepealt määratleme, milline risk selles kontekstis on. Riski tuletamiseks peame visandama tulevased tulemused koos nende loomupärase ebakindlusega, millest mõned on tõenäolised, et kannavad mõõdetavat kahju. Üks võimalus riskide vaatamiseks on ette kujutada tõenäosust, et me ei tule tasa, see tähendab, et meie säästud on väiksemad kui masina aastane liisingukulu. Mida rohkem me oma üürikulusid katmata jääme, seda rohkem kaotame. Summa 600 000 dollarit. on intervalli mediaan. Kuidas määrata tegelik väärtuste vahemik ja arvutada selle põhjal tõenäosus, et me ei jõua tasuvuspunkti?

Kuna täpseid andmeid ei ole, ei saa teha lihtsaid arvutusi, et vastata küsimusele, kas suudame saavutada vajaliku säästu. On meetodeid, mis teatud tingimustel võimaldavad algandmete väärtusvahemikest leida saadud parameetri väärtuste vahemikku, kuid enamiku reaalelu probleemide puhul on sellised tingimused reeglina sellised. ei eksisteeri. Kui hakkame eri tüüpi jaotusi summeerima ja korrutama, muutub probleemiks tavaliselt see, mida matemaatikud nimetavad tavaliste vahenditega lahendamatuks või lahendamatuks. matemaatilised meetodid probleem. Seetõttu kasutame selle asemel võimalike valikute otsese valiku meetodit, mis sai võimalikuks arvutite tulekuga. Saadaolevate intervallide hulgast valime juhuslikult algparameetrite täpsete väärtuste komplekti (tuhanded) ja arvutame soovitud indikaatori täpsete väärtuste komplekti.

Monte Carlo simulatsioon on suurepärane viis selliste probleemide lahendamiseks. Peame lihtsalt juhuslikult valima väärtused määratud intervallidega, asendama need valemiga, et arvutada aastane sääst ja arvutada kogusumma. Mõned tulemused ületavad meie arvutatud mediaani 600 000 dollarit, teised aga jäävad allapoole. Mõned neist on isegi alla 400 000 dollari, mis on vajalik kasumi teenimiseks.

Monte Carlo simulatsiooni saate hõlpsalt käivitada personaalarvutis Exceli abil, kuid see nõuab veidi rohkem teavet kui 90% usaldusvahemik. Vaja on teada jaotuskõvera kuju. Erinevate koguste jaoks on ühe kujuga kõverad sobivamad kui teised. 90% usaldusvahemiku korral kasutatakse tavaliselt normaaljaotuse (Gaussi) kõverat. See on tuttav kellakujuline kõver, milles enamik võimalikke tulemusväärtusi on koondunud graafiku keskossa ja ainult mõned, vähem tõenäolised, on jaotatud, kitsenedes selle servade suunas (joonis 1).

Tavaline jaotus näeb välja selline:

Joonis 1. Normaaljaotus. Abstsisstelg on sigma arv.

Iseärasused:

  • graafiku keskosas asuvad väärtused on tõenäolisemad kui selle servades olevad väärtused;
  • jaotus on sümmeetriline; mediaan on täpselt poolel teel 90% usaldusvahemiku (CI) ülemise ja alumise piiri vahel;
  • graafiku “sabad” on lõputud; väärtused väljaspool 90% usaldusvahemikku on ebatõenäolised, kuid siiski võimalikud.

Excelis normaaljaotuse koostamiseks võite kasutada funktsiooni =NORMIDIST(X; keskmine; standardhälve; integraal), kus
X – väärtus, mille jaoks on konstrueeritud normaaljaotus;
Keskmine – jaotuse aritmeetiline keskmine; meie puhul = 0;
Standardhälve – jaotuse standardhälve; meie puhul = 1;
Integraal – loogiline väärtus, mis määrab funktsiooni vormi; kui kumulatiivne on TRUE, tagastab NORMDIST kumulatiivse jaotusfunktsiooni; kui see argument on FALSE, tagastatakse tihedusfunktsioon; meie puhul = VÄÄR.

Normaaljaotusest rääkides tuleb mainida sellist seotud mõistet nagu standardhälve. Ilmselgelt ei saa kõik intuitiivselt aru, mis see on, kuid kuna standardhälbe saab asendada 90% usaldusvahemiku põhjal arvutatud arvuga (millest paljud inimesed intuitiivselt aru saavad), ei hakka ma seda siin üksikasjalikult kirjeldama. Joonis 1 näitab, et ühes 90% usaldusvahemikus on 3,29 standardhälvet, seega peame lihtsalt teisenduse tegema.

Meie puhul peaksime iga väärtusintervalli jaoks looma arvutustabelisse juhuslike arvude generaatori. Alustame näiteks MS-st – kokkuhoid materiaal-tehniliste teenuste pealt. Kasutame ära Exceli valem: =NORMBR(tõenäosus,keskmine,standardhälve), kus
Tõenäosus – normaaljaotusele vastav tõenäosus;
Keskmine – jaotuse aritmeetiline keskmine;
Standardhälve – jaotuse standardhälve.

Meie puhul:
Keskmine (mediaan) = (90% CI ülemine piir + 90% CI alumine piir)/2;
Standardhälve = (90% CI ülemine piir – 90% CI alumine piir)/3,29.

MS parameetri jaoks on valem järgmine: =NORMIN(RAND();15,(20-10)/3.29), kus
RAND – funktsioon, mis genereerib juhuslikke numbreid vahemikus 0 kuni 1;
15 – MS vahemiku aritmeetiline keskmine;
(20-10)/3,29 = 3,04 – standardhälve; Tuletan teile meelde, et standardhälbe tähendus on järgmine: 90% kõigist juhusliku suuruse (meie puhul MS) väärtustest langeb intervalli 3.29*Standard_hälve, mis paikneb sümmeetriliselt suhtelise keskmise suhtes.

Logistika säästude jaotus 100 juhusliku normaaljaotusega väärtuse puhul:

Riis. 2. MS jaotuse tõenäosus väärtusvahemike vahel; Teavet selle kohta, kuidas liigendtabelit kasutades sellist jaotust konstrueerida, vt

Kuna kasutasime "ainult" 100 juhuslikku väärtust, ei olnud jaotus nii sümmeetriline. Umbes 90% väärtustest jäi aga MS säästuvahemikku 10–20 dollarit (täpsemalt 91%).

Koostame parameetrite MS, LS, RMS ja PL usaldusvahemike põhjal tabeli (joonis 3). Kahes viimases veerus kuvatakse teiste veergude andmetel põhinevate arvutuste tulemused. Veerus Kogusääst kuvatakse iga rea ​​kohta arvutatud aastane sääst. Näiteks kui rakendataks stsenaariumi 1, oleks kokkuhoid (14,3 + 5,8 + 4,3) x 23 471 = 570 834 dollarit. sa ei vaja seda tegelikult. Lisasin selle ainult informatiivsel eesmärgil. Loome Excelis 10 000 skriptirida.

Riis. 3. Stsenaariumide arvutamine Monte Carlo meetodil Excelis

Saadud tulemuste hindamiseks saate kasutada näiteks pivot-tabelit, mis võimaldab teil lugeda stsenaariumide arvu igas 100 tuhande vahemikus. Seejärel koostate arvutustulemusi kuvava graafiku (joonis 4). See graafik näitab, millisel osal 10 000 stsenaariumist on antud väärtusvahemikus iga-aastane sääst. Näiteks umbes 3% stsenaariumidest annab aastas kokkuhoiu rohkem kui 1 miljon dollarit.

Riis. 4. Kogusäästu jaotus väärtusvahemike lõikes. X-teljel on näidatud säästu 100-tuhandikosa vahemikud ja y-teljel määratud vahemikku jäävate stsenaariumide osakaal.

Kogu aasta säästust jääb ligikaudu 15% alla 400 000 dollari. See tähendab, et kahju tekkimise tõenäosus on 15%. See arv kujutab endast asjakohast riskihinnangut. Kuid risk ei taandu alati negatiivse investeeringutasuvuse võimalusele. Asja suuruse hindamisel määrame selle kõrguse, massi, ümbermõõdu jne. Samuti on mitmeid kasulikke riskinäitajaid. Edasine analüüs näitab: on 4% tõenäosus, et tehas kaotab säästmise asemel 100 000 dollarit aastas. Täielik sissetulekute puudumine on aga praktiliselt võimatu. Seda mõeldakse riskianalüüsi all – peame oskama arvutada erineva mastaabiga kahjustuste tõenäosusi. Kui mõõdate riske tõeliselt, peaksite seda tegema.

Mõnes olukorras võite valida lühema marsruudi. Kui kõik väärtuste jaotused, millega me töötame, on normaalsed ja me peame lihtsalt nende väärtuste intervallid liitma (näiteks kulude ja tulude intervallid) või lahutama need üksteisest, siis saame ilma Monteta hakkama. Carlo simulatsioon. Meie näites toodud kolme säästu liitmisel tuleb teha lihtne arvutus. Otsitava intervalli saamiseks kasutage alltoodud kuut sammu:

1) lahutab selle ülemisest piirist iga väärtusvahemiku keskmise väärtuse; säästa logistika pealt 20 – 15 = 5 (dollarit), säästa tööjõukuludelt – 5 dollarit. ning tooraine ja materjalide säästmiseks - 3 dollarit;

2) ruudustage esimese sammu tulemused 5 2 = 25 (dollarid) jne;

3) võta kokku teise sammu tulemused 25 + 25 + 9 = 59 (dollarit);

4) võtke saadud summa ruutjuur: see osutub 7,7 dollariks;

5) liida kõik keskmised väärtused: 15 + 3 + 6 = 24 (dollarit);

6) lisage 4. sammu tulemus keskmiste väärtuste summale ja saate vahemiku ülemise piiri: 24 + 7,7 = 31,7 dollarit; lahutage keskmiste väärtuste summast sammu 4 tulemus ja saate vahemiku 24 - 7,7 = 16,3 dollari alampiiri.

Seega on iga säästutüübi kolme 90% usaldusvahemiku summa 90% usaldusvahemik 16,3–31,7 dollarit.

Kasutasime järgmist omadust: koguintervalli vahemik võrdub üksikute intervallide vahemike ruutude summa ruutjuurega.

Mõnikord tehakse midagi sarnast, summeerides kõik intervalli ülemise piiri "optimistlikud" ja "pessimistlikud" väärtused. Sel juhul saaksime meie kolme 90% usaldusvahemiku põhjal koguintervalliks 11–37 dollarit. See intervall on mõnevõrra laiem kui 16,3–31,7 dollarit. Kui selliseid arvutusi tehakse kümnete muutujatega disaini õigustamiseks, muutub intervalli laienemine liiga suureks, et seda ignoreerida. Kõige “optimistlikumate” väärtuste ülemine ja “pessimistlike” alumine väärtus on nagu mõtlemine: kui viskame mitu täringut, saame kõigil juhtudel ainult “1” või ainult “6”. Tegelikkuses ilmub mõni madalate ja kõrgete väärtuste kombinatsioon. Intervalli liigne laiendamine on tavaline viga, mis loomulikult viib sageli teadmata otsusteni. Samas minu kirjeldatud lihtne meetod töötab suurepäraselt, kui meil on mitu 90% usaldusvahemikku, mis tuleb summeerida.

Meie eesmärk pole aga mitte ainult intervallide summeerimine, vaid ka nende korrutamine tootmismahuga, mille väärtused on samuti antud vahemiku kujul. Lihtne summeerimismeetod sobib ainult väärtuste intervallide lahutamiseks või liitmiseks.

Monte Carlo simulatsioon on vajalik ka siis, kui kõik jaotused ei ole normaalsed. Kuigi muud tüüpi jaotusi see raamat ei käsitle, mainime neist kahte – ühtset ja binaarset (joon. 5, 6).

Riis. 5. Ühtlane jaotus (pole ideaalne, kuid ehitatud kasutades Exceli funktsiooni RAND)

Iseärasused:

  • kõigi väärtuste tõenäosus on sama;
  • jaotus on sümmeetriline, ilma moonutusteta; mediaan on täpselt poolel teel intervalli ülemise ja alumise piiri vahel;
  • väärtused väljaspool intervalli pole võimalikud.

Selle jaotuse koostamiseks Excelis kasutati valemit: RAND()*(UB – LB) + LB, kus UB on ülempiir; LB – alampiir; millele järgneb kõigi väärtuste jagamine liigendtabeli abil vahemikeks.

Riis. 6. Binaarne jaotus (Bernoulli jaotus)

Iseärasused:

  • võimalikud on ainult kaks väärtust;
  • ühe väärtuse tõenäosus on üksainus (antud juhul 60%); teise väärtuse tõenäosus on võrdne ühega miinus esimese väärtuse tõenäosus

Seda tüüpi juhusliku jaotuse koostamiseks Excelis kasutati funktsiooni: =IF(RAND()<Р;1;0), где Р - вероятность выпадения «1»; вероятность выпадения «0» равна 1–Р; с последующим разбиением всех значений на два значения с помощью сводной таблицы.

Meetodit kasutas esmakordselt matemaatik Stanislav Ulam (vt.).

Douglas Hubbard loetleb veel mitmeid Monte Carlo simulatsiooniks mõeldud programme. Nende hulgas on Crystal Ball firmalt Decisioneering, Inc., Denver, Colorado. Ingliskeelne raamat ilmus aastal 2007. Nüüd kuulub see programm Oracle'ile. Programmi demoversioon on allalaadimiseks saadaval ettevõtte veebisaidilt. Räägime selle võimalustest.

Vaata Douglas Hubbardi mainitud raamatu 5. peatükki

Siin defineerib Douglas Hubbard vahemiku kui erinevust 90% usaldusvahemiku ülemise piiri ja selle intervalli keskmise väärtuse vahel (või keskmise väärtuse ja alumise piiri vahel, kuna jaotus on sümmeetriline). Tavaliselt mõistetakse vahemikku kui erinevust ülemise ja alumise piiri vahel.