Erkki Laitinen, Oulun yliopisto, matemaattisten tieteiden laitos Mallien tyyppejä
Mallin suunnittelusta Reaalimaailman systeemi Matemaattinen systeemi Tarkkailu Malli, laskenta, päätelmät populaation kehittyminen riistanhoito: metsästys, kalastus heikosti kytkettyjä systeemejä tuloksissa satunnaisuutta eri skenaariot urheilu virtauslaskenta lämmönsiirto kemalliset reaktiot fysikaaliset riippuvuudet tunnetaan mahdollista tehdä tarkkoja malleja
Mallintamisen tärkeä osa on päättää, mitkä asiat mallissa ovat tärkeitä ja mitkä eivät. Fysikaaliset systeemit: viskositeetti, tiheys, kokoon puristettavuus,... Ekologiset systeemit: saasteet, liikenne, metsästys... lämmönjohtavuus paineet lisääntyminen kuolemat Systeemi Mallintajan näkemys systeemistä vaikuttaa malliin Esim: usean palvelijan jonot: kuinka ihmiset käyttäytyvät jonossa K1 K2
Ei ole olemassa oikeata mallia tai väärää mallia. On vain hyviä malleja ja huonoja malleja. Testi Tarvitseeko mallia parantaa? Reaali probleema Ilmiön ennuste tai selite oletukset yksinkertaistukset näkemykset Tulosten tulkinta Matemaattinen malli Mallin ratkaisu Analyyttiset ja numeeriset menetelmät Mallintaminen on iteratiivinen prosessi.
Mallin rakentamisen askeleet: hahmota ongelma tee oletukset määrittele ja luokittele muuttujat määrittele muuttujien ja osamallien väliset yhteydet ratkaise malli totea mallin oikeellisuus testaa reaali datalla antaako malli järkevän tuloksen toteuta malli (TK:lla) ylläpidä
Ei, yksinkertaista Ei, yksinkertaista Tutki systeemiä Tunnnista käyttäytyminen, tee oletukset Osaatko muodostaa mallin? Kyllä Osaatko ratkaista mallin? Kyllä Tarkista mallin oikeellisuus poistu Sovella tuloksia systeemiin Tukitse tulokset Kyllä Ovatko tulokset hyviä? Ei, tarkenna
Ongelmat ovat huonosti asetettu, määrittele ne paremmin: Mitkä ovat probleeman kannalta tärkeitä muuttujia? Mitkä ovat riippuvia ja mitkä riippumattomia muuttujia? 1. Populaation kasvaminen. 2. Miten tehtailijan tulisi päättää tehtaan vuosituotannosta ja tuotteen hinnasta.
Esim. Auton polttonesteen kulutus. Skenaario: Tiellä on 55 mph rajoitus. Jokainen 5mph lisäys nopeuteen yli 50 mph nopeuksissa lisää polttoaineen kulutusta siten, että gallonalla (gal) päästään 1 maili (mil) vähemmän. ( Boost Fuel Economy ). Ongelman määrittely: Mikä on ajoneuvon nopeuden ja polttonesteen kulutuksen välinen suhde. Oletukset: Autoon vaikuttaa kahdenlaiset voimat 1) eteenpäin vievät (+) ja 2) jarruttavat ( ). Eteenpäin vievät voimat riippuvat: polttonesteestä, koneen tehosuhteesta, vaihteiston välityksestä, ilman lämpötilasta, ajoneuvon nopeudesta,.. Jarruttavat voimat riippuvat: Kitkavoima, mikä riippuu auton painosta, renkaista, tien pinnasta. Ilman vastus, mikä riippuu nopeudesta, auton muodosta, tuulesta, ilman tiheydestä... Muut vaikuttavat tekijät: kuljettajan tottumukset, maasto,... Kulutus=f ( vetovoima, hidastavat voimat, tottumukset, jne.)
SvOutPlaceObject Yksinkertaistus: Hae tietylle kuljettajalle ja hänen ajoneuvolleen, tietyissä olosuhteissa (tieolot, ilmanala), maantienopeudella (lähellä optimaalista polttonesteen kulutusta) selitys, kuinka kulutus vaihtelee nopeuden kasvaessa. Tietty kuljettaja > kiinitetään auton tyyppi, tavat Tietty nopeusluokka > vakio moottorin tehosuhde, vaihteiston välitys Menetetyt mailit / gallona 3 ~Vakionopeus (kiihtyvyys nolla) => voimien summa on nolla (Newtonin II laki) 2 1 SvOutPlaceObject K Gallona polttoainetta sisältää energian K (vakio) C r polttoaine / aikayksikkö 5 10 15 20 Nopeus 50 mph Cr K auton teho Teho = voima x nopeus, ts. F p Cr K v Cr v (K vakio)
Hidastavat voimat: oletetaan että kitkavoimat ovat peniä verrattuna ilmanvastuksen aiheuttamaan voimaan. Järkevä malli jarrruttaville voimille on: F Sv v r 2 2, missä S (vakio) on liikettä vastaan kohtisuora pinta ala. Cr v tai C v v = 2 3 r Yo. Yhtälö antaa laadullista tietoa kuinka polttonesteen kulutus (gal/h) kasvaa nopeuden kasvaessa. Parempi mittari kulutukselle on matka / (käytetty polttoaine) Sijoittamalla matka=vt ja käytetty määrä= C t saadaan kulutus = v C r v 2 r
Tehtävä. Milloin pitäisi vaihtaa auto? Mitkä tekijät vaikuttavat päätökseen? Mitkä muuttujat voidaan unohtaa? Määrittele tieto, mitä tarvitsisit määrätäksesi valitsemiesi muuttujien väliset relaatiot.
Yksinkertaisia kasvumalleja: Diskreetti kasvumalli (differenssiyhtälö): Tietyin väliajoin osa eläimistä ( ) synnyttää jälkeläisiä. Populaatio ajanhetkellä k+1 on: N N α N k SvOutPlaceObject k k k + 1 = +, = 0,1, 2,... Tietyin väliajoin osa eläimistä ( ) kuolee. Yhtälö populaatiolle ajanhetkellä k+1 on: SvOutPlaceObject N + = (1 + α ) N β N = (1 + α β ) N = γ N, k = 0,1, 2,... k 1 k k k Ajan suhteen askeltamalla saadaan: k N N N Ratkaisu: N N, 1 0 N 2 2 1 0 N 3 3 2 0 k = γ = γ N = γ = γ N = γ M = γ N = γ N k k 1 0
Jatkuva kasvumalli (differentiaaliyhtälö): Kun populaatio on iso voidaan lisääntymisten ja kuolemien ajatella tapahtuvan jatkuvasti. Populaation koko millä tahansa ajanhetkellä P( t + t) : P( t + t) = P( t) + r t P( t) r on uusien yksilöiden nettolisäys/aikayksikkö Jakamalla saadaan: t:llä P( t + t) P( t) = r P( t) t P( t) = rp( t), t > 0 t P = r dt P ln P = rt + vakio (integroimalla) Kun t > 0, saadaan: (1. Kl, DY) P( t) aika P(t)=A e rt
Harjoitus: Pankki tarjoaa lainaa 1% kuukausittaisella korolla. Jos talletat määrän P(0) niin kuinka paljon sinulla on kuukauden jälkeen. Kirjoita differenssiyhtälö talletuksen määrälle, P(k+1), k+1:n kk jälkeen. Jos aloitat 1000 e säästöllä ja korko lisätään kuukausittain (viim. Päivän säästölle), niin paljonko sinulla on vuoden jälkeen? Sopisiko jatkuva malli tilanteeseen paremmin?
Autojen vuokraus (differenssiyhtälöryhmä): Yhtiö harrastaa autojen vuokrausta Helsingissä ja Oulussa. Autot palautuvat paikkakunnille seuraavan kaavion mukaisesti: 30% 60% Helsinki Oulu 70% 40% Ongelma: Yhtiö on kiinnostunut tietämään kuinka paljon heidän on kuljetettava asiakkaiden palauttamia autoja Oulu Helsinki välillä, jotta autoja olisi saatavilla molemissa päissä. O(n) = autojen lukumäärä Oulussa päivän n lopussa H(n) = autojen lukumäärä Helsingissä päivän n lopussa Historiatiedosta saadaan seuraava yhtälöryhmä: H(n+1) = 0.6 H(n) + 0.3 O(n) O(n+1) = 0.4 H(n) + 0.7 O(n)
Tasapainotilanteessa pätee: O=O(n+1)=O(n) ja H=H(n+1)=H(n) H = 0.6 H + 0.3 O O = 0.4 H + 0.7 O H=3/4 O yhtiöllä on 7000 autoa. Systeemi säilyy stabiilina jos autoja on aluksi 3000 Helsingissä ja 4000 Oulussa. Mitä tapahtuu jos autoja on aluksi eri määrä kaupungeissa? 8000 6000 7000 5000 6000 5000 4000 3000 4000 3000 2000 Helsinki Oulu 2000 1000 1000 0 0 1 2 3 4 5 0 0 1 2 3 4 5
Päätelmiä: viikossa saavutetaan stabiili tila vaikka jommalla kummalla paikkakunalla ei olisi yhtään autoa, tasapainotila on stabiili yhtälö ei ole herkkä alkuarvoille Harj. Onko yhtälö herkkä kertoimilleen. Kokeile iteroida varioimalla kertoimia.
Havaintoihin pohjautuvat mallit 25 20 15 10 5 0 0,00 2,00 4,00 6,00 8,00 25 20 15 10 5 0 0,00 2,00 4,00 6,00 8,00 25 20 interpolointi 15 10 5 optimointi 0 0,00 2,00 4,00 6,00 8,00
tarkastele dataa Lopeta Ei trendi? Kyllä poista harha etsi sopiva malli, esim. polynomi sovita! onnistuiko? Ei Kyllä Lopeta Kyllä uusi malli? Ei
interpolointimenetelmät matala asteinen käytös? Ei Kuutiospline (lineaarinen) spline Kyllä Ei sovita matala asteinen interpolointipolynomi Onko tulos hyvä? Kyllä Lopeta Kyllä Onko tulos hyvä? Lopeta Ei Lopeta
Mallintaminen & Simulointi Matemaattinen mallintaminen: Muodostetaan reaalisysteemin abstraktio analysointi, ennustaminen, optimointi tasapainoilu realismin ja yksinkertaisuuden välillä Numeeriset ja analyyttiset menetelmät Simulointi: Numeerinen tekniikka kokeiden tekemiseksi tietokoneella, mikä sisältää matemaattisia ja loogisia malleja. Talouden ja teollisuuden ajasta riippuvat systeemit, usein reaaliaikaiset.
Milloin simulointi on tarpeen: Systeemi on liian monimutkainen kuvattavaksi matemaattisella yhtälöllä. Talouden järjestelmät, yritystoiminta, teollisuuslaitokset, jonosysteemit Vaikka matemaattinen malli voitaisiin muodostaa, saattaa nopeampi ja helpompi tapa olla simulointi. Esim. Monimutkaiset jonosysteemit simulointia voidaan käyttää opetustarkoituksiin. Esim. Taloustiede, lääketiede,.. Simulointimallin suunnitteleminen saattaa tuottaa arvokkaampaa tietoa kuin itse simulointi systeemin eri vaihtoehdoista. Simulointi mahdollistaa testaamisen. Simuloinnin avulla saadaan systeemin parametreista tietoa. Mitkä ovat tärkeitä ja mitkä eivät. Uusia skenaarioita (näkökantoja) voidaan testata simuloimalla Simuloimalla voidaan testata dynaamisia, stokastisia prosesseja.
Mallintamistekniikkana, simulaatiomallintaminen ei ole ideaalinen, sillä on muutamia varjopuolia: Simuloinnista saadaan pikemminkin tilastollisia arvioita, kuin tarkkoja arvioita mallin parametreille. Simuloinnin tulos sisältää aina epävarmuutta. Simulointi on yleensä laskennallisesti hyvin aikaavievää (koneaika, tutkijan aika) Simulointi antaa hyödyllistä informaatiota systeemistä ainoastaan jos tutkittavan systeemin malli on validi. Simulointimallin tyyppejä: Staattinen / Dynaaminen. Staattinen malli ei muutu ajan suhteen kun taas Dynaaminen muuttuu. Deterministinen / Stokastinen. Jos simulointi ei sisällä satunnaismuuttujia niin kyseessä on deterministinen malli. Mallia toistamalla saadaan aina sama tulos. Stokastinen malli sisältää ainakin yhden satunnaismuuttujan. Mallin antama tuloskin on satunnaismuuttuja. Jatkuva / Diskreetti. Jatkuva ja Diskreetti malli on määritelty samoin kuin jatkuva ja diskreetti systeemi.
Simuloinnissa ajastusmekanismi näyttelee tärkeää osaa! Diskreetissä tapahtumapohjaisessa simuloinnissa tilamuuttujat muuttavat arvojaan diskreetteinä ajanhetkinä. Muutosta tilamuuttujassa kutsutaan tapahtumaksi (event) ja se on tapahtumapohjaisen simuloinnin perusta. prosessi Toiminto 1 Toiminto 2 Tap. 1 saapuminen Tap. 2 palvelu alkaa työ 1. Tap. 3 palvelu alkaa työ 2. Tap. 4 palvelu päätyy työ 1. Tap. 5 palvelu päätyy työ 2. AIKA
Solukkopohjaisen radioverkon Simulointimalli Oletukset: Verkko koostuu N :stä tukiasemasta BS(i) (i=1,..,n), joilla kullakin on K radiotaajuutta. Puhelujen saapumistiheys noudattaa Poisson jakaumaa keskiarvolla m Puhelujen pituudet noudattavat eksponenttijakaumaa keskimääräisen pituuden ollessa n. Puhelut liikkuvat tiellä vakionopeudella ja ne ovat jakautuneet tielle tasaisesti. Kukin tukiasema palvelee ympäristössä olevaa maantieteellistä aluetta (peittoalue). Puhelut välittyvät peittoalueella ko. tukiaseman kautta, mikäli se ei ole täysin kuormitettu. Liikkuvat puhelimet vaihtavat peittoalueen rajalle tullessaan tukiasemalta toiselle (handover). Tukiaseman vaihto perustuu ennustettuihin tai mitattuihin kentän voimakkuuksiin ja lähetyksen laatuun.
Simulointimallissa kentänvoimakkuuden eli tehon, laskeminen perustuu kaavaan: P = P 10α log d + B( h, h, F ) r t 10 b m P r + C( a) + 20 log R + 20 log L 10 10 P t lähetetty teho α [2,4] d ajoneuvon ja tukiaseman välinen etäisyys B funktio, riippuu tukiasem an korkeudesta, h, ajoneuvon antennin kork eudesta, h m, taajuudesta F. C funktio, riippuu maastost a R Rayleigh jakautunut sm. L Lognormaalisti jakautunut sm. 0
Puhelujen laatuun vaikuttavat taas verkon kuormitus ja vmpäristötekijät. Tukiaseman vaihto perustuu tukiasemille määritellyille kentänvoimakkuuden ja laadun raja arvoihin. Määrittämällä ko. raja arvot hyvin voidaan verkon suorituskyky optimoida. Solupohjaisen radioverkon simulaatio on toteutettu SLAM II kielellä (Simulation Language for Alternative Modelling). Simulointi on toteutettu prosessiorientoituneena mallina, jossa systeemi rakennetaan SLAM 11 verkostosvmboleista. Verkossa on kymmenen tukiasemaa BS(1) BS(10), joissa kapasiteettina on kunkin tukiaseman käytössä olevien taajuuksien määrä. Malliin saapuva olio on tukiaseman (BS) ja ajoneuvoaseman (MS) välinen puhelu. Tukiaseman vaihdot riippuvat yhteyden laadusta ja kentän voimakkuudesta. Seuraavat parametrit liikkuvat olion (puhelun) mukana svsteemin läpi: (1) SERVTIME: puhelun kesto sekunteina (2) POWER: vastaanotettu teho (3) QUAL: vastaanotettu laatu Mallilla on syöttötietoina raja arvot, joiden perusteella tukiasemaa yritetään vaihtaa. Ne ovat teholle X(1) ja laadulle X(2). Simuloinnin tarkoituksena on selvittää, miten eri X(1) :n ja X(2) :n arvot vaikuttavat verkon toimintaan (tukiaseman vaihdot, katkenneet puhelut, käyttöaste).
Lyhyt kuvaus käytetystä SLAM II verkosta on seuraava: Puhelut luodaan CREATE solmussa ja niiden attribuuttien alustus suoritetaan ASSIGN solinussa. Sitten ne reititetään SEL nimiseen AWAIT solmuun, jossa suoritetaan tukiaseman valinta ALLOC aliohjelman avulla. Tukiasemanvalinta algoritmi on seuraava: (i) Jos yhdelläkään tukiasemalla ei ole vapaata kapasiteettia (eli vapaata kanavaa), kun puhelu tulee systeemiin, ohjataan puhelu BALK nimiseen COLLECT solmuun, joka kerää tilastoa puheluista, joita ei ole saatu yhdistettyä (ii) Jos puhelun nykyiset tehon tai laadun ; arvot alittavat sallitut raja argot eikä muilta tehokkaammilta tukiasemilta löydy vapaata kapasiteettia, ohjataan puhelu LOST nimiseen COLLECT solrnuun, joka tilastoi katkenneet puhelut (iii) Muussa tapauksessa varataan kanava parhaalta mahdolliselta tukiasemaita ja ohjataan puhelu MS nimiseen GOON solmuun Seuraavaksi kasvatetaan aikaa kahdella sekunnilla ja siirretään puhelu ASSIGN solmuun, jossa lasketaan uudet arvot parametreille QUAL, POWER ja SERVTIME Uusilla arvoilla suoritetaan seuraava tukiaseman vaihtoa mallittava algoritmi: (i) Jos palveluaika (SERVTIME) on positiivinen ja teho (POWER) sekä la laatu (QUAL) ovat sallituissa rajoissa, ohjataan puhelu takaisin solmuun MS (ii) Jos SERVTIME on positiivinen ja POWER tai QUAL alittaa sallilun rajan, suoritetaan tukiaseman vaihto. Puhelu ohjataan EVENT solmuun, joka vapauttaa käytössä olleen tukiaseman. Ohjataan sitten puhelu COLLECT solmuun, joka kerää tietoa tukiaseman vaihdoista Sitten jatketaan SEL nimiseen AWAIT solmuun, jossa valitaan uusi tukiaserna. (iii) Muussa tapauksessa SERVTIME<0. Tällöin puhelu ohjataan EVENT solmuun, joka vapauttaa tukiaseman kapasiteettia. Sitten puhelu jatkaa COlLECT solmuun, jossa kerätään tilastotietoa normaalisti päättyneistä puheluista.