Rekursioyhtälön ratkaisutapa #1: iteratiivinen korvaus

Samankaltaiset tiedostot
58131 Tietorakenteet ja algoritmit (syksy 2015)

Algoritmit 2. Luento 8 To Timo Männikkö

811120P Diskreetit rakenteet

1.4 Funktioiden kertaluokat

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Algoritmit 1. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 14 Ke Timo Männikkö

II.1. Suppeneminen., kun x > 0. Tavallinen lasku

On annettu jono lukuja tai muita alkioita, joiden välille on määritelty suuruusjärjestys. Tehtävänä on saattaa alkiot suuruusjärjestykseen.

Algoritmit 1. Luento 12 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 12 Ke Timo Männikkö

Algoritmit 2. Demot Timo Männikkö

Neliömatriisin A determinantti on luku, jota merkitään det(a) tai A. Se lasketaan seuraavasti: determinantti on

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 8: Integraalifunktio ja epäoleellinen integraali

2.4 Pienimmän neliösumman menetelmä

3.3 KIELIOPPIEN JÄSENNYSONGELMA Ratkaistava tehtävä: Annettu yhteydetön kielioppi G ja merkkijono x. Onko

MS-A010{2,3,4,5} (SCI, ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 8: Integraalifunktio ja epäoleellinen integraali

4 Tehokkuus ja algoritmien suunnittelu

12. Algoritminsuunnittelun perusmenetelmiä

12. Algoritminsuunnittelun perusmenetelmiä

OSA 1: POLYNOMILASKENNAN KERTAUSTA, BINOMIN LASKUSÄÄNTÖJÄ JA YHTÄLÖNRATKAISUA

R4 Harjoitustehtävien ratkaisut

4. Määritä oheisen kehän plastinen rajakuorma. Tarkista, ettei myötöehtoa rikota missään. Piirrä tasapainoehdot toteuttava taivutusmomenttijakauma.

Tietorakenteet, laskuharjoitus 1,

5 Kertaluokkamerkinnät

1. Derivaatan Testi. Jos funktio f on jatkuva avoimella välillä ]a, b[ ja x 0 ]a, b[ on kriit. tai singul. piste niin. { f (x) > 0, x ]a, x 0 [

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

Algoritmianalyysin perusteet

Tietorakenteet ja algoritmit. Kertaus. Ari Korhonen

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

6 Integraalilaskentaa

Matematiikan tukikurssi

Algoritmit 1. Luento 3 Ti Timo Männikkö

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

Syksyn 2015 Pitkän matematiikan YO-kokeen TI-Nspire CAS -ratkaisut

Ristitulo ja skalaarikolmitulo

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien

Sarjaratkaisun etsiminen Maplella

REKURSIO. Rekursiivinen ohjelma Kutsuu itseään. Rekursiivinen rakenne. Rakenne sisältyy itseensä. Rekursiivinen funktio. On määritelty itsensä avulla

A TIETORAKENTEET JA ALGORITMIT

sin θ θ θ r 2 sin 2 θ φ 2 = 0.

6 Kertausosa. 6 Kertausosa

A-Osio. Valitse seuraavista kolmesta tehtävästä kaksi, joihin vastaat. A-osiossa ei saa käyttää laskinta.

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

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

Differentiaali- ja integraalilaskenta 1 (CHEM) Laskuharjoitus 4 / vko 47, mallivastaukset

Algoritmit 1. Luento 13 Ti Timo Männikkö

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

4 DETERMINANTTI JA KÄÄNTEISMATRIISI

Olkoon S(n) kutsun merge-sort(a, p, q) tilavaativuus kun p q + 1 = n. Oletetaan merge toteutetuksi vakiotyötilassa (ei-triviaalia mutta mahdollista).

Integraalilaskentaa. 1. Mihin integraalilaskentaa tarvitaan? MÄNTÄN LUKIO

Matematiikan tukikurssi

S Fysiikka III (EST), Tentti

2 Epäoleellinen integraali

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Reaalinen lukualue. Millainen on luku, jossa on päättymätön ja jaksoton desimaalikehitelmä?

Miten käydä läpi puun alkiot (traversal)?

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Moraalinen uhkapeli: laajennuksia

Algoritmit 2. Luento 13 Ti Timo Männikkö

Laskennan mallit Erilliskoe , ratkaisuja (Jyrki Kivinen)

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 29. huhtikuuta 2011

VALTIOTIETEELLINEN TIEDEKUNTA TILASTOTIETEEN VALINTAKOE Ratkaisut ja arvostelu

Pintaintegraali. i j k cos(θ) sin(θ) 1. = r cos(θ)i r sin(θ)j + rk, r sin(θ) r cos(θ) 0 joten

Johdatus reaalifunktioihin P, 5op

Tietorakenteet, laskuharjoitus 7, ratkaisuja

L 0 L. (a) Entropian ääriarvo löydetään derivaatan nollakohdasta, dl = al 0 L )

58131 Tietorakenteet ja algoritmit (kevät 2015) Toinen välikoe, malliratkaisut

Algoritmit 2. Luento 1 Ti Timo Männikkö

TIE Tietorakenteet ja algoritmit 25

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa II

Tee B-osion konseptiin etusivulle pisteytysruudukko! Muista kirjata nimesi ja ryhmäsi. Välivaiheet perustelevat vastauksesi!

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013

4 Pinta-alasovelluksia

Paraabelikin on sellainen pistejoukko, joka määritellään urakäsitteen avulla. Paraabelin jokainen piste toteuttaa erään etäisyysehdon.

2.2.1 Ratkaiseminen arvausta sovittamalla

jäsentämisestä TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 27. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

4. Joukkojen käsittely

Polynomien laskutoimitukset

Kuvausta f sanotaan tällöin isomorfismiksi.

10. MÄÄRÄTYN INTEGRAALIN KÄYTTÖ ERÄIDEN PINTA-ALOJEN LASKEMISESSA

Sinilause ja kosinilause

Esimerkki 8.1 Määritellään operaattori A = x + d/dx. Laske Af, kun f = asin(bx). Tässä a ja b ovat vakioita.

( ) Pyramidi 4 Analyyttinen geometria tehtävien ratkaisut sivu 321 Päivitetty Saadaan yhtälö. 801 Paraabeli on niiden pisteiden ( x,

lim + 3 = lim = lim (1p.) (3p.) b) Lausekkeen täytyy supistua (x-2):lla, joten osoittajan nollakohta on 2.

Tietorakenteet (syksy 2013)

Vastaa tehtäviin 1-4 ja valitse toinen tehtävistä 5 ja 6. Vastaat siis enintään viiteen tehtävään.

Tehtävä 1. Jatka loogisesti oheisia jonoja kahdella seuraavaksi tulevalla termillä. Perustele vastauksesi

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

Algoritmit 2. Luento 2 Ke Timo Männikkö

2.1 Vaillinaiset yhtälöt

Preliminäärikoe Pitkä Matematiikka

3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin.

Binäärihaun vertailujärjestys

Algoritmit 2. Luento 2 To Timo Männikkö

Transkriptio:

NodeCount(v /* lskee solmun v lipuun solmujen lukumäärän */ if solmu v on null return 0 else return + NodeCount(v.left + NodeCount(v.right Rekursio: lgoritmi kutsuu itseään Usein hjot j hllitse -perite: j lkuperäinen koon n omv syöte osiin prosessoi ost rekursiivisesti muodost lopullinen tulos plojen ostuloksist MergeSort(A, lef t, right if left < right middle (left + right/ MergeSort(A, lef t, middle MergeSort(A, middle +, right Merge(A, lef t, middle, right Rekursiivisen lgoritmin ikvtivuus? hnklhko määrittää suorn pseudokoodist Merkintä: T(n = rekursiivisen lgoritmin ikvtivuus (kokonistyö koon n omvn syötteelle Tietorkenteet, syksy 007 MergeSort(A, lef t, right työ: T(n, missä n = right-lef t+ if left < right ehto tosi, kun n middle (lef t + right/ työ: O( MergeSort(A,left, middle työ: T(n, j n = middle-left+ MergeSort(A,middle +,right työ: T(n, n = right-middle Merge(A, lef t, middle, right työ: O(n Arvo T(n määritetään rekursiivisesti, ns. rekursioyhtälön pohjlt esim. yllä{ sdn rekursioyhtälö O(, kun n < T(n = T(n + T(n + cn, kun n lrivi muoto T( n +cn, kosk n n n Tietorkenteet, syksy 007 3 Tietorkenteet, syksy 007 Rekursioyhtälön rtkisutp #: itertiivinen korvus kirjoitetn rekursioyhtälöä uki muutmn ensimmäisen rekursiokutsun oslt pyritään hvitsemn rvolle T(n rekursion syvyydestä riippuv säännönmukisuus Esim. rekursioyhtälö T(n = T( n + cn: rekursion syvyys : T(n = ( T( n 4 + cn + cn= 4 T( n 4 + cn + cn = 4 T(n 4 + cn Tietorkenteet, syksy 007 4

Edellä stiin T(n = T( n +cn = 4 T(n 4 +cn rekursion syvyys 3: T(n = 4 T( n 4 + cn = 4( T(n 8 + cn 4 + cn = 8 T( n 8 + cn + cn = 8 T(n 8 + 3cn Huomtn yleinen sääntö rekursion syvyydelle i: T(n = i T( n i + icn Arvon i mksimi? n i kun i log (n Lopullinen rvo: tehdään sijoitus i = log (n T(n = log (n T( n log (n + log (ncn = n T( + log (ncn = O(n log(n Tietorkenteet, syksy 007 5 T(n = T( n +cn, rvus: T(n n = O(n T(n = T( n + cn n + cn = n + cn cn > 0, joten n + cn > n induktio epäonnistui j rvus epätosi Uusi rvus: T(n n log(n T(n = T( n + cn n log(n + cn = n log( n + cn vlitn esim. = c, jolloin n log( n + cn = n(log( n + n log(n, kun n suuri induktio onnistui j siis T(n = O(n log(n Tietorkenteet, syksy 007 7 Rekursioyhtälön rtkisutp #: rv-j-test rvtn (päätellään hyvältä tuntuv rtkisu yritetään todist rtkisu todeksi induktioll toistetn kunnes löytyy hyvä rtkisu Esim. iempi rekursioyhtälö T(n = T( n +cn: Voidn ensin rvt optimistisesti T(n = O(n eli että T(n n, jollin vkioll Yritetään edetä induktiivisesti (rekursio-skel: sijoitetn rvus rekursioyhtälön oikelle puolelle, j tutkitn päteekö rvus koko yhtälölle Tietorkenteet, syksy 007 6 Rekursioyhtälön rtkisutp #3: rekursiopuu työ: cn/ työ: cn työ: cn/ cn/4 cn/4 cn/4 cn/4 c c c c c c c c c c tson 0 työt: cn tson työt: cn tson työt: cn tson log n työt: cn esitetään rekursiokutsujen hierrki puun solmun työ = sitä vstvn rekursiokutsun työ ei lsket mukn likutsujen työtä! kokonistyö: solmujen yhteenlskettu työ esim. yllä: tson i solmut yhteensä i cn = cn j log(n tso, siis kikki solmut = cnlog(n i Tietorkenteet, syksy 007 8

Alg(n Alg(n T( n T(n T( n T( n T( n T( n T( n T( n T( n Yleinen tsjkoinen rekursiopuu tyypillinen hjot j hllitse -menetelmälle koon n kutsu tekee in kpplett koon n/ omv rekursiivist likutsu Tietorkenteet, syksy 007 9 c f( n f(n f( n f( n f( n f( n f( n f( n c c c c c c c c f( n c c c c c c c c c Yleinen tsjkoinen rekursiopuu... rekursioyhtälö { muoto: T(n = T( n + f(n, kun n d Tietorkenteet, syksy 007 Θ( Θ( Θ( Θ( Θ( Yleinen tsjkoinen rekursiopuu... rekursioyhtälö { muoto: T(n = T( n + f(n, kun n d Tietorkenteet, syksy 007 0 Yleinen tsjkoinen { rekursioyhtälö..: T(n = T( n + f(n, kun n d f(n = kyseisen kutsun itse tekemä työ (ei lske mukn rekursiivisi likutsuj T(n vst kyseisen kutsun rekursiolipuun kikkien solmujen työtä, f(n inostn solmun om työtä d vkiorj, jot pienemmät syötteet vtivt korkeintn vkion c verrn työtä Tietorkenteet, syksy 007

Alg(n Alg(n Yleisen tsjkoisen rekursiopuun koko? korkeus: h = log (n lehtien lukumäärä: h = log (n = n log ( merkitään = x,n = y, nyt log (n = xlog ( y = xy log ( = y log ( x = n log ( Tietorkenteet, syksy 007 3 Sääntö : Jos f(n = Θ(n log( log(n k, missä k ei-negtiivinen vkio, niin T(n = Θ(n log( log(n k+ eli log(n Θ(n log( log(n k (solmutsojen työt sm suuruusluokk Sääntö 3: Jos f(n = Ω(n log ( n ε = Ω(n log (+ε, missä ε positiivinen vkio, j lisäksi f(n/ cf(n jollin vkioll c < in kun n suuri, niin T(n = Θ(f(n sisäsolmujen kokonistyö dominoi, j puun tsojen työmäärien summ muoto cf(n Tietorkenteet, syksy 007 5 Tsjkoisen rekursioyhtälön rtkisutp: ns. hllintmenetelmä (mster method pohjutuu sisäsolmutsojen j lehtisolmutson työmäärien vertiluun lehtitson työ: c n log ( = O(n log ( Sääntö : Jos f(n = O( nlog ( n ε = O(n log ( ε, missä ε positiivinen vkio, niin T(n = Θ(n log ( tulkint: f(n yksittäisen sisäsolmutson työ eli sisäsolmujen kokonistyö log(nf(n lehtitson työmäärä dominoi sisäsolmutsot (log(nf(n pienempi kuin lehtien työ Tietorkenteet, syksy 007 4 Esimerkki : T(n = T( n + cn =, =, f(n = cn log ( = log ( = f(n = n = Θ(n = Θ(n log ( log(n 0 sääntö : T(n = Θ(n log ( log(n 0+ = Θ(n log(n = Θ(n log(n Tietorkenteet, syksy 007 6

Esimerkki : T(n = 6T( n + n = 6, =, f(n = n log ( = log (6 = 4 f(n = n = O(n 4 = O(n log ( sääntö : T(n = Θ(n log ( = Θ(n 4 Tietorkenteet, syksy 007 7 Esimerkki 3: T(n = T( n + n =, =, f(n = n log ( = log ( = f(n = n = O(n + = O(n log (+ sopii sääntöön 3...:...mutt vielä pitää trkist, päteekö f(n/ cf(n, missä c < selvästi in f(n/ = n = n n sääntö 3 ok, joten T(n = Θ(f(n = Θ(n Tietorkenteet, syksy 007 8