Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Samankaltaiset tiedostot
Darwin: Tutkimusprojektin esittely

OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö. Ohjaaja: Outi Sievi-Korte TE213 Päivystys ti klo 14-16

Harjoitustyö Ohjaaja: Outi Räihä TE213. OHJ-3100 Ohjelmien ylläpito ja evoluutio. Yleiskatsaus.

Geneettiset algoritmit

OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö 2011

Harjoitustyö Ohjaaja: Outi Räihä TE213

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

AS Automaation signaalinkäsittelymenetelmät. Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy.

Populaatiosimulaattori. Petteri Hintsanen HIIT perustutkimusyksikkö Helsingin yliopisto

III Perinnöllisyystieteen perusteita

Algoritmit 2. Luento 12 To Timo Männikkö

Ohjelmistojen suunnittelu

Harjoitustehtävät viikolle 42

Evoluutio. BI Elämä ja evoluutio Leena Kangas-Järviluoma

Katkonnanohjaus evoluutiolaskennan keinoin

Algoritmit 2. Luento 12 Ke Timo Männikkö

ohjelman arkkitehtuurista.

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

Uudelleenkäytön jako kahteen

Tehokkaiden strategioiden identifiointi vakuutusyhtiön taseesta

DNA sukututkimuksen tukena

Metsägenetiikan sovellukset: Metsägenetiikan haasteet: geenit, geenivarat ja metsänjalostus

S Laskennallinen systeemibiologia

Data Envelopment Analysis (DEA) - menetelmät + CCR-DEA-menetelmä

Ohjelmiston toteutussuunnitelma

Perinnöllisyys. Enni Kaltiainen

GEENIVARAT OVAT PERUSTA KASVINJALOSTUKSELLE. Merja Veteläinen Boreal Kasvinjalostus Oy

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Lataa Kelpoisimman synty - Andreas Wagner. Lataa

Suunnitteluratkaisut ja niiden arviointi sulautetuissa järjestelmissä

Onnittelut PC SpeedCAT perheeseen liittymisestä

Evolutiivinen stabiilisuus populaation

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Ohjelmistotekniikan menetelmät, kesä 2008

Trichoderma reesein geenisäätelyverkoston ennustaminen Oskari Vinko

Lataa Evoluutiobiologia - Mats Björklund. Lataa

Lineaarinen optimointitehtävä

Avainsanojen poimiminen Eeva Ahonen

SELVITYS SIITÄ MITEN ERÄÄT PERINNÖLLISET SAIRAUDET (KUTEN GPRA JA FUCOSIDOSIS) PERIYTYVÄT ENGLANNINSPRINGERSPANIELEISSA

Ohjelmistojen mallintaminen, kesä 2009

Suunnitteluvaihe prosessissa

Koodimalli Code Model

TOIMINNALLINEN MÄÄRITTELY MS

Ohjelmistojen mallintaminen, mallintaminen ja UML

Tietorakenteet, laskuharjoitus 7, ratkaisuja

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Algoritmit 2. Luento 11 Ti Timo Männikkö

Kuvioton metsäsuunnittelu Paikkatietomarkkinat, Helsinki Tero Heinonen

Ohjelmistotekniikan menetelmät, kevät 2008

Luento 13: Geneettiset Algoritmit

Epigeneettinen säätely ja genomin leimautuminen. Tiina Immonen Medicum, Biokemia ja kehitysbiologia

Algoritmit 1. Demot Timo Männikkö

Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu

Lanseeraustiedote. DP6000 2K Pikapohjamaali. Lokakuu 2015

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit

Nopea, hiljainen ja erittäin taloudellinen ilmanpoisto

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Tiedonsiirto- ja rajapintastandardit

Sukusiitoksesta sukulaistumiseen - jalostustietojärjestelmä työkaluna. Rovaniemi Susanna Back, Suomen Hippos ry

Ohjelmistojen mallintaminen. Matti Luukkainen

SIJOITTAJAN OPAS ETF-rahastoihin

Pilviratkaisut ovat entistä suositumpia. Mutta mikä on oikea ratkaisu sinun maailmassasi? Lähde matkalle läpi avaruuden, ajaan ja maalaisjärjen

Haluatko olla mukana toiminnassa, jolla on merkitystä?

Electric power steering

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Ohjelmistoarkkitehtuurit, syksy

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Miten geenit elelevät populaatioissa, vieläpä pitkiä aikoja?

9. Ohjelmistoarkkitehtuurien arviointi

Epigeneettinen säätely ja genomin leimautuminen. Tiina Immonen BLL Biokemia ja kehitysbiologia

Algoritmit 2. Luento 13 Ti Timo Männikkö

Zonation merialuesuunnittelussa

Keskitetty materiaalilogistiikka Pohjois-Suomeen?

OA:n kanoninen malli III

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.

Ennustamisen ja Optimoinnin mahdollisuudet

ArcGIS.com. uusia tapoja jakaa paikkatietoa

käyttötapaukset mod. testaus

Lentotiedustelutietoon perustuva tykistön tulenkäytön optimointi (valmiin työn esittely)

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Monikkoperheet. kaksoset ja kolmoset kasvatus ja yksilöllisyyden tukeminen. Irma Moilanen Lastenpsykiatrian professori, emerita Nettiluento 4.9.

Demo 1: Simplex-menetelmä

Mustaruoste uhkaa romahduttaa maailman vehnäsadot jälleen

Naudan perinnöllisen monimuotoisuuden tutkimus

Meripihka. Trilobiitti. 1. Fossiilit. Hominidin kallo. Kivettynyt metsä. Ramses Suuri. Jäätynyt mammutti. Jäämies

6. Arkkitehtuurityylit

Peittyvä periytyminen. Potilasopas. Kuvat: Rebecca J Kent rebecca@rebeccajkent.com

9. Ohjelmistoarkkitehtuurien arviointi

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Oppimistavoitteet. Koodimalli Code Model. Näkymätyypit. Näkymätyypit Yksi arkkitehtuuri monta näkymää NÄKYMÄTYYPIT

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Ohjelmistoarkkitehtuurien arviointi

Biodiversiteetti Luonnon monimuotoisuus Naturens mångfald Biodiversity

Mat Sovelletun matematiikan erikoistyöt. Geneettiset algoritmit ja sukupuolten taistelu

Johdatus verkkoteoriaan 4. luento

Ohjelmistoarkkitehtuurit kevät

Transkriptio:

OHJ-3200 Ohjelmistoarkkitehtuurit 1 Arkkitehtuurien tutkimus Outi Räihä 2 Darwin-projekti Darwin-projekti: Akatemian rahoitus 2009-2011 Arkkitehtuurisuunnittelu etsintäongelmana Geneettiset algoritmit Perusajatus Valikoiva risteytys Monioptimointi 3 Johdanto Ohjelmistokehitys on iso bisnes ja ohjelmistojen suunnitteluun käytetään paljon aikaa ja rahaa Yleensä arkkitehdillä tapana käyttää tuttuja ratkaisuja arkkitehtuuri todennäköisesti toimii kohtuullisen hyvin ja säästetään aikaa, mutta rajoittaa luovia ratkaisuja Ohjelmat saadaan toimiviksi monella tavalla, mutta kaikki tavat eivät ole yhtä laadukkaita Laatua arvioidaan monen eri ominaisuuden suhteen, esim. käytettävyys, luotettavuus, muunneltavuus, tehokkuus Kilpailun kovetessa laatu saattaa kärsiä Voitaisiinko laatua parantaa helposti ja halvalla? 1

Arkkitehtuurisuunnittelu etsintäongelmana 4 Oletus: Arkkitehtuuri on yhdistelmä suunnittelumalleja ja tyylejä Laadukkain arkkitehtuuri saadaan, kun oikeita suunnittelumalleja/tyylejä käytetään oikeissa paikoissa Tehtävänä on löytää se yksilö, jossa on paras kombinaatio suunnittelumalleja ja -tyylejä optimointiongelma Optimointi on työlästä ihmiselle käytännössä ei ole mahdollista käydä läpi kaikkia vaihtoehtoja Voisiko etsinnän automatisoida? Etsintäalgoritmit Optimointiongelmiin käytetään etsintäalgoritmeja Etsintäalgoritmit käyvät läpi suurta ratkaisujoukkoa siirtyen satunnaisesti ratkaisusta toiseen Geneettinen algoritmi pohjautuu Darwinistiseen ajatukseen luonnonvalinnasta Huonot yksilöt karsitaan pois, parhaat jäävät jäljelle Parhaita yksilöitä jatkojalostetaan ja aikaa myöden saavutetaan yhä parempia yksilöitä Geneettiset algoritmit Ratkaisu ongelmaan = yksilö Ratkaisuja tietysti useita kaikkia ei käsitellä kerralla, vaan uusia ratkaisuja haetaan evoluution kautta. Käsiteltävä ratkaisujoukko tietyllä hetkellä on populaatio. Yksilö mallinnetaan kromosomina, joka koostuu geeneistä Geeni = ominaisuus Yksilöä jalostetaan mutaatioilla Yksilön jokin ominaisuus muuttuu Risteytys tuottaa yksilöitä, joilla on ominaisuuksia molemmilta vanhemmilta Lapsilla on geenejä kummaltakin vanhemmalta Hyvyys indikoi yksilön elinkelpoisuutta Siirtyykö seuraavaan sukupolveen? Mutaatio Risteytys Hyvyysarviointi Luonnon valinta sykliä toistetaan, kunnes ollaan tyytyväisiä (tai kunnes katsotaan, että parempaan ei pystytä) Sukupolvirajoitus Laaturajoitus 2

Geneettinen algoritmi - peruskäsitteet 7 Etsitään geneettisen algoritmin avulla parasta (tai lähes parasta) arkkitehtuuria kaikkien mahdollisten arkkitehtuurien (suunnittelumallikombinaatioiden) joukosta Etsitään geneettisen algoritmin avulla parasta (tai lähes parasta) arkkitehtuuria kaikkien mahdollisten arkkitehtuurien (suunnittelumallikombinaatioiden) joukosta Yksilö = arkkitehtuuri Lähtökohtana pelkät toiminnan toteuttavat komponentit, ns. nollaarkkitehtuuri Nolla-arkkitehtuuri saadaan sekvenssikaavioista tai käyttötapauskaavioista 3

10 nolla-arkkitehtuuri 11 nolla-arkkitehtuuri Etsitään geneettisen algoritmin avulla parasta (tai lähes parasta) arkkitehtuuria kaikkien mahdollisten arkkitehtuurien (suunnittelumallikombinaatioiden) joukosta Yksilö = arkkitehtuuri Mutaatio = suunnittelumallin/tyylin lisäys/poisto Toiminta pysyy samana, mutta laatu paranee (tai huononee!) Käytetyt tyylit ja mallit: viestinvälittäjä, asiakas-palvelin, sovitin, välittäjä, fasaadi, strategia ja operaatiorunko 4

mutaatiot 13 Etsitään geneettisen algoritmin avulla parasta (tai lähes parasta) arkkitehtuuria kaikkien mahdollisten arkkitehtuurien (suunnittelumallikombinaatioiden) joukosta Yksilö = arkkitehtuuri Mutaatio = suunnittelumallin/tyylin lisäys/poisto Risteytys = yhdistetään osia kahdesta eri arkkitehtuurista - risteytys 5

Etsitään geneettisen algoritmin avulla parasta (tai lähes parasta) arkkitehtuuria kaikkien mahdollisten arkkitehtuurien (suunnittelumallikombinaatioiden) joukosta Yksilö = arkkitehtuuri Mutaatio = suunnittelumallin/tyylin lisäys/poisto Risteytys = yhdistetään osia kahdesta eri arkkitehtuurista Elinkelpoisuus = miten hyvin vastaa laatuvaatimuksiin Laatuattribuutteina käytetty muunneltavuutta, tehokkuutta ja kompleksisuutta, jokaista voi painottaa erikseen Otettu huomioon koheesio, luokkien väliset riippuvuudet, viestinvälityksen ja serverin vaikutus sekä suunnittelumallien suotuisa vaikutus muunneltavuuteen - laadunarviointi 17 Etsitään geneettisen algoritmin avulla parasta (tai lähes parasta) arkkitehtuuria kaikkien mahdollisten arkkitehtuurien (suunnittelumallikombinaatioiden) joukosta Yksilö = arkkitehtuuri Mutaatio = suunnittelumallin/tyylin lisäys/poisto Risteytys = yhdistetään osia kahdesta eri arkkitehtuurista Elinkelpoisuus = miten hyvin vastaa laatuvaatimuksiin Laatuattribuutteina käytetty muunneltavuutta, tehokkuutta ja kompleksisuutta, jokaista voi painottaa erikseen Otettu huomioon koheesio, luokkien väliset riippuvuudet, viestinvälityksen ja serverin vaikutus sekä suunnittelumallien suotuisa vaikutus muunneltavuuteen Milloin ollaan tyytyväisiä? Käytetään sukupolvirajoitusta, eli ennaltamäärätty määrä iteraatioita. Lopputulos = viimeisen iteraation paras arkitehtuuri 6

19 valikoiva risteytys 20 Normaali risteytys yhdistelee satunnaisesti osia kahdesta arkkitehtuurista halki, poikki ja pinoon Voitaisiinko ottaa rodunjalostusperiaatteet käyttöön? Haetaan huippuyksilöt eri ominaisuuksin Tehokas isä ja muunneltava äiti Annetaan risteytyä vapaasti tai käytetään vielä geeniteknologiaa ja yhdistetään optimoidut geenit Tasapainoinen arkkitehtuuri nopeammin Tietyt suunnitteluratkaisut pääsevät pinnalle, kun korostetaan toispuoleisesti ominaisuuksia Esimerkkitapaus: viestinvälittäjä valikoiva risteytys 21 7

valikoiva risteytys 22 monioptimointi 23 Pareto-optimaalisuus Arvioi laatuominaisuuksia toisistaan erillään Laatuja ei lasketa yhteen Tehokkuus+muunneltavuus == omenat+appelsiinit Tuloksena Pareto-rintama Rintamaan pääsee sellaiset arkkitehtuurit, joille ei ole joka suhteessa parempaa vaihtoehtoa. Arkkitehti voi valita painotuksen lopputuloksen perusteella, ei arvailemalla - monioptimointi 24 8

- monioptimointi 25 - monioptimointi 26 27 Tarjoaa käyttöliittymän GA-pohjaiseen arkkitehtuurisynteesiin Sekvenssi/käyttötapauskaavioiden syöttö/luonti 9

28 29 30 Tarjoaa käyttöliittymän GA-pohjaiseen arkkitehtuurisynteesiin Sekvenssi/käyttötapauskaavioiden syöttö/luonti Nolla-arkkitehtuuri automaattisesti kaavioista 10

31 32 Tarjoaa käyttöliittymän GA-pohjaiseen arkkitehtuurisynteesiin Sekvenssi/käyttötapauskaavioiden syöttö/luonti Nolla-arkkitehtuuri automaattisesti kaavioista Mutaatioiden painotukset (voidaan suosia tiettyjä suunnittelumalleja, jos halutaan) Laatuominaisuuksien painotukset Periodit alussa voidaan suosia esim. tyylejä, myöhemmin matalan tason patterneja 33 11

34 35 Tarjoaa käyttöliittymän GA-pohjaiseen arkkitehtuurisynteesiin Sekvenssi/käyttötapauskaavioiden syöttö/luonti Nolla-arkkitehtuuri automaattisesti kaavioista Mutaatioiden painotukset (voidaan suosia tiettyjä suunnittelumalleja, jos halutaan) Laatuominaisuuksien painotukset Periodit alussa voidaan suosia esim. tyylejä, myöhemmin matalan tason patterneja Näyttää laatuarvot ja lopputuloksena saadun arkkitehtuurin Muitakin arkkitehtuureita voi tutkia! 36 12

37 38 Tarjoaa käyttöliittymän GA-pohjaiseen arkkitehtuurisynteesiin Sekvenssi/käyttötapauskaavioiden syöttö/luonti Nolla-arkkitehtuuri automaattisesti kaavioista Mutaatioiden painotukset (voidaan suosia tiettyjä suunnittelumalleja, jos halutaan) Laatuominaisuuksien painotukset Periodit alussa voidaan suosia esim. tyylejä, myöhemmin matalan tason patterneja Näyttää laatuarvot ja lopputuloksena saadun arkkitehtuurin Muitakin arkkitehtuureita voi tutkia! Mahdollisuus tutkia arkkitehtuurien sukupuuta miten arkkitehtuuri on kehittynyt Voidaan syöttää valmis arkkitehtuuri, jota GA lähtee kehittämään Voidaan jäädyttää haluttuja ratkaisuja GA tekee loput Inkrementaalinen kehitys Tuloksia 39 Verrattiin opiskelijoiden ratkaisuja GA:n ratkaisuihin Yhtä hyviä! Verrattiin Pareto-rintamaa skenaarioilla arvioituihin arkkitehtuureihin Onko skenaarioiden perusteella tehokas arkkitehtuuri myös rintaman tehokkain? Tilastollisesti ei merkittävää eroa, eli jakauma vastaa skenaarioiden mukaan saatua jakaumaa 13