Teoria. Prosessin realisaatioiden tuottaminen

Samankaltaiset tiedostot
Prosessin reaalisaatioiden tuottaminen

Simulointi. Tapahtumapohjainen

Teoria. Satunnaismuuttujan arvonta annetusta jakaumasta

Simulointi. Johdanto

Jonojen matematiikkaa

S Tietoverkkojen simulointi / Varianssinreduktiotekniikat 1(32) Teoria

Batch means -menetelmä

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

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

S Tietoverkkojen simulointi

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

S Tietoverkkojen simulointi / Varianssinreduktiotekniikat 1(37) Teoria

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

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

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

Teoria. Satunnaismuuttujan arvonta annetusta jakaumasta

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

Liikenneongelmien aikaskaalahierarkia

Algoritmit 1. Luento 4 Ke Timo Männikkö

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Harjoitus 2: Matlab - Statistical Toolbox

J. Virtamo Jonoteoria / Prioriteettijonot 1

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

ABTEKNILLINEN KORKEAKOULU

Poisson-prosessien ominaisuuksia ja esimerkkilaskuja

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

Dynaamiset regressiomallit

5. Stokastiset prosessit (1)

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

Esimerkki: Tietoliikennekytkin

Simuloinnin taktisia kysymyksiä

Harjoitus 8: Monte Carlo -simulointi (Matlab)

Harjoitus 8: Monte-Carlo simulointi (Matlab)

Syntymä-kuolema-prosessit

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

Sovellettu todennäköisyyslaskenta B

J. Virtamo Jonoteoria / Prioriteettijonot 1

Algoritmit 2. Luento 13 Ti Timo Männikkö

Harjoitus 8: Monte-Carlo simulointi (Matlab)

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.

Syntymä-kuolema-prosessit

Generointi yksinkertaisista diskreeteistä jakaumista

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

11. Javan toistorakenteet 11.1

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

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

12. Javan toistorakenteet 12.1

Simuloinnin taktisia kysymyksiä

Korvausvastuun ennustejakauma bootstrap-menetelmän avulla

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

S Tietoverkkojen simulointi

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Satunnaislukujen generointi

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

J. Virtamo Jonoteoria / Poisson-prosessi 1

Ohjelmoinnin perusteet Y Python

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

Inversio-ongelmien laskennallinen peruskurssi Luento 2

Algoritmit 1. Demot Timo Männikkö

Liikenneteoriaa (vasta-alkajille)

12. Javan toistorakenteet 12.1

Harjoitus 7: NCSS - Tilastollinen analyysi

Identifiointiprosessi

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

031021P Tilastomatematiikka (5 op) viikot 5 6

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

Kopulafunktiot. Joonas Ollila 12. lokakuuta 2011

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

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

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

Ohjelmoinnin peruskurssi Y1

Integrointialgoritmit molekyylidynamiikassa

Liikenneteorian tehtävä

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

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

Sovellettu todennäköisyyslaskenta B

Tikon ostolaskujen käsittely

Osa 2: Otokset, otosjakaumat ja estimointi

Tarkennamme geneeristä painamiskorotusalgoritmia

Diskreetit todennäköisyysjakaumat. Kertymäfunktio Odotusarvo Binomijakauma Poisson-jakauma

Ohjelmoinnin perusteet Y Python

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

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

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

Algoritmit 1. Luento 9 Ti Timo Männikkö

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

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

Esteet, hyppyprosessit ja dynaaminen ohjelmointi

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

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

Sovellettu todennäköisyyslaskenta B

Genetiikan perusteet 2009

Tilastollinen päättely II, kevät 2017 Harjoitus 1A

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

Tilaston esittäminen frekvenssitaulukossa ja graafisesti. Keskiluvut luokittelemattomalle ja luokitellulle aineistolle: moodi, mediaani, keskiarvo.

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

Vapaus. Määritelmä. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee:

Transkriptio:

Teoria Johdanto simulointiin Simuloinnin kulku -- prosessin realisaatioiden tuottaminen Tapahtumapohjaisen simuloinnin periaatteet Esimerkki: M/M/1 jonon simulointi Simulointiohjelman geneeriset komponentit Satunnaismuuttujan arvonta annetusta jakaumasta Tulosten keruu ja analyysi Varianssinreduktiotekniikoista 11/09/2006 1 Prosessin realisaatioiden 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 realisaatio 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 realisaation konstruointiin jollakin lyhyehköllä aikavälillä simuloinnin nykyhetkestä eteenpäin Satunnaismuuttujien arvojen arvonta perustuu ns. (pseudo)satunnaislukujen generointiin Prosessin realisaation konstruointi tehdään yleensä tapahtumapohjaisesti (discrete event simulation) 11/09/2006 2

Tapahtumapohjainen simulointi (1) Tapahtumapohjaisen simuloinnin toteutusta varten tulee ymmärtää: Mitkä ovat järjestelmän tilan ja havaintojen kannalta kiinnostavat suureet? Mitkä ovat olennaiset tapahtumat? Mitkä ovat tapahtumien laukaisijat ja niiden ajoitukset? Käytännössä vastaava järjestelmämalli koostuu monista osista (prosesseista) Osien toiminta esitettävissä usein tilakoneena Osaset kommunikoivat toistensa kanssa tapahtumien välityksellä Prosessi 1 Prosessi 2 Prosessi 3 Prosessi 4 11/09/2006 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 realisaation 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 11/09/2006 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 realisaation generointi; muutoin palaa kohtaan 2 11/09/2006 5 Teoria Johdanto simulointiin Simuloinnin kulku -- prosessin realisaatioiden tuottaminen Tapahtumapohjaisen simuloinnin periaatteet Esimerkki: M/M/1 jonon simulointi Simulointiohjelman geneeriset komponentit Satunnaismuuttujan arvonta annetusta jakaumasta Tulosten keruu ja analyysi Varianssinreduktiotekniikoista 11/09/2006 6

Esimerkki: M/M/1- FIFO jonon simulointi M/M/1 jono Asiakkaat saapuvat Poisson prosessin mukaisesti Asiakkaiden palveluajat noudattavat eksponentiaalijakaumaa 1 palvelin Odotuspaikkojen lkm. ääretön Kiinnostavia suureita: odottavien (jonottavien) asiakkaiden lukumäärä asiakkaan odotusaika järjestelmässä olevien asiakkaiden lukumäärä asiakkaan järjestelmässä viettämä aika 11/09/2006 7 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 11/09/2006 8

Jononpituuden kehitys M/M/1-FIFO jonossa tapahtumien generointi 4 3 2 1 0 aika asiakkaiden saapumis- ja poistumishetket jononpituus aika 0 T 11/09/2006 9 Teoria Johdanto simulointiin Simuloinnin kulku -- prosessin realisaatioiden tuottaminen Tapahtumapohjaisen simuloinnin periaatteet Esimerkki: M/M/1 jonon simulointi Simulointiohjelman geneeriset komponentit Satunnaismuuttujan arvonta annetusta jakaumasta Tulosten keruu ja analyysi Varianssinreduktiotekniikoista 11/09/2006 10

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 11/09/2006 11 2. Simulointikello ja ajansiirtomekanismi jokaisessa simulaattorissa on globaali muuttuja, joka edustaa aikaa simuloidussa järjestelmässä ajan siirtämiseen 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 11/09/2006 12

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 11/09/2006 13 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ä 11/09/2006 14

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 11/09/2006 15