johdanto - jyväskylän...

29
Simulointi Johdanto

Upload: others

Post on 13-Aug-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Simulointi

Johdanto

Page 2: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Simulointi

• Simulointi ~ jäljittely

– Pyrkii kuvaamaan tutkittavan ilmiön tai systeemin oleellisia piirteitä mallin avulla.

– Systeemin rajaus ja tarkasteltavat piirteet määriteltävä ennen mallin kiinnittämistä ja simulointia.

– ”Malli” sisältää kolme mallia:• Systeemin tuloksen tarkasteltavat ominaisuudet

• Systeemin (mallinnettu) syöte

• Systeemin toiminnallinen malli

Page 3: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Mallit

• Malleja voidaan luokitella eri tavoin

– Konkreetti/abstrakti

• pienoismalli vs tietokonemalli

– Deterministinen/stokastinen

• Tunnettu vs. satunnainen data

– Analyyttinen/numeerinen

• Ratkaisulle kaava vs likimääräisratkaisu

– Jatkuva/diskreetti

• Ääretön vs äärellinen määrä tiloja ja muutoksia

Page 4: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkkejä

• ”Vino heittoliike”

– Yhtälöt ja alkuarvot tunnetaan, ratkaisulle

esitys kaavana (deterministinen/analyyttinen)

U_t = V, V_t = -g, W_t=0,

U(0)=U_0, V(0)=V_0, W(0)=W_0,

U(t)= U_0 + tV_0 + gt^2/2, W(t)=W_0

Page 5: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkkejä• ”Tykin ammus”

– Yhtälöt monimutkaisemmat (ilmanvastuksen ja

tuulen osuus), lähtönopeus ja tuuli epätarkkoja

– Edellyttää numeerista ratkaisua,

epävarmuuden arviointi tärkeää (stokastisuus)

Page 6: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkkejä

• Game of life

– Deterministiset säännöt, äärellinen määrä sääntöjä ja

solujen tiloja (deterministinen, diskreettiaikainen)

– http://en.wikipedia.org/wiki/Conway%27s_Game_of_L

ife

• Kassajono

– Diskreetti (äärellinen määrä tiloja/tapahtumia),

– Stokastinen (ajoista vain tilastollista dataa)

– Joskus analyyttinen (lauseke halutulle

ominaisuudelle)

Page 7: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Kurssirunko

• Kurssi painottuu äärellisiin, stokastisiin

malleihin (ns. discrete event) ja niiden

numeerisiin simulointeihin.

• Esitietoina todennäköisyyslaskennan ja

tilastotieteen perusteita sekä olio-

ohjelmointia.

Page 8: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Luentorunko

• Johdanto

• Simulointiparadigmat

• Tapahtumapohjainen

simulointi

• Oliopohjainen

simulointi

• Satunnaisluvut

• Monte Carlo

• Tasapainotilan

simulointi

• Varianssin hallinta

• Kokeensuunnittelu ja

Metamallinnus

Page 9: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Oppimistavoitteet

– Tuntee

tapahtumapohjaisen

simuloinnin keskeiset

käsitteet

– Hallitsee

satunnaislukujen

systemaattisen

generoinnin

– Tuntee keskeisimmät

simulointipradigmat ja

niiden

toteutusstrategiat

– Osaa toteuttaa

yksikertaisia

simulointimalleja

– Osaa analysoida

yksittäistä

simulointikoetta ja

arvioida tulosten

luotettavuutta

– Osaa suunnitella

tavoitteellisia

simulointikoesarjoja

Page 10: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkki (1/8)

• (Auton) pesuautomaatti

– Tarjolla kaksi erilaista mallia (hinta,

operointikustannus ja kapasiteetti poikkeavat).

– Tiedossa potentiaalinen asiakasvirta.

– Kumpi malli on kannattavampi (ja onko

kumpikaan kannattava).

– Arvioitava tuotto/aikayksikkö

Page 11: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkki (2/8)

• Tuotto/aikayksikkö• P= aU –b

• b = kiinteät kulut/aikayksikkö

• a = tuotto/aikayksikkö pesun aikana

• U = käyttöaste

– a ja b tunnetaan tai ovat arvioitavissa

– U määrättävä simuloinnin avulla

Page 12: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkki (3/8)

• Tilanteesta tunnetaan• Potentiaalisten asiakkaiden käyttäytyminen

(tuloaikojen jakauma)

• Maksimaalinen jonon pituus

• Palvelutapahtuman kesto(n jakauma)

• Haluttu tulos

– Käyttöaste U =T_busy/T_total

• Tai 1 – T_idle/T_total

– Tai eri varianttien käyttöasteiden erotus

Page 13: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkki (4/8)

• Tila kuvattavissa yhdellä muuttujalla

– N(t)= asiakkaiden määrä hetkellä t

• Systeemin tilaan kohdistuu kahden tyyppisiä tapahtumia

• Tulo: uusi asiakas (i) saapuu hetkellä t= t_a(i)

• Lähtö: asiakas (j) poistuu hetkellä t= t_d(j)

• Jos N=0, systeemi on tyhjä (asema ei käytössä). = > Simuloinnissa selvitettävä ajat, jolloin N=0 (tai N>0).

Page 14: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkki (5/8)

• Jos N(0) ja t_a:t ja t_d:t tunnetaan, N(t) on

yksikäsitteisesti määrätty ja laskettavissa.

• Tulo- ja lähtöaikojen määrääminen

edellyttää systeemin simulointia.

– Neljä muuttujaa + laskurit

• AT, DT (seuraavat tulo- ja lähtöajat)

• N (asiakkaiden määrä)

• t (nykyinen aika)

• E, T_idle (laskurit tyhjäajalle)

Page 15: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkki (6/8)

• Alusta simuloinnin kesto (T), jonon pituus

M. t=0, laskurit (T0=0, E=0), N=0 (tyhjä

systeemi), DT=maxint

• AT= t+ ”tuloaika”

• Toista kunnes t>T• Jos AT<DT tapahtuma ”AT”, muuten ”DT”

• Raportoi tulokset

Page 16: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkki (7/8)

• ”AT”

– t=AT;

– Jos N<= M, N=N+1;

– Jos N=1

• DT=t+ ”palveluaika”

• T0=T0+t-E;

– AT=t+”tuloaika”;

• ”DT”

– t=DT;

– N=N-1;

– Jos N>0

• DT=t+ ”palveluaika”

– Muuten

• DT=maxint;

• E=t;

Page 17: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Esimerkki (8/8)

• Esimerkki oli ”brute force” lähestyminen

hyvin yksinkertaiseen tapaukseen.

• Yleistettävyys monimutkaisempiin

tilanteisiin on huono • useampia tapahtumatyyppejä, monimutkaisempi

tila, asiakkaiden seuraaminen.

• ”Kaikki” tehdään itse• Tietojen keruu, kirjanpito tapahtumista ja

systeemin tilasta, jne.

Page 18: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Vaativampi esimerkki

• Tarkastellaan esimerkkiä, jossa on

enemmän rakenneosia ja niiden

vuorovaikutusta

• Otetaan tarkasteluun jakeluverkosto

purku- ja lastausoperaatioineen sekä eri

pisteiden välisine matkoineen

• Kuvataan esimerkki konttisatamille

Page 19: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Konttisatamaverkosto

• Tarkastellaan useamman sataman

verkostoa ja näiden välistä liikennettä

• Oletetaan liikenteen määrä (satamista

toiseen) keskimäärin tunnetuksi ja

annetuksi

• Satamilla on erilaisia ominaisuuksia

(lastauslaitureiden määrä ja kapasiteetti)

• Laivoilla erilaisia vakioreittejä

Page 20: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Konttisatamat

• Mitä voitaisiin simuloida, mitä muutella

– Satamien käyttöasteet, odotusajat

– Tarvittavien laivojen määrät, reittien kestot ja

kestojen vaihtelut (vaikutukset työvuoroihin)

– Eri reittivaihtoehtojen vaikutukset

– Eri jonotusstrategiat

– Jne

Page 21: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Konttisatamat

• Mitkä ovat mallin rakenneosia

– Satamat

– Lastauslaiturit

– Laivat

– Kontit?

– Tarvitaanko muuta?

Page 22: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Konttisatamat

• Tapahtumat ja vuorovaikutukset

– Laiva saapuu satamaan

– Laivan purku/lastaus alkaa laiturilla

– Laivan purku/lastaus päättyy

– Laiva lähtee matkalle seuraavaan satamaan

– (Laiva luodaan systeemiin)

– (Laiva poistuu systeemistä)

Page 23: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Konttisatamat

• Aloitetaan yksinkertaistetusta tapauksesta

(laiva saapuu laituriin ja puretaan)

• Yksinkertaisin asiakas-palvelu –malli (vrt

pesu-asema)

– Laiva luodaan ja asetetaan jonoon

– Laiva otetaan jonosta laituriin ja aloitetaan

purku (konttien määrä tunnettava)

– Purku loppuu, laituri vapautuu ja laiva

poistetaan

Page 24: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Konttisatamat

• Isossa satamassa on useampia laitureita

• Samankaltaisia laitureita ei kannata hallita

erillisinä

• Vapaat laiturit voi pistää jonoon

– Alussa sataman kaikki laiturit vapaa –jonoon

– Laivan saapuessa vapaa –jonosta otetaan

laituri

– Laituri palaa jonoon kun laiva on purettu

Page 25: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Konttisatamat

• Laivoilla on yleensä reitit.

– Laiva luodaan, sille määritellään reitti ja se

asetetaan lähtösatamaan (tarvittaessa jo

valmiiksi lastattuna)

– Laiva aloittaa siirtymän seuraavaan satamaan

– Laiva saapuu ja puretaan ja se aloittaa

siirtymän eteenpäin

– Laiva poistuu (jos ei käytetä syklistä reititystä)

Page 26: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Simuloinnin vaiheet 1

• Systeemin/ongelman tunnistaminen• Miten rajata tarkastelu, mihin kysymyksiin haetaan

vastausta.

• Mallin suunnittelu• Systeemin osat ja niiden väliset vuorovaikutukset

• Tiedon keruu ja parametrien arviointi• Mistä saadaan realistiset syöttötiedot (paljon kovaa

työtä ja mittausta)

Page 27: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Simuloinnin vaiheet 2

• Ohjelman suunnittelu• Mallin logiikan ja tarvittavien käsitteiden

kuvaaminen

• Ohjelman toteutus• Simulaattorin koodaus

• Ohjelman testaus• Koodin debuggaus

Page 28: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Simuloinnin vaiheet 3

• Mallin validointi• Mallin laadullinen analyysi (vertailut havaittuun,

intuitiivisiin odotuksiin, yksinkertaistetut tilanteet, tulosten riippuvuus epävarmoista parametreista)

• Mallin kokeilu• Ensimmäiset tuotantoajot, tulosten

tarkkuus/luotettavuus, tuotantokokeiden suunnittelu.

• Tulosten analyysi• Johtopäätökset, riski/herkkyysanalyysi,

päätöksenteko ja mallipohjainen optimointi

Page 29: Johdanto - Jyväskylän yliopistousers.jyu.fi/~tiihonen/simul/luennot/luento1/Simulointi_luento1.pdf · Johdanto. Simulointi • Simulointi ~ jäljittely –Pyrkii kuvaamaan tutkittavan

Simuloinnin periaatteita

• Älä simuloi, jos ei ole pakko

– Analyyttiset ja deterministiset ratkaisut

ensisijaisia

• Älä simuloi, jos et ymmärrä, mikä on

kysymys

– Tavoitteen vaihto kesken mallin rakennuksen

voi olla todella vaikeaa

– When computing starts, thinking stops!