Design. Analyze. Optimize.

Simulointi

Simuloinnilla tarkoitetaan todellisen järjestelmän toiminnan jäljittelemistä tietokoneen avulla. Ensin järjestelmästä luodaan matemaattinen malli (vikapuu, seurauspuu, lohkokaavio), joka kuvaa todellisen järjestelmän tietokoneelle mahdollisimman tarkasti. Jos mallin sisältämät relaatiot ovat riittävän yksinkertaisia, voidaan sen toimintaa tutkia kohtuullisen tarkasti matemaattisen analyysin avulla, esimerkiksi etsimällä minimikatkosjoukkoja. Usein näin ei kuitenkaan ole, vaan esimerkiksi XOR tai NOT relaatioiden takia tarkka analysointi ei ole mahdollista ja on turvauduttava simulointiin.

Vikapuita simuloitaessa tapahtumat järjestetään aikajärjestykseen. Jos tapahtuman A toteutuminen vaikuttaa tapahtuman B toteutumiseen, on tapahtuman A oltava aikajärjestyksessä ennen tapahtumaa B. Koska silmukoita ei sallita, saadaan aikajärjestys aina muodostettua. Yhden simulointikierroksen aikana käydään aikajärjestyksessä jokainen tapahtuma läpi ja määritetään toteutuuko tapahtuma vai ei. Ensin tarkistetaan toteutuuko tapahtuman porttiehto. Jos se toteutuu, arvotaan satunnaisluku ja tarkistetaan toteutuiko todennäköisyysehto. Jos molemmat ehdot toteutuvat, tapahtuma toteutuu. Tietoa toteutuuko tapahtuma vai ei kutsutaan tapahtuman tilaksi.

Kun kaikille tapahtumille on määritetty niiden toteutuminen, on suoritettu yksi simulointikierros. Kierroksesta talletetaan simuloinnista saadut tapahtumien tilat. Kun simulointikierroksia suoritetaan useita, saadaan tilastollista tietoa järjestelmän käyttäytymisestä. Näiden tulosten avulla voidaan selvittää tapahtumien toteutumisten todennäköisyyksiä.

Voidaan myös selvittää ehdollisia todennäköisyyksiä, eli tapahtumien toteutumista, kun joku ehto on toteutunut. Ehto voi olla jonkun tapahtuman tai tapahtumajoukon toteutuminen tai toteutumatta jääminen. Samanlaisia ehdollisia todennäköisyyksiä voidaan esittää myös tapahtumakombinaatioille. Kombinaatiolla tarkoitetaan usean tapahtuman tilojen yhdistelmää.