Stabilointi. arvosana. arvostelija. Marja Hassinen

Koko: px
Aloita esitys sivulta:

Download "Stabilointi. arvosana. arvostelija. Marja Hassinen"

Transkriptio

1 hyväksymispäivä arvosana arvostelija Stabilointi Marja Hassinen Helsinki Hajautetut algoritmit -seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

2 Sisältö 1 1 Johdanto 1 2 Resynkroninen stabilointi 2 3 Yleinen stabilointi: järjestelmän tarkkailu ja alustus Virheiden havaitseminen Järjestelmän alustus Järjestelmän toipumiskyky Lähteet 13

3 1 Johdanto 1 Tämä esitelmä käsittelee stabilointia eli algoritmien muuntamista toipumiskykyisiksi (self-stabilizing). Jos johonkin ongelmaan tunnetaan algoritmi, joka ei ole toipumiskykyinen, voidaan stabiloinnin avulla muodostaa vastaava toipumiskykyinen algoritmi. Stabilointi voidaan suorittaa sekä synkronisissa että asynkronisissa järjestelmissä. Synkronisissa järjestelmissä lähetetään globaali kellopulssi, jonka vastaanottaessaan jokainen prosessori suorittaa yhden askelen algoritmistaan. Asynkronisissa järjestelmissä prosessorit suorittavat algoritmejaan rinnakkain ja mahdollisesti eri nopeuksilla. Synkronisissa järjestelmissä toimivat algoritmit voidaan muuntaa asynkronisissa järjestelmissä toimiviksi. Tätä muunnosta kutsutaan synkronoinniksi. Viestinvälitykseen ja jaettuun muistiin perustuvat hajautetut järjestelmät eivät olennaisesti eroa toisistaan, sillä jaetun muistin järjestelmissä toimivat algoritmit voidaan muuntaa viestinvälitysjärjestelmissä toimiviksi. Stabiloinnin osalta voidaan siis yleisyyttä rajoittamatta tarkastella jompaakumpaa kommunikointimallia. Hajautettujen järjestelmien toipumiseen kuluvaa aikaa mitataan kierrosten ja syklien avulla. Kierros (round) on lyhin ajanjakso, jonka aikana jokainen prosessori suorittaa vähintään yhden laskenta-askelen. Jokaisella prosessorilla oletetaan olevan algoritmi, joka on esitetty ikuisena silmukkana. Sykli (cycle) on lyhin ajanjakso, jonka aikana jokainen prosessori suorittaa yhden kerran ikuisen silmukkansa sisällön. Stabilointialgoritmit käyttävät osatehtävien suorittamiseen muita toipumiskykyisiä algoritmeja. Tarvittavia algoritmeja ovat esimerkiksi johtajan valinta ja viestikanavien muuntaminen luotettaviksi. Lisäksi käytetään tietoa siitä, että toipumiskykyinen algoritmi voidaan muodostaa reilun koostamisen (fair composition) avulla osatehtävät suorittavista toipumiskykyisistä algoritmeista. Luvussa 2 esitellään resynkroninen stabilointi, joka on yksinkertainen menetelmä kiinteän tulosteen algoritmien muuntamiseksi toipumiskykyisiksi. Toipumiskykyisten ja ei-toipumiskykyisten algoritmien välillä ei siis ole periaatteellista eroa, sillä ei-toipumiskykyinen algoritmi voidaan muuntaa toipumiskykyiseksi resynkronisen stabiloinnin avulla. Luvussa 3 esitetään yleisempi menetelmä stabiloinnin suorittamiseen. Menetelmä perustuu tarkkailuun, jonka avulla havaitaan järjestelmässä esiintyvät virheet, ja alustukseen, jonka avulla järjestelmä palautetaan sallittuun alkutilaan.

4 2 Resynkroninen stabilointi 2 Seuraavaksi tarkastellaan kiinteiden tulosteiden (fixed output) algoritmien muuntamista toipumiskykyisiksi. Esimerkiksi minimaalisen virittävän puun laskevan algoritmin tulosteena on verkon minimaalinen virittävä puu, joten algoritmin tuloste on kiinteä. Toisaalta esimerkiksi keskinäisen poissulkemisen algoritmeilla ei ole kiinteää tulostetta, vaan algoritmin oikeellinen toiminta on jatkuva prosessi, jossa jaettua resurssia käyttää vain yksi prosessori kerrallaan. Resynkroninen stabilointi (resynchronous stabilizer) on yksinkertainen stabilointitapa, jolla mikä tahansa hajautettuja syötteitä käyttävä kiinteän tulosteen algoritmi voidaan muuntaa toipumiskykyiseksi. Resynkronista stabilointia voidaan soveltaa sekä synkronisiin että asynkronisiin algoritmeihin. Algoritmin synkronisella suoritusajalla tarkoitetaan sitä askelten määrää, jossa synkronoidun järjestelmän prosessorit saavat laskettua algoritmin tulosteen. Tarkastellaan algoritmia A, jonka suoritusaika synkronisessa järjestelmässä on t askelta. Tarkoituksena on määritellä algoritmi, joka toimii kuten A ja on toipumiskykyinen. Tarkastellaan prosessorien tiloja, kun algoritmia A suoritetaan synkronisessa järjestelmässä, jossa ei esiinny virheitä. Aluksi jokainen prosessori P i on alkutilassa T i,0. Ensimmäisen laskenta-askelen aikana jokainen prosessori P i lukee naapureidensa alkutilat T j,0 ja laskee niiden ja oman alkutilansa perusteella uuden tilansa T i,1. Toisen laskenta-askelen aikana jokainen prosessori P i lukee naapureidensa tilat T j,1 ja laskee niiden ja oman tilansa T i,1 perusteella uuden tilansa T i,2. Viimeistään t askelen kuluttua prosessorit ovat saaneet laskettua halutun tulosteen. Resynkronisen stabiloinnin perusajatus on tallentaa jokaisen prosessorin P i yhteyteen tieto tiloista T i,0,t i,1,...,t i,t. Jokaisen prosessorin yhteyteen tallennetaan siis t + 1 alkion taulukko, jonka soluihin nämä tilat tallentuvat. Aluksi taulukon sisältö voi olla mitä tahansa, mutta laskennan edetessä taulukon soluihin tallentuvat halutut tilat. Resynkronisen stabiloinnin suoritus. Jokainen prosessori P i laskee ikuisen silmukkansa suorituksen aikana uudelleen kaikki tilansa T i,0,t i,1,...,t i,t. Aluksi se tallentaa tilaan T i,0 algoritminsa määräämän alkutilan. Sen jälkeen se lukee naapureidensa P j tilataulukot T j,0,t j,1,...,t j,t. Oman ja naapureiden 0-tilojen perusteella se laskee tilansa T i,1, sen ja naapureiden 1-tilojen perusteella tilansa T i,2 ja niin edelleen.

5 3???? A??? A D?????????? B??? C??? B??? C??? Kuva 1: Kun virheetön jakso alkaa, prosessorit voivat olla mielivaltaisessa tilassa. Ensimmäisen syklin jälkeen jokainen prosessori on alustanut alkutilansa (A, B ja C). Toisen syklin aikana jokainen prosessori saa laskettua toisen tilansa oikein, sillä tilan määrittämiseen tarvittavat syötteet (tässä A, B ja C) on tallennettu oikein. Koska kaikki naapureiden tilat eivät välttämättä vastaa algoritmin A virheettömässä suorituksessa esiintyviä tiloja, ei prosessori itsekään saa laskettua kaikkia omia tilojaan oikein. Kuitenkin, jos naapureiden tilat T j,0,...,t j,k ja prosessorin omat tilat T i,0,...,t i,k on tallennettu oikein, saa prosessori laskettua tilansa T i,k+1 oikein. Järjestelmän toipumiskyky. Kun virheet loppuvat, niin jossain vaiheessa jokainen prosessori P i on suorittanut ikuisen silmukkansa sisällön vähintään kerran ja alustanut lähtötilanteen T i,0 oikeaksi. Tämän jälkeen jokainen prosessori P i pystyy laskemaan oikein tilansa T i,1, sillä tarvittavat syötteet, prosessorin itsensä 0-tila ja muiden prosessorien 0-tilat, on laskettu oikein. Kun jokainen prosessori on laskenut oikein 1-tilansa, voivat kaikki prosessorit laskea oikein 2-tilansa. Näin edeten voidaan havaita, että jossain vaiheessa kaikki prosessorit saavat algoritminsa suoritettua loppuun, ellei uusia virhetilanteita esiinny. Olennaista on, että mikään prosessori ei muuta kertaalleen oikein laskettuja tiloja, vaikka se laskeekin ne uudelleen. Näin ollen jokainen sykli lisää ainakin yhden tilan oikein laskettujen tilojen joukkoon. Kuva 1 havainnollistaa resynkronisen stabiloinnin toimintaa, kun hajautetun järjestelmän virheetön jakso alkaa.

6 4 Resynkronisen stabiloinnin ongelmia. Resynkroninen stabilointi tarvitsee epäkäytännöllisen paljon muistia, sillä jokainen prosessori joutuu tallentamaan oman tilansa yhtä monta kertaa kuin algoritmin suorittamiseen tarvitaan askelia. Lisäksi resynkroninen stabilointi ei sovellu satunnaisalgoritmien stabilointiin, koska satunnaisalgoritmeissa prosessorin seuraava tila ei määräydy deterministisesti sen edellisen tilan ja naapurien tilojen avulla. 3 Yleinen stabilointi: järjestelmän tarkkailu ja alustus Resynkronisen stabiloinnin sijasta algoritmi voidaan muuntaa toipumiskykyiseksi käyttäen yleistä stabilointia. Yleistä stabilointia voidaan soveltaa sekä kiinteän tulosteen algoritmeihin että ei-kiinteän tulosteen algoritmeihin. Tässä luvussa tarkastellaan kiinteän tulosteen algoritmeja. Voidaan lisäksi yleisyyttä rajoittamatta tarkastella hajautettuja järjestelmiä, joissa prosessorien välinen kommunikaatio perustuu viestinvälitykseen. Yleisen stabiloinnin perusajatus on havaita järjestelmässä esiintyvät virheet (tarkkailu) ja palauttaa järjestelmä sallittuun lähtötilanteeseen virheen tapahtuessa (alustus). Tarkkailun ja alustamisen yhteensovittaminen ei ole triviaalia: on esimerkiksi varmistettava, että virheen havaitsemisesta johtuva alustus suoritetaan loppuun ennen uusien alustusten käynnistämistä. Luvussa 3.1 esitellään virheidenhavaitsemisalgoritmi ja luvussa 3.2 kuvataan algoritmi, joka alustaa järjestelmän eli palauttaa sen sallittuun alkutilaan. Luvussa 3.3 esitetään lyhyt perustelu järjestelmän toipumiskyvystä. 3.1 Virheiden havaitseminen Useissa toipumiskykyisissä algoritmeissa ei pyritä eksplisiittisesti havaitsemaan virheitä, vaan ohjataan järjestelmää jatkuvasti kohti sallittua tilaa. Prosessorit eivät yleensä pidä yllä tietoa siitä, onko järjestelmä kulloinkin sallitussa tilassa vai ei. Tästä lähestymistavasta poiketen tarkkailu ja alustus -stabiloinnissa on määriteltävä keino havaita, onko virheitä tapahtunut. Eräs keino havaita virheiden havaitsemiseen on tallentaa kuva järjestelmän hetkellisestä kokonaistilanteesta ja tarkastaa sen avulla, onko järjestelmä sallitussa tilassa.

7 5 Kuvan ottaminen ei keskeytä varsinaista laskentaa, vaan suoritetaan sen lomassa. Tilannekuva-algoritmi. Oletetaan, että toipumiskykyisen johtajanvalintaalgoritmin avulla jokin prosessori on valittu johtajaksi. Kuvanottoalgoritmissa jokainen prosessori tallentaa muistiinsa kopion tilastaan ja saamistaan viesteistä. Sen jälkeen johtaja kerää tiedot prosessoreilta. Kuvanottoalgoritmissa oletetaan, että viestikanavat ovat luotettavia. Tämä voidaan saada aikaan toipumiskykyisellä algoritmilla, jolla jaetun muistin järjestelmissä toimivat algoritmit muunnetaan viestinvälitystä käyttäviksi. Lisäksi kuvanottoalgoritmi käyttää luvussa 3.2 kuvattavaa alustusalgoritmia tarvitsemiensa muuttujien alustamiseen. Kuvan tallentava algoritmi on seuraava: 1. Johtaja tallentaa oman tilansa ja alkaa lähettää merkkiä toistuvasti jokaiselle naapurilleen. 2. Kun prosessori P i saa merkin ensimmäisen kerran, se tallentaa muistiinsa kopion nykyisestä tilastaan ja lähettää merkin jokaiselle naapurilleen. 3. Jos prosessori P i saa viestin prosessorilta P k, se tallentaa kopion viestistä muistiinsa. Kun prosessori P i saa merkin prosessorilta P k, prosessori P i lopettaa saapuvien viestien tallentamisen. 4. Kun prosessori P i on saanut merkin jokaiselta naapuriltaan, se lähettää tallentamansa tiedot johtajalle. Vaikka prosessorin P i tila tallennetaan eri ajanhetkellä kuin sen naapuriprosessorin P j tila, saa viestien tallentaminen aikaan sen, että kokonaiskuva järjestelmän tilasta on yhtenäinen. Jos prosessorin P i tila tallennetaan ensin ajanhetkellä t 1 ja prosessorin P j tila myöhemmin ajanhetkellä t 2, tallentaa prosessori P i muistiinsa prosessorilta P j tulevat viestit, jotka saapuvat ajanhetkien t 1 ja t 2 välillä. Kokonaiskuvaan kuuluu prosessorin P i tila ajanhetkellä t 1, prosessorin P j tila ajanhetkellä t 2 sekä prosessorin P i tallentamat viestit. Kokonaiskuva voidaan tulkita tilanteeksi, jossa molempien prosessorien tilat on tallennettu ajanhetkellä t 2 eikä prosessori P i ole saanut suoritusvuoroa ajanhetkien t 1 ja t 2 välillä. Tallennettujen viestien voidaan ajatella olevan matkalla viestikanavassa, jolloin prosessori P i ole vielä ehtinyt saada niitä. Todellisuudessa prosessori P i on voinut muuttaa tilaansa ajanhetkien t 1 ja t 2 välillä ja se on myös saanut tallentamansa viestit.

8 6 Saatuaan kuvanottoalgoritmin tallentamat tiedot kaikilta prosessoreilta johtaja muodostaa kokonaiskuvan järjestelmästä ja tarkastaa, onko järjestelmä sallitussa tilassa vai ei. Se, miten tarkastus suoritetaan, riippuu stabiloitavasta algoritmista. Kiinteän tulosteen algoritmeja stabiloitaessa on pystyttävä erottamaan virhetilanne järjestelmän normaalista toiminnasta, jossa halutun tuloksen laskenta on vielä kesken. Joissain tilanteissa kuvanottoalgoritmi voidaan korvata versiolla, jossa järjestelmän tila tallennetaan useisiin paikallisiin tilannekuviin. Tällöin stabiloitavan algoritmin on oltava sellainen, että virheet voidaan havaita paikallisista tilannekuvista. Esimerkki virheiden havaitsemisesta. Tarkastellaan esimerkkinä seuraavaa algoritmia, joka laskee prosessorien etäisyydet tiettyyn kohdeprosessoriin. Jokaisella prosessorilla P i on muuttuja d i, johon se tallentaa nykyisen käsityksen etäisyydestä. Algoritmi on kuvattu taulukossa 1. Kohdeprosessori P 0 Alustus: aseta d 0 = 0 Lähetä jokaiselle naapurille tieto d 0 :sta Muut prosessorit P i Alustus: aseta d i = Kun saat naapurilta P j arvon d j : Jos d j +1 < d i, aseta d i = d j +1 ja lähetä jokaiselle muulle naapurille tieto d i :stä Muutoin älä tee mitään Taulukko 1: Algoritmi, jolla prosessorit laskevat oman etäisyytensä kohdeprosessorista. Algoritmi ei ole toipumiskykyinen. Tämä algoritmi ei ole toipumiskykyinen. Esimerkiksi jos jonkin prosessorin P j muuttujaan d j tallentuu virheen johdosta arvo 0, vaikkei P j ole kohdeprosessori, niin algoritmi ei saa sitä korjatuksi. Esitetty etäisyyksienlaskenta-algoritmi voidaan kuitenkin stabiloida eli muuntaa toipumiskykyiseksi. Sitä varten on muodostettava menetelmä, jolla virheet havaitaan järjestelmän tilannekuvasta. Johtajaprosessorin saamassa tilannekuvassa on tieto arvoista, jotka on tallennettu muuttujiin d. Järjestelmän normaalissa toiminnassa prosessorin P i arvo d i on yleensä yhtä suurempi kuin pienin naapuriprosessorien arvoista. Muissa tapauksissa pro-

9 7 d = 0 d = 0 d = 0 d = Inf d = 1 d = 1 d = Inf d = 1 d = 1 d = Inf d = Inf d = 2 Kuva 2: Esimerkki etäisyydet laskevan algoritmin oikeasta suorituksesta. d = 0 d = 0 d = 0 d = Inf d = 1 d = 1 d = 3 d = 1 d = 0 d = Inf d = Inf d = 2 Kuva 3: Esimerkkejä virhetilanteista eli tilanteista, jotka eivät voi esiintyä etäisyydet laskevan algoritmin normaalin suorituksen aikana. sessori P i ei ole vielä ehtinyt saada viestiä siltä naapurilta, jolta pienempi d-arvo periytyisi. Johtajaprosessori voi siis prosessorien d-muuttujista ja viestikanavien sisällöistä päätellä, onko järjestelmä sallitussa tilassa vai ei. Sen sijaan virhetilanteeksi ei pidä tulkita tilannetta, jossa jonkin prosessorin d-arvo ei vastaa prosessorin etäisyyttä kohdeprosessorista. Tällainen tilanne kuuluu järjestelmän normaaliin toimintaan silloin, kun etäisyyksien laskenta on vielä kesken. Kuvassa 2 on esimerkki etäisyydenlaskemisalgoritmin oikeasta suorituksesta ja kuvassa 3 on esimerkkejä virhetilanteista, jotka eivät voi esiintyä järjestelmän oikean suorituksen aikana. Virhetilanteet voidaan erottaa normaaliin suoritukseen kuuluvista tilanteista tarkastelemalla solmujen tiloja ja viestikanavien sisältöjä. Virheet voidaan havaita esimerkiksi tarkastamalla seuraava ehto: Algoritmin tila on sallittu, jos

10 8 kohdesolmulle P 0 pätee d 0 = 0 ja muille solmuille P i pätee d i > 0 ja jokaisella kohdesolmusta eroavalla solmulla P i on naapuri P j, jolle pätee d i = d j + 1 tai matkalla on arvon d j sisältävä viesti naapurilta P j naapurille P i. 3.2 Järjestelmän alustus Järjestelmän alustus suoritetaan, kun virheenhavaitsemisalgoritmi ilmoittaa, ettei järjestelmä ole sallitussa tilassa. Alustuksen tehtävänä on palauttaa järjestelmä sallittuun alkutilaan. Seuraavaksi esitetään alustusalgoritmi, jossa mikä tahansa prosessori voi virheen havaitessaan pyytää järjestelmän alustusta. Algoritmi käyttää johtajanvalinta-algoritmia ja β-synkroinoija-algoritmia osatehtävien suorittamiseen. Johtajanvalinta-algoritmi muodostaa virittävän puun, jonka juurena oleva prosessori on nimetty johtajaksi. β-synkronoija värittää puun toistuvasti siten, että juuri valitsee uuden värin, joka valuu puussa alaspäin kunnes koko puu on saman värinen. Sen jälkeen juuri valitsee seuraavan värin ja sama prosessi toistuu. Kun järjestelmä ei ole sallitussa tilassa, virheidenhavaitsemisalgoritmi takaa, että ainakin yksi prosessori havaitsee virheen. Seuraavaksi kuvattava alustusalgoritmi saa aikaan järjestelmän alustuksen silloin, kun jokin prosessoreista havaitsee virheen. Alustusalgoritmin runkona on puun toistuvan värityksen suorittava algoritmi. Alustusalgoritmin toiminnot, kuten virheistä raportointi ja oman tilan alustus, lomittuvat puun toistuvaan väritykseen. Puun toistuva väritys. Jokaisella prosessorilla on tieto siitä, mitkä prosessorit ovat sen lapsia ja mikä prosessori on sen vanhempi. Lisäksi prosessorilla P i on tieto omasta väristään color i. Väri on kokonaisluku joukosta {0,...,5n 4}, jossa n on prosessoreiden määrä 1. Prosessorien välisen kommunikoinnin mallina käytetään jaettua muistia. Prosessorin P i ja sen vanhemman P j väliseen kommunikointikanavaan liittyy kaksi muuttujaa: color j,i, jolla vanhempi kertoo lapselleen värinsä ja color i,j, jolla lapsi kertoo vanhemmalleen alipuunsa värin. 1 Lähdeteoksessa esitetyssä algoritmissa väriä kasvatetaan modulo 5n 3, jolloin suurin mahdollinen väri on 5n 4 eikä 5n 2.

11 Kuva 4: Kun juuri on valinnut uuden värin, se kertoo sen lapsilleen, jotka vaihtavat värinsä ja kertovat uuden värin omille lapsilleen. Juurena toimiva prosessori suorittaa seuraavaa algoritmia: Jos kaikki lapset ilmoittavat, että niiden alipuut ovat saman värisiä kuin juuri, niin juuri kasvattaa omaa väriään. Joka tapauksessa juuri kertoo lapsille oman värinsä. Muut prosessorit suorittavat seuraavaa algoritmia: Jos vanhempi on kertonut prosessorille jonkun muun värin kuin prosessorin nykyisen värin, niin prosessori vaihtaa oman värinsä vanhemman väriksi. Jos kaikki lapset ilmoittavat, että niiden alipuut ovat saman värisiä kuin prosessori itse, niin prosessori ilmoittaa tämä alipuun värin vanhemmalleen. Joka tapauksessa prosessori kertoo lapsille oman värinsä. Tämän algoritmin seurauksena juuren valitsema väri valuu puussa alas. Kun koko puu on saman värinen, tieto siitä välittyy puussa ylöspäin juureen asti. Tämän seurauksena juuri valitsee uuden värin ja sama prosessi toistuu. Kuva 4 havainnollistaa värin valumista alas puussa. Jokainen solmu kertoo lapsilleen oman värinsä. Kuva 5 havainnollistaa, miten tieto värityksen loppuunsaattamisesta etenee puussa ylöspäin. Synkronointi voidaan saada aikaan hyödyntämällä puun toistuva väritys -algoritmia antamalla jokaisen prosessorin suorittaa yksi laskenta-askel silloin, kun se vaihtaa omaa väriään. Tällaista synkronointialgoritmia kutsutaan β-synkronoinniksi. Yleisessä stabiloinnissa puun toistuva väritys -algoritmia ei kuitenkaan käytetä synkronointiin vaan alustuksen suorittamiseen.

12 Kuva 5: Kun koko puu on väritetty, lehtisolmut kertovat vanhemmilleen, että niiden alipuut on väritetty niiden omalla värillä. Lehtisolmujen vanhemmat huomaavat, että myös niiden alipuut on väritetty niiden omalla värillä ja välittävät tämän viestin edelleen vanhemmilleen. Alustusalgoritmin toiminta. Puun toistuva väritys -algoritmin tarvitsemien muuttujien lisäksi alustusalgoritmi tarvitsee seuraavat muuttujat: jokaisella prosessorilla P i on alustusta varten kaksi binäärimuuttujaa: invoke i ja reset i. Muuttuja invoke i saa arvon true, jos prosessori P i on havainnut virheen. Muuttuja reset i saa arvon true, jos prosessori P i tietää, että alustus on parhaillaan käynnissä. Prosessorin P i ja sen vanhemman P j väliseen kommunikointikanavaan liittyy kaksi lisämuuttujaa: reset j,i, jolla vanhempi välittää lapselleen tiedon käynnissä olevasta alustuksesta ja request i,j, jolla lapsi välittää vanhemmalleen tiedon alustuspyynnöstä. Alustusalgoritmi on erilainen juurena toimivalle prosessorille ja muille prosessoreille. Jos alustusta ei ole käynnissä, jokainen prosessori suorittaa virheentarkastusalgoritmin juuri ennen kuin se raportoi vanhemmalleen, että sen koko alipuu on väritetty nykyisellä värillä 2. Jos prosessori P i havaitsee virheen, se kirjoittaa muuttujaansa invoke i arvon true. Kun virheen havainnut prosessori kertoo vanhemmalle oman alipuunsa olevan itsensä värinen, se välittää samalla vanhemmalleen pyynnön käynnistää järjestelmän alustus kirjoittamalla vanhempansa kommunikointikanavan request-muuttujaan arvon true. Kun vanhempi huomaa tämän alustuspyynnön, se välittää sen vastaavasti omalle vanhemmalleen samalla kun se raportoi oman alipuunsa olevan itsensä värinen. Näin 2 Lähdeteoksessa esitetyssä algoritmissa juuriprosessori ei koskaan suorita virheidenhavaitsemisalgoritmia; tämä täytynee lisätä algoritmiin.

13 11 alustuspyyntö etenee puussa ylöspäin. Lopulta alustuspyyntö saapuu juuriprosessorille, joka käynnistää järjestelmän alustuksen. Kun juuri seuraavan kerran vaihtaa värinsä, se alustaa oman tilansa ja välittää lapsilleen tiedon uudesta väristä ja käynnissä olevasta alustuksesta. Aina, kun prosessori vaihtaa oman värinsä vanhemman väriksi, se alustaa oman tilansa ja kirjoittaa invoke-muuttujaansa arvon false. Kun prosessori kertoo oman värinsä lapsilleen, se välittää myös tiedon käynnissä olevasta alustuksesta. Kun uusi väri ja sen kanssa välitettävä tieto alustuksesta on edennyt puussa juuresta lehtisolmuihin, jokainen prosessori on alustanut tilansa. Sen jälkeen tieto siitä, että puu on väritetty loppuun, alkaa kulkea puussa ylöspäin. Tällä kertaa mikään prosessori ei suorita virheentarkastusta, sillä järjestelmän alustus on käynnissä. Kun tieto värityksen saattamisesta loppuun kulkeutuu puussa ylöspäin, jokainen prosessori välittää vanhemmalleen tiedon siitä, ettei uutta alustusta pyydetä, eli kirjoittaa vanhempansa kommunikointikanavan request-muuttujaan arvon false. Kun tämä tieto välittyy juureen asti, juuri kirjoittaa muuttujaansa reset arvon false. Kun juuri seuraavan kerran valitsee uuden värin, sen lapset kopioivat arvon false omiin reset-muuttujiinsa. Uuden värin valuessa alas puussa jokainen prosessori huomaa, ettei järjestelmän alustus ole käynnissä, eikä tällä kertaa alusta omaa tilaansa. Alustusalgoritmin oikeellisuus. Esitetty alustusalgoritmi takaa sen, ettei uusia virheentarkastuksia käynnistetä, kun järjestelmän alustus on käynnissä. Vasta kun kaikki prosessorit ovat alustaneet oman tilansa, voidaan virheentarkastusalgoritmi suorittaa uudelleen. Alustusalgoritmin oikea toiminta edellyttää virittävän puun muodostamista ja puun toistuva väritys -algoritmin oikeaa toimintaa. Virittävä puu voidaan muodostaa toipumiskykyisellä johtajan valita-algoritmilla ja myös puun toistuva väritys -algoritmi on toipumiskykyinen. Kun järjestelmän virheet loppuvat, voi virittävän puun muodostavan algoritmin toipuminen alkaa. Kun se on toipunut virheistä, alkaa puun toistuva väritys -algoritmin toipuminen. Senkin toivuttua alustusalgoritmi voi olla mielivaltaisessa tilassa. Jonkin prosessorin invoke-muuttujassa voi esimerkiksi olla arvo true, vaikkei järjestelmää tarvitsisi alustaa. Alustusalgoritmi toipuu kuitenkin näistä virhetilanteista, sillä vaikka se aluksi suorittaisikin turhia alustuksia, niin viimeistään kahden seuraavan puussa valuvan värin myötä prosessorien invoke- ja reset-muuttujien arvot korjataan. Sen jälkeen alustusalgoritmi alkaa toimia oikein.

14 12 Stabilointi Virheiden tarkkailu Alustus Kuvanotto Toistuva väritys Viestikanavat luotettaviksi Johtajan valinta Muuttujien alustus Puun muodostus Kuva 6: Stabilointialgoritmin jakautuminen osatehtäviin. 3.3 Järjestelmän toipumiskyky Järjestelmässä esiintyvät virheet voivat vaikuttaa myös virheenhavaitsemisalgoritmin ja alustusalgoritmin toimintaan. Järjestelmässä esiintyvän virheen johdosta virheidenhavaitsemisalgoritmi voi toimia väärin, eli ilmoittaa olemattomasta virheestä tai jättää virheen havaitsematta. Riittää kuitenkin, että virheidenhavaitsemisalgoritmi ei ilmoita virheistä silloin, kun sekä virheidenhavaitsemisalgoritmi että tarkkailtava algoritmi ovat sallitussa tilassa. Tarkastellaan järjestelmän toimintaa silloin, kun virheet loppuvat ja järjestelmän toipuminen voi alkaa. Aluksi järjestelmä voi olla mielivaltaisessa tilassa. Jonkin ajan kuluttua osatehtäviä suorittavat toipumiskykyiset algoritmit, kuten virittävän puun muodostava algoritmi ja kommunikointikanavat luotettavaksi tekevä algoritmi, ovat päätyneet sallittuun tilaan. Niiden toivuttua virheistä alkavat virheidentarkkailualgoritmi ja alustusalgoritmi toimia edellä kuvatulla tavalla. Kuva 6 havainnollistaa stabilointialgoritmin osatehtäviä. Jokaisessa solmussa oleva algoritmi voi toipua virheistä kun sen lapsisolmuina kuvatut osatehtäviä suorittavat algoritmit ovat päätyneet sallittuun tilaan. Virheidentarkkailualgoritmin ja alustusalgoritmin toivuttua virheistä voi varsinainen tarkkailtava algoritmi olla sallitussa tai ei-sallitussa tilassa. Jos algoritmi on sallitussa tilassa, virheidentarkkailualgoritmi toimii oikein eikä havaitse virhettä, ja sallittu

15 13 suoritus voi jatkua. Jos algoritmi ei ole sallitussa tilassa, virheidentarkkailualgoritmi toimii oikein ja havaitsee virheen, jolloin alustusalgoritmi palauttaa järjestelmän sallittuun tilaan. Sen jälkeen virheidenhavaitsemisalgoritmi ei enää ilmoita virheistä eikä uusia alustuksia suoriteta. Jos uusia virheitä ei tapahdu, varsinaisen algoritmin suoritus jatkuu sallitusti. 4 Lähteet Shlomi Dolev: Self-Stabilization, luku 5. MIT Press 2000.

Stabilointi. Marja Hassinen. p.1/48

Stabilointi. Marja Hassinen. p.1/48 Stabilointi Marja Hassinen marja.hassinen@cs.helsinki.fi p.1/48 Kertausta ja käsitteitä Sisältö Stabilointi Resynkroninen stabilointi Yleinen stabilointi Tarkkailu Alustus Kysymyksiä / kommentteja saa

Lisätiedot

Stabiloivat synkronoijat ja nimeäminen

Stabiloivat synkronoijat ja nimeäminen Stabiloivat synkronoijat ja nimeäminen Mikko Ajoviita 2.11.2007 Synkronoija Synkronoija on algoritmi, joka muuntaa synkronoidun algoritmin siten, että se voidaan suorittaa synkronoimattomassa järjestelmässä.

Lisätiedot

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia Itsestabilointi: perusmääritelmiä ja klassisia tuloksia Jukka Suomela Hajautettujen algoritmien seminaari 12.10.2007 Hajautetut järjestelmät Ei enää voida lähteä oletuksesta, että kaikki toimii ja mikään

Lisätiedot

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä Luku 7 Verkkoalgoritmit Verkot soveltuvat monenlaisten ohjelmointiongelmien mallintamiseen. Tyypillinen esimerkki verkosta on tieverkosto, jonka rakenne muistuttaa luonnostaan verkkoa. Joskus taas verkko

Lisätiedot

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

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007 Jaetun muistin muuntaminen viestin välitykseksi Otto Räsänen 15. lokakuuta 2007 1 Motivaatio 2 Valtuuden välitys Peruskäsitteitä 3 Kolme algoritmia Valtuuden välitys käyttäen laskuria ilman ylärajaa Valtuuden

Lisätiedot

Stabiloivat synkronoijat ja nimeäminen

Stabiloivat synkronoijat ja nimeäminen Stabiloivat synkronoijat ja nimeäminen Mikko Ajoviita Helsinki 28.10.2007 Hajautettujen algoritmien seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i Sisältö 1 Johdanto 1 2 Stabiloivat synkronoijat

Lisätiedot

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä

Lisätiedot

Hajautetut algoritmit. seminaari syksyllä 2007 vastuuhenkilö Jyrki Kivinen toinen vetäjä Timo Karvi

Hajautetut algoritmit. seminaari syksyllä 2007 vastuuhenkilö Jyrki Kivinen toinen vetäjä Timo Karvi 58307301 Hajautetut algoritmit seminaari syksyllä 2007 vastuuhenkilö Jyrki Kivinen toinen vetäjä Timo Karvi 1 Seminaarin suorittaminen kirjoitelma (10-15 sivua) 50% esitelmä (n. 45 min) 40% muu aktiivisuus

Lisätiedot

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento

Lisätiedot

v 8 v 9 v 5 C v 3 v 4

v 8 v 9 v 5 C v 3 v 4 Verkot Verkko on (äärellinen) matemaattinen malli, joka koostuu pisteistä ja pisteitä toisiinsa yhdistävistä viivoista. Jokainen viiva yhdistää kaksi pistettä, jotka ovat viivan päätepisteitä. Esimerkiksi

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

Lisätiedot

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

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin

Lisätiedot

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu 811312A Tietorakenteet ja algoritmit 2017-2018, Harjoitus 2 ratkaisu Harjoituksen aiheena on algoritmien oikeellisuus. Tehtävä 2.1 Kahvipurkkiongelma. Kahvipurkissa P on valkoisia ja mustia kahvipapuja,

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin

Lisätiedot

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta 811312A Tietorakenteet ja algoritmit 2016-2017 Kertausta jälkiosasta IV Perustietorakenteet Pino, jono ja listat tunnettava Osattava soveltaa rakenteita algoritmeissa Osattava päätellä operaatioiden aikakompleksisuus

Lisätiedot

Yleinen paikallinen vakautuva synkronointialgoritmi

Yleinen paikallinen vakautuva synkronointialgoritmi Yleinen paikallinen vakautuva synkronointialgoritmi Panu Luosto 23. marraskuuta 2007 3 4 putki 1 2 α α+1 α+2 α+3 0 K 1 kehä K 2 K 3 K 4 Lähdeartikkeli Boulinier, C., Petit, F. ja Villain, V., When graph

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Sähköpostitilin käyttöönotto. Versio 2.0

Sähköpostitilin käyttöönotto. Versio 2.0 Sähköpostitilin käyttöönotto Versio 2.0 Sivu 1 / 10 Jarno Parkkinen jarno@atflow.fi 1 Johdanto... 2 2 Thunderbird ohjelman lataus ja asennus... 3 3 Sähköpostitilin lisääminen ja käyttöönotto... 4 3.1 Tietojen

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta 811312A Tietorakenteet ja algoritmit 2018-2019 Kertausta jälkiosasta V Hashtaulukot ja binääriset etsintäpuut Hashtaulukot Perusajatus tunnettava Tiedettävä mikä on tiivistefunktio Törmäysongelman hallinta:

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Algoritmit 2. Demot Timo Männikkö

Algoritmit 2. Demot Timo Männikkö Algoritmit 2 Demot 1 27.-28.3.2019 Timo Männikkö Tehtävä 1 (a) 4n 2 + n + 4 = O(n 2 ) c, n 0 > 0 : 0 4n 2 + n + 4 cn 2 n n 0 Vasen aina tosi Oikea tosi, jos (c 4)n 2 n 4 0, joten oltava c > 4 Kokeillaan

Lisätiedot

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint. Yleiset hakupuut 4 Monitiehakupuu: Binäärihakupuu 0 1 3 5 6 7 8 v k 1 k k 3 v v 3 v 4 k 1 k 3 k 1 k k k 3 d lapsisolmua d 1 avainta Yleinen hakupuu? Tietorakenteet, syksy 007 1 Esimerkki monitiehakupuusta

Lisätiedot

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille

Lisätiedot

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017

Lisätiedot

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

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

Harjoitus 6 ( )

Harjoitus 6 ( ) Harjoitus 6 (30.4.2014) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s.t. g(x) 0 h(x) = 0 x X (1) olevan optimointitehtävän Lagrangen duaali on max θ(u,v) s.t. u 0,

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 5 521475S Silmukalliset ohjelmat Silmukat joissa ei ole riippuvuussyklejä voidaan vektoroida eli suorittaa silmukan vektorointi Jokainen yksittäinen käsky silmukan rungossa

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit

811312A Tietorakenteet ja algoritmit 2015-2016. V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit 811312A Tietorakenteet ja algoritmit 2015-2016 V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit Sisältö 1. Johdanto 2. Leveyshaku 3. Syvyyshaku 4. Kruskalin algoritmi 5. Dijkstran algoritmi

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

10. Painotetut graafit

10. Painotetut graafit 10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1 Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan

Lisätiedot

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu 1312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 5, Ratkaisu Harjoituksen aihe ovat hash-taulukot ja binääriset etsintäpuut Tehtävä 5.1 Tallenna avaimet 10,22,31,4,15,28,17 ja 59 hash-taulukkoon,

Lisätiedot

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva olioperustainen ohjelma Java-kielellä. Lötköt säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu 1312A Tietorakenteet ja algoritmit, 2016-2017, Harjoitus 5, Ratkaisu Harjoituksen aihe ovat hash-taulukot ja binääriset etsintäpuut Tehtävä 5.1 Tallenna avaimet 10,22,31,4,15,28,17 ja 59 hash-taulukkoon,

Lisätiedot

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

Rakennusten elinkaarimittareiden verkkotyökalun käyttöohje. www.360optimi.com/kiinteistopassi

Rakennusten elinkaarimittareiden verkkotyökalun käyttöohje. www.360optimi.com/kiinteistopassi Rakennusten elinkaarimittareiden verkkotyökalun käyttöohje www.360optimi.com/kiinteistopassi Bionova Consulting, luottamuksellinen Viimeksi päivitetty 9. syyskuuta 2014 Käyttöohjeen sisällysluettelo Luo

Lisätiedot

Paikallinen stabilointi

Paikallinen stabilointi Paikallinen stabilointi Seminaari Hajautetut algoritmit: Itsestabiloivat algoritmit Aila Koponen 9.10.07 Paikallinen stabilointi Joitain ongelmia itsestabiloinnissa! Superstabilointi! Virheitä eristävät

Lisätiedot

Diskreetit rakenteet

Diskreetit rakenteet Diskreetit rakenteet 811120P 5 op 7. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1 Mikä on verkko? verkko (eli graafi) koostuu solmuista ja väleistä, jotka yhdistävät solmuja

Lisätiedot

Jaetun muistin muuntaminen viestinvälitykseksi

Jaetun muistin muuntaminen viestinvälitykseksi Jaetun muistin muuntaminen viestinvälitykseksi Otto Räsänen Helsinki 10.10.2007 Hajautetut algoritmit -seminaarin kirjallinen työ HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

DVD-RAM-levyjen käyttö

DVD-RAM-levyjen käyttö Tämä opas sisältää vähimmäistiedot, joita tarvitaan DVD-RAM-levyjen käyttöön DVD MULTI -asemassa Windows 98/Me/2000 -käyttöjärjestelmässä. Windows, Windows NT ja MS-DOS ovat Microsoft Corporationin rekisteröityjä

Lisätiedot

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu

Lisätiedot

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 1.1. (a) Jaettava m, jakaja n. Vähennetään luku n luvusta m niin kauan kuin m pysyy ei-negatiivisena. Jos jäljelle jää nolla, jaettava oli tasan jaollinen. int m,

Lisätiedot

Muuttujien roolit Kiintoarvo cin >> r;

Muuttujien roolit Kiintoarvo cin >> r; Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys

Lisätiedot

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi 5. Luento: Rinnakkaisuus ja reaaliaika Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Perusongelmat Jako prosesseihin Reaaliaika Rinnakkaisuus Rinnakkaisuus tarkoittaa tässä yhteydessä useamman kuin yhden

Lisätiedot

Pro 57 UM/S Setelilaskuri

Pro 57 UM/S Setelilaskuri Pro 57 UM/S Setelilaskuri Turvallisuusohjeet ja huoltoa koskevat säännökset Lue tämä käyttöohje ennen laitteen käyttöönottoa Laite pitää asentaa tasaiselle vaakasuoralle alustalle, pois vedestä ja vaarallisia

Lisätiedot

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko, Tehtävä 1 : 1 a) Olkoon G heikosti yhtenäinen suunnattu verkko, jossa on yhteensä n solmua. Määritelmän nojalla verkko G S on yhtenäinen, jolloin verkoksi T voidaan valita jokin verkon G S virittävä alipuu.

Lisätiedot

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti. Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen

Lisätiedot

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia 58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli

Lisätiedot

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä

Lisätiedot

Algoritmit 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö Algoritmit 2 Luento 11 Ti 25.4.2017 Timo Männikkö Luento 11 Peruutusmenetelmä Osajoukon summa Pelipuut Pelipuun läpikäynti Rajoitehaku Kapsäkkiongelma Algoritmit 2 Kevät 2017 Luento 11 Ti 25.4.2017 2/29

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

Konsensusongelma hajautetuissa järjestelmissä

Konsensusongelma hajautetuissa järjestelmissä Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki Helsinki 29.10.2007 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto 1 2 Konsensusongelma 2 2.1 Ratkeamattomuustodistus........................

Lisätiedot

PERSONEC HR-JÄRJESTELMÄ Käyttöohje Yksikön johtaja

PERSONEC HR-JÄRJESTELMÄ Käyttöohje Yksikön johtaja PERSONEC HR-JÄRJESTELMÄ Käyttöohje Yksikön johtaja Personec HR-järjestelmä sisältää valtion palkkausjärjestelmän (yliopistot) arviointilomakkeet, joihin tallennetut tiedot siirtyvät järjestelmässä VPJ-arviointiprosessin

Lisätiedot

BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut

BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut Sekvenssilogiikka Kombinatooristen logiikkapiirien lähtömuuttujien nykyiset tilat y i (n) ovat pelkästään riippuvaisia

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu 811312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 3, Ratkaisu Harjoituksessa käsitellään algoritmien aikakompleksisuutta. Tehtävä 3.1 Kuvitteelliset algoritmit A ja B lajittelevat syötteenään

Lisätiedot

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu 832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I. Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.

Lisätiedot

Algoritmit 2. Demot Timo Männikkö

Algoritmit 2. Demot Timo Männikkö Algoritmit 2 Demot 2 3.-4.4.2019 Timo Männikkö Tehtävä 1 Avoin osoitteenmuodostus: Hajautustaulukko t (koko m) Erikoisarvot VAPAA ja POISTETTU Hajautusfunktio h(k,i) Operaatiot: lisaa etsi poista Algoritmit

Lisätiedot

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö Algoritmit 2 Luento 10 To 19.4.2018 Timo Männikkö Luento 10 Peruutusmenetelmä Osajoukon summa Verkon 3-väritys Pelipuut Pelipuun läpikäynti Algoritmit 2 Kevät 2018 Luento 10 To 19.4.2018 2/34 Algoritmien

Lisätiedot

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 1. Avaimet 1, 2, 3 ja 4 mahtuvat samaan lehtisolmuun. Tässä tapauksessa puussa on vain yksi solmu, joka on samaan aikaan juurisolmu

Lisätiedot

Yksityisautoilijoille ABAX AJOPÄIVÄKIRJA

Yksityisautoilijoille ABAX AJOPÄIVÄKIRJA The difference is ABAX Yksityisautoilijoille ABAX AJOPÄIVÄKIRJA The difference is ABAX 2 The difference is ABAX ABAX SÄHKÖINEN AJOPÄIVÄKIRJA Tähän esitteeseen on koottu vastauksia kysymyksiin, jotka liittyvät

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 26.3.2019 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot B-puun muunnelmia Algoritmit 2 Kevät 2019 Luento 5 Ti 26.3.2019 2/34 B-puu B-puut ovat tasapainoisia

Lisätiedot

Tarkennamme geneeristä painamiskorotusalgoritmia

Tarkennamme geneeristä painamiskorotusalgoritmia Korotus-eteen-algoritmi (relabel-to-front) Tarkennamme geneeristä painamiskorotusalgoritmia kiinnittämällä tarkasti, missä järjestyksessä Push- ja Raise-operaatioita suoritetaan. Algoritmin peruskomponentiksi

Lisätiedot

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari Tehtävä 9 : 1 Merkitään kirjaimella G tehtäväpaperin kuvan vasemmanpuoleista verkkoa sekä kirjaimella H tehtäväpaperin kuvan oikeanpuoleista verkkoa. Kuvan perusteella voidaan havaita, että verkko G on

Lisätiedot

Reiluus. Maxmin-reiluus. Tärkeä näkökohta best effort -tyyppisissä palveluissa. Reiluuden maxmin-määritelmä

Reiluus. Maxmin-reiluus. Tärkeä näkökohta best effort -tyyppisissä palveluissa. Reiluuden maxmin-määritelmä J. Virtamo 38.3141 Teleliikenneteoria / Reiluus 1 Reiluus Maxmin-reiluus Tärkeä näkökohta best effort -tyyppisissä palveluissa kenellekään ei anneta kvantitatiivisia QoS-takuita kaikkien pitää saada palvelua

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009 TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Vaihe E tiistai

Lisätiedot

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120 Tehtävä 1 : 1 Merkitään jatkossa kirjaimella H kaikkien solmujoukon V sellaisten verkkojen kokoelmaa, joissa on tasan kolme särmää. a) Jokainen verkko G H toteuttaa väitteen E(G) [V]. Toisaalta jokainen

Lisätiedot

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen: Tasohyppelypeli 1 Pelissä ohjaat liikkuvaa ja hyppivää hahmoa vaihtelevanmuotoisessa maastossa tavoitteenasi päästä maaliin. Mallipelinä Yhden levelin tasohyppely, tekijänä Antonbury Piirrä grafiikat Pelaajan

Lisätiedot

Toimeentulotuen sähköinen asiointi - Käyttöohje 29.1.2016 1

Toimeentulotuen sähköinen asiointi - Käyttöohje 29.1.2016 1 Toimeentulotuen sähköinen asiointi - Käyttöohje 1 Tuetut selaimet Internet Explorer 11 tai uudempi. Microsoft on päättänyt Internet Explorerin (IE) versioiden 8, 9 ja 10 tuen. Mozilla Firefox 3.5. tai

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun:

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun: Tietorakenteet ja algoritmit, kevät 201 Kurssikoe 1, ratkaisuja 1. Tehtävästä sai yhden pisteen per kohta. (a) Invariantteja voidaan käyttää algoritmin oikeellisuustodistuksissa Jokin väittämä osoitetaan

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann

Lisätiedot

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.

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. Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 3 521475S Rinnakkaiset Numeeriset Algoritmit Silmukattomat algoritmit Eivät sisällä silmukka lauseita kuten DO,FOR tai WHILE Nopea suorittaa Yleisimmässä muodossa koostuu peräkkäisistä

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu 811312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 6, Ratkaisu Harjoituksen aiheet ovat verkkojen leveys- ja syvyyshakualgoritmit Tehtävä 6.1 Hae leveyshakualgoritmia käyttäen lyhin polku seuraavan

Lisätiedot