Prosessin reaalisaatioiden tuottaminen

Samankaltaiset tiedostot
Teoria. Prosessin realisaatioiden tuottaminen

Simulointi. Tapahtumapohjainen

Teoria. Satunnaismuuttujan arvonta annetusta jakaumasta

Simulointi. Johdanto

Batch means -menetelmä

S Tietoverkkojen simulointi / Varianssinreduktiotekniikat 1(32) Teoria

Järjestelmässä olevien asiakkaiden lukumäärä N(t) ei muodosta enää Markov-prosessia.

S Tietoverkkojen simulointi / Varianssinreduktiotekniikat 1(37) Teoria

Algoritmit 1. Luento 4 Ke Timo Männikkö

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

S Tietoverkkojen simulointi

Teoria. Satunnaismuuttujan arvonta annetusta jakaumasta

ABTEKNILLINEN KORKEAKOULU

Jonojen matematiikkaa

J. Virtamo Jonoteoria / M/G/1/-jono 1

5. Stokastiset prosessit (1)

Dynaamiset regressiomallit

Odotusjärjestelmät. Aluksi esitellään allaolevan kuvan mukaisen yhden palvelimen jonoon liittyvät perussuureet.

Liikenneongelmien aikaskaalahierarkia

Yleistä. Esimerkki. Yhden palvelimen jono. palvelin. saapuvat asiakkaat. poistuvat asiakkaat. odotushuone, jonotuspaikat

FoA5 Tilastollisen analyysin perusteet puheentutkimuksessa. Luentokuulustelujen esimerkkivastauksia. Pertti Palo. 30.

J. Virtamo Jonoteoria / Prioriteettijonot 1

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Algoritmit 2. Luento 13 Ti Timo Männikkö

Demonstraatiot Luento 7 D7/1 D7/2 D7/3

Estimointi. Estimointi. Estimointi: Mitä opimme? 2/4. Estimointi: Mitä opimme? 1/4. Estimointi: Mitä opimme? 3/4. Estimointi: Mitä opimme?

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin?

käännetty prosessi. Tarkastellaan pelkistymätöntä stationaarista stokastista prosessia X t.

Simuloinnin taktisia kysymyksiä

Ohjelmoinnin perusteet Y Python

TIMBERLOG OHJEET 1 (12) TimberLOG - Käyttöohje Versio 2.2

Suotuisien tapahtumien lukumäärä Kaikki alkeistapahtumien lukumäärä

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Harjoitus 8: Monte Carlo -simulointi (Matlab)

Ohjelmassa on käytettävä funktiota laskeparkkimaksu laskemaan kunkin asiakkaan maksu. Funktio floor pyöristää luvun lähimmäksi kokonaisluvuksi.

Harjoitus 8: Monte-Carlo simulointi (Matlab)

Esimerkki: Tietoliikennekytkin

Johdatus tilastotieteeseen Estimointi. TKK (c) Ilkka Mellin (2005) 1

Poisson-prosessien ominaisuuksia ja esimerkkilaskuja

805324A (805679S) Aikasarja-analyysi Harjoitus 4 (2016)

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Generointi yksinkertaisista diskreeteistä jakaumista

Kopulafunktiot. Joonas Ollila 12. lokakuuta 2011

Estynyt puheluyritys menetetään ei johda uusintayritykseen alkaa uusi miettimisaika: aika seuraavaan yritykseen Exp(γ) pitoaika X Exp(µ)

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

Tarkennamme geneeristä painamiskorotusalgoritmia

Harjoitus 8: Monte-Carlo simulointi (Matlab)

J. Virtamo Jonoteoria / Poisson-prosessi 1

JYVÄSKYLÄN SEUDUN. 1. Sisältö * * Tähdellä merkityt kohdat ovat pakollisia. Sivun oikeassa yläkulmasta löytyy Lisää oma tapahtumasi.

Simuloinnin taktisia kysymyksiä

S Tietoverkkojen simulointi

Sovellettu todennäköisyyslaskenta B

Matematiikan kotitehtävä 2, MAA 10 Todennäköisyys ja tilastot

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

12. Javan toistorakenteet 12.1

11. Javan toistorakenteet 11.1

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Identifiointiprosessi

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia?

031021P Tilastomatematiikka (5 op) viikot 5 6

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

J. Virtamo Jonoteoria / Prioriteettijonot 1

Satunnaislukujen generointi

Algoritmit 1. Demot Timo Männikkö

Inversio-ongelmien laskennallinen peruskurssi Luento 2

Simulointi. Varianssinhallintaa Esimerkki

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Ilkka Mellin Tilastolliset menetelmät Osa 2: Otokset, otosjakaumat ja estimointi Estimointi

SIMULINK S-funktiot. SIMULINK S-funktiot

Matemaattisesta mallintamisesta

Harjoitus 6: Simulink - Säätöteoria. Syksy Mat Sovelletun matematiikan tietokonetyöt 1

Ohjelmoinnin peruskurssi Y1

18. Abstraktit tietotyypit 18.1

LASKENNALLISEN TIETEEN OHJELMATYÖ: Diffuusion Monte Carlo -simulointi yksiulotteisessa systeemissä

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

START Pääohjelma - arvojen asettaminen - keskipisteet - kierrenousujen ohjaus. Tokan reiän hionta

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

Erkki Laitinen, Oulun yliopisto, matemaattisten tieteiden laitos. Mallien tyyppejä

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009

Sovellettu todennäköisyyslaskenta B

Harjoitus 7: NCSS - Tilastollinen analyysi

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Tilastollinen aineisto Luottamusväli

12. Javan toistorakenteet 12.1

Harjoitustyö, joka on jätetty tarkastettavaksi Vaasassa

Osa 2: Otokset, otosjakaumat ja estimointi

Aloittaminen. Tilojen ja ajan haku. Liikuntapalvelut Hietalahdenkatu Vaasa

Estojärjestelmä (loss system, menetysjärjestelmä)

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

3.6 Su-estimaattorien asymptotiikka

Ohjelmoinnin perusteet Y Python

Harjoitus 2: Matlab - Statistical Toolbox

7.4 Sormenjälkitekniikka

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys

Transkriptio:

Teoria Johdanto simulointiin Simuloinnin kulku -- prosessin realisaatioiden tuottaminen Satunnaismuuttujan arvonta annetusta jakaumasta Tulosten keruu ja analyysi Varianssinreduktiotekniikoista 20/09/2004 1 Prosessin reaalisaatioiden tuottaminen Oletetaan, että olemme mallintaneet tarkasteltavan järjestelmän stokastisena prosessina Seuraavana tehtävänä on prosessin realisaatioiden tuottaminen (eli järjestelmän simulointi suppeassa mielessä). Se koostuu kahdesta osasta: kaikille prosessin kulkuun vaikuttaville satunnaismuuttujille on arvottava arvot (yleensä reaaliluku) satunnaisesti ko. sm:n jakaumasta (sm:ien väliset riippuvuudet tietysti huomioiden) näin saaduilla arvoilla konstruoidaan prosessin reaalisaatio ts. sen kehittyminen ajassa Simuloinnissa nämä kaksi osaa eivät suinkaan tapahdu peräkkäin eri vaiheissa, vaan limittäin: välillä on siis arvottava jollekin satunnaismuuttujalle arvo, jota sitten käytetään (yhdessä aiemmin arvottujen sm:ien kanssa) prosessin reaalisaation konstruointiin jollakin lyhyehköllä aikavälillä simuloinnin nykyhetkestä eteenpäin Satunnaismuuttujien arvojen arvonta perustuu ns. (pseudo)satunnaislukujen generointiin Prosessin reaalisaation konstruointi tehdään yleensä tapahtumapohjaisesti (discrete event simulation) 20/09/2004 2

Tapahtumapohjainen simulointi (1) Mitkä ovat järjestelmän tilan ja havaintojen kannalta kiinnostavat suureet? Mitkä ovat olennaiset tapahtumat? Mitkä ovat tapahtumien laukaisijat ja niiden ajoitukset? 20/09/2004 3 Tapahtumapohjainen simulointi (2) Idea: simulointi etenee tapahtumasta tapahtumaan jos jollakin aikavälillä ei tapahdu mitään, voimme hypätä ko. aikavälin yli Tapahtuma vastaa (yleensä) aina systeemin tilan muuttumista esim. yksinkertaisessa liikenneteoreettisessa mallissa mahdollisia tapahtumia ovat ainakin asiakkaiden saapumiset ja poistumiset systeemistä prosessin reaalisaation generoinnin lopetus on kuitenkin oma tapahtumansa samoin tietojen keruu voi aiheuttaa joitakin ylimääräisiä tapahtumia Tapahtuma karakterisoidaan kahdella parametrilla tapahtumahetki (so. milloin tapahtuma käsitellään) ja tapahtuman tyyppi (so. miten tapahtuma käsitellään) Tapahtumat organisoidaan yleensä tapahtumahetken mukaan järjestetyksi tapahtumalistaksi (event list), jonka kärjessä on seuraavaksi sattuva tapahtuma (siis pienin tapahtumahetki) Listaa käydään läpi tapahtuma tapahtumalta (generoiden samalla uusia tapahtumia listan loppupäähän). Kun tapahtuma on käsitelty, se poistetaan listalta. Simulointikello kertoo, mikä on käsiteltävänä olevan tapahtuman hetki Se siis etenee hyppäyksittäin 20/09/2004 4

Tapahtumapohjainen simulointi (3) 1. Initialisointi aseta simulointikello nollaksi aseta systeemin tila valittuun alkuarvoonsa generoi kunkin tapahtumatyypin seuraava tapahtuma (mikäli mahdollista) ja liitä näin saadut tapahtumat tapahtumalistaan 2. Simulointikellon siirto aseta simulointiajaksi (tapahtumalistan kärjessä olevan) seuraavan tapahtuman tapahtumahetki 3. Tapahtuman käsittely käsittele tapahtuma (mahdollisesti generoiden samalla uusia tapahtumia ja liittäen ne tapahtumalistaan tapahtumahetkensä mukaiseen järjestykseen) sekä päivitä systeemin tila poista käsitelty tapahtuma tapahtumalistalta 4. Lopetusehto jos lopetusehto on voimassa, lopeta prosessin reaalisaation generointi; muutoin palaa kohtaan 2 20/09/2004 5 Esimerkki: M/M/1- FIFO jonon simulointi Kiinnostavia suureita: odottavien (jonottavien) asiakkaiden lukumäärä asiakkaan odotusaika järjestelmässä olevien asiakkaiden lukumäärä asiakkaan järjestelmässä viettämä aika 20/09/2004 6

Esimerkki: M/M/1- FIFO jonon simulointi Simuloidaan M/M/1-jonon jononpituuden kehitystä ajassa hetkestä 0 hetkeen T olettaen, että systeemi on tyhjä hetkellä 0. Systeemin tilaa hetkellä t kuvaa siis jononpituus X t. Tapahtumia ovat asiakk. saapumiset ja poistumiset sekä simuloinnin lopetus Initialisointi: asetetaan X 0 = 0 arvotaan ensimmäisen asiakkaan saapumishetki Exp(λ)-jakaumasta Tapahtuman käsittely uuden asiakkaan saapuessa (hetkellä t) systeemin tilaa eli jononpituutta kasvatetaan yhdellä: X t = X t + 1 jos systeemi oli tyhjä asiakkaan saapuessa, generoidaan ko. asiakkaan poistumishetki t + S, missä S on ko. asiakkaan palveluaika (arvottu Exp(µ)-jakaumasta) generoidaan seuraavan asiakkaan saapumishetki t + I, missä I on saapumisten väliaika (arvottu Exp(λ)-jakaumasta) Tapahtuman käsittely asiakkaan poistuessa (hetkellä t) systeemin tilaa eli jononpituutta vähennetään yhdellä: X t = X t -1 jos systeemiin jäi asiakkaita, generoidaan seuraavaksi palveltavan asiakkaan poistumishetki t + S, missä S on ko. asiakk. palveluaika (arvottu Exp(µ)-jakaumasta) Lopetusehto: t > T 20/09/2004 7 Jononpituuden kehitys M/M/1-FIFO jonossa tapahtumien generointi 4 3 2 1 0 aika asiakkaiden saapumis- ja poistumishetket jononpituus aika 0 T 20/09/2004 8

1. Tapahtumien skeduloija (tapahtumalistan ylläpitäjä) ylläpitää linkitettyä listaa tulevista tapahtumista skeduloija voi muokata tapahtumalistaa, esim. skeduloi tapahtuman e tapahtumaan hetkellä t kumoaa aikaisemmin skeduloidun tapahtuman e (poistaa listasta) pidättää tapahtumaa e aikaintervallin t pidättää tapahtumaa e toistaiseksi (kunnes toinen tapahtuma skeduloi sen) skeduloi toistaiseksi pidätetyn tapahtuman on simulointiohjelman ydin, ohjelman useimmin suoritettu komponentti suoritetaan aina ennen tapahtumaa skeduloijaa voidaan kutsua useita kertoja tapahtumankäsittelyn yhteydessä skeduloimaan uusia tapahtumia 20/09/2004 9 2. Simulointikello ja ajansiirtomekanismi jokaisessa simulaattorissa on globaali muuttuja, joka edustaa aikaa simuloidussa järjestelmässä ajan siirtämiseseen voidaan käyttää kahta eri tapaa a) siirto vakioinkrementein aika jaetaan pieniin askeliin siirrytään eteenpäin askel kerrallaan käsitellään kerrallaan kaikki tapahtumat, jotka ovat sattuneet askeleen sisällä b) tapahtumapohjainen siirto aika siiretään osoittamaan lähinnä seuraavaan tapahtumaan menettely b) on yleisempi ja dynaamisempi vältetään ongelmat, jotka aiheutuvat useiden tapahtumien osumisesta samaan aikaväliin toisaalta ei tarvitse kelata tyhjää kuten joudutaan tekemään menetelmässä a) jos aikaväli on valittu hyvin lyhyeksi samanaikaisten tapahtumien välttämiseksi 20/09/2004 10

3. Järjestelmän tilamuuttujat globaalit muuttujat, jotka kuvaavat järjestelmän tilaa esim. asiakkaiden lukumäärä jonossa eri kuin lokaali muuttuja, esim. asiakkaan vaatima palvelun kesto, joka voidaan tallettaa asiakkaan yhteyteen 4. Tapahtumankäsittelijät kunkin tapahtuman käsittely suoritetaan omalla rutiinillaan rutiinit päivittävät tilamuuttujien arvoja ja skeduloivat uusia tapahtumia (kutsuvat tapahtumalistan ylläpitäjää) esim. asiakkaan saapumisen käsittelijä tai poistumisen käsittelijä 5. Syöttörutiinit simuloinnissa tarvittavien lähtöarvojen syöttörutiinit kysellään käyttäjältä parametrien arvot tai vaihteluvälit ja askeleet kartoitettaessa jonkin parametrin vaikutusta 20/09/2004 11 6. Raportin generaattori kerää simuloinnin kuluessa tilastoa halutuista muuttujista käsittelee tulokset tilastollisesti tulostaa halutussa muodossa 7. Initialisointirutiinit asettaa tilamuuttujien alkuarvot ja satunnaislukustreamien alkuarvot oma rutiini, jolla järjestelmä alustetaan annettuihin parametrien arvoihin oma rutiini, jolla ohjelma alustetaan samoilla parametrien arvoilla tehtävien toistojen alussa (laskurien nollaukset jne) 8. Trace-rutiini tulostavat välimuuttujien arvoja simuloinnin varrelta helpottaa ohjelman debuggausta on/off-kytkin: voidaan kytkeä pois päältä tuotantoajoja tehtäessä 20/09/2004 12

9. Dynaaminen muistinhallinta simuloinnin kuluessa systeemi elää uusia olioita tulee ja poistuu simulointikielissä ja nykyisissä yleiskielissä ohjelmoijan ei tarvitse tähän juurikaan puuttua 10. Pääohjelma sitoo ohjelman eri osat toisiinsa kutsuu syöttörutiineja ja intialisointirutiineja aloittaa simulointisilmukan lopulta kutsuu raportingeneraattoria 20/09/2004 13