2.3 Keskimääräisen tapauksen analyysi

Samankaltaiset tiedostot
(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

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.

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

Tarkennamme geneeristä painamiskorotusalgoritmia

Algoritmi on periaatteellisella tasolla seuraava:

4 Tehokkuus ja algoritmien suunnittelu

Konvergenssilauseita

Algoritmit 1. Demot Timo Männikkö

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

1 Määrittelyjä ja aputuloksia

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö

1 sup- ja inf-esimerkkejä

Algoritmit 2. Demot Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö

Epäyhtälöt ovat yksi matemaatikon voimakkaimmista

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmien suunnittelu ja analyysi (kevät 2004) 1. välikoe, ratkaisuja

3.6 Su-estimaattorien asymptotiikka

1 sup- ja inf-esimerkkejä

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Algoritmit 1. Demot Timo Männikkö

DIFFERENTIAALI- JA INTEGRAALILASKENTA I.1. Ritva Hurri-Syrjänen/Syksy 1999/Luennot 6. FUNKTION JATKUVUUS

Todennäköisyyden ominaisuuksia

IV. TASAINEN SUPPENEMINEN. f(x) = lim. jokaista ε > 0 ja x A kohti n ε,x N s.e. n n

1 Supremum ja infimum

Markov-ketjut pitkällä aikavälillä

Algoritmit 1. Luento 5 Ti Timo Männikkö

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

Fibonacci-kasoilla voidaan toteuttaa samat operaatiot kuin binomikasoilla.

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö

Miten osoitetaan joukot samoiksi?

Shorin algoritmin matematiikkaa Edvard Fagerholm

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö

4.0.2 Kuinka hyvä ennuste on?

031021P Tilastomatematiikka (5 op) viikko 3

Cantorin joukon suoristuvuus tasossa

1.4 Funktioiden kertaluokat

Tilastollinen testaus. Vilkkumaa / Kuusinen 1

Algoritmit 2. Luento 1 Ti Timo Männikkö

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

(b) Tarkista integroimalla, että kyseessä on todella tiheysfunktio.

The Metropolis-Hastings Algorithm

Testit laatueroasteikollisille muuttujille

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

4.1. Olkoon X mielivaltainen positiivinen satunnaismuuttuja, jonka odotusarvo on

Derivaattaluvut ja Dini derivaatat

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Vastausehdotukset analyysin sivuainekurssin syksyn välikokeeseen

Tenttiin valmentavia harjoituksia

Algoritmit 1. Demot Timo Männikkö

Odotusarvo. Odotusarvon ominaisuuksia Satunnaismuuttujien ominaisuuksia 61

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

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Ensimmäinen induktioperiaate

Algoritmit 1. Demot Timo Männikkö

Analyysi III. Jari Taskinen. 28. syyskuuta Luku 1

Ensimmäinen induktioperiaate

Algoritmit 1. Luento 4 Ke Timo Männikkö

Probabilistiset mallit (osa 2) Matemaattisen mallinnuksen kurssi Kevät 2002, luento 10, osa 2 Jorma Merikoski Tampereen yliopisto

Algoritmit 2. Luento 4 Ke Timo Männikkö

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

Väliestimointi (jatkoa) Heliövaara 1

Algoritmit 1. Luento 12 Ti Timo Männikkö

(2n 1) = n 2

LUKU 3. Ulkoinen derivaatta. dx i 1. dx i 2. ω i1,i 2,...,i k

Kompleksianalyysi, viikko 6

Tehtäväsarja I Tehtävät 1-5 perustuvat monisteen kappaleisiin ja tehtävä 6 kappaleeseen 2.8.

Johdatus todennäköisyyslaskentaan Momenttiemäfunktio ja karakteristinen funktio. TKK (c) Ilkka Mellin (2005) 1

Tutkimusmenetelmät-kurssi, s-2004

y x1 σ t 1 = c y x 1 σ t 1 = y x 2 σ t 2 y x 2 x 1 y = σ(t 2 t 1 ) x 2 x 1 y t 2 t 1

Johdatus todennäköisyyslaskentaan Normaalijakaumasta johdettuja jakaumia. TKK (c) Ilkka Mellin (2005) 1

Johdatus tilastotieteeseen Testit laatueroasteikollisille muuttujille. TKK (c) Ilkka Mellin (2004) 1

HY, MTL / Matemaattisten tieteiden kandiohjelma Todennäköisyyslaskenta IIb, syksy 2017 Harjoitus 1 Ratkaisuehdotuksia

Todennäköisyyslaskenta IIa, syys lokakuu 2019 / Hytönen 3. laskuharjoitus, ratkaisuehdotukset

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

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Tietorakenteet, laskuharjoitus 7, ratkaisuja

7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi

7.4 Sormenjälkitekniikka

Funktioiden approksimointi ja interpolointi

Markov-ketjut pitkällä aikavälillä

Algoritmit 2. Luento 2 Ke Timo Männikkö

Johdatus matemaattiseen päättelyyn

811120P Diskreetit rakenteet

7. Tasaisen rajoituksen periaate

Martingaalit ja informaatioprosessit

Normaalijakaumasta johdettuja jakaumia

3. Laskennan vaativuusteoriaa

Algoritmit 2. Luento 2 To Timo Männikkö

Tehtävä 1. Oletetaan että uv on neliö ja (u, v) = 1. Osoita, että kumpikin luvuista u ja v on. p 2j i. p j i

4. Martingaalit ja lokaalit martingaalit

Esimerkki: Tietoliikennekytkin

Martingaalit ja informaatioprosessit

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Transkriptio:

2.3 Keskimääräisen tapauksen analyysi Muistetaan T ave (n) = x =n P n (x)t (x) missä x on tapauksen x koko ja P n jakauma kokoa n oleville tapauksille. Siis T ave (n) on satunnaismuuttujan T (x) odotusarvo jakauman P n suhteen; merkitsemme T ave (n) = E Pn [T (x)] tai pelkästään T ave (n) = E[T (x)] jos jakauma on selvä asiayhteydestä. Odotusarvon perusominaisuuksia (esim. TN I): E[X] + E[Y ] = E[X + Y ] ja E[aX] = ae[x] aina (lineaarisuus) E[XY ] = E[X]E[Y ] jos X ja Y ovat riippumattomia (mitä merkitään X Y ) 70

Esimerkki Peräkkäishaku: löydettävä alkion x indeksi taulukossa A[1... n] (jos löytyy) search(a[1... n], x): 1. i := 1 Θ(1) 2. while i < n and A[i] x do k(x) Θ(1) 3. i := i + 1; 4. if A[i] = x then return i Θ(1) else return ei löydy Aikavaatimuksessa merkitään k(x) = rivin 3 suorituskertojen lkm. syötteellä x. Selvästi T (x) = ak(x) + Θ(1) joillain a, b > 0. Jakaumaoletukset: taulukon A alkiot aina erisuuria taulukon A alkioiden kaikki järjestykset yhtä todennäköisiä alkio x on taulukossa A todennäköisyydellä q 71

Olkoon X i niiden tapausten (A, x) joukko, joilla x = A[i]. Jakaumaoletuksen mukaan P n (X i ) = P n (X j ) kaikilla 1 i, j n P n (X i ) = q i=1 joten P (X i ) = q/n kaikilla i. Koska saadaan k ave (n) = Siis k(x) = = { i 1 jos x = A[i] n 1 jos x A[i] kaikilla i, (i 1)P n (X i ) + (n 1)(1 i=1 n 1 i q + (n 1)(1 q) n i=0 = q n(n 1) + (n 1)(1 q) n 2 = (1 q 2 )n + q 2 1. P n (X i )) i=1 T ave (n) = ak ave (n) + Θ(1) = a(1 q )n + Θ(1). 2 Jos q = 1 tutkitaan keskimäärin puolet taulukosta; jos q = 1/2 tutkitaan 3/4. 72

Sanakirjaongelma Ongelma on sinänsä yksinkertainen, mutta antaa mahdollisuuden esitellä joitakin keskimääräisen tapauksen analyysin (ja myöhemmin tasoitetun analyysin) tekniikoita. On annettu äärellinen joukko avaimia A = { a 1,..., a n }. Tehtävänä on ylläpitää joukkoa S A, kun seuraavat operaatiot ovat sallittuja: access(i): palauttaa true jos a i S, muuten false insert(i): S := S { a i } delete(i): S := S { a i } Huomautuksia: Käytännössä idea on yleensä, että kuhunkin avaimeen a i liittyy jokin data x i, jonka insert tallettaa ja access palauttaa. Yksinkertaisuuden vuoksi esitetään tässä vain perusversio. yksinkertaisuuden vuoksi valitaan a i = i (siis A = { 1,..., n }). tehokkaita ratkaisumenetelmiä: hajautus, hakupuut seuraavassa analysoidaan linkitettyyn listaan perustuvia yksinkertaisia ratkaisuja 73

Perustoteutus linkitetyllä listalla: access(i): käydään listaa järjestyksessä läpi kunnes i löytyy tai päästään loppuun insert(i): jos i ei listassa, lisätään se loppuun delete(i): jos i listassa, poistetaan; muuten ei muutoksia Seuraavassa tarkastellaan edistyneempiä versioita, joissa access-operaation yhteydessä listaa mahdollisesti järjestellään uudelleen jonkin heuristiikan mukaan. Olkoon L[k] talletusrakenteena olevan listan k:s alkio, k = 1,..., S. jos i = L[k] niin alkioon i kohdistuvat operaatiot vaativat k vertailua L[j] = i? vertailujen laskeminen antaa selvästi oikean kertaluokan operaatioiden koko suoritusajalle pyritään saamaan usein haettavat alkiot listan alkupäähän 74

Tarkastelemme jatkossa seuraavia heuristiikkoja: Move-to-Front (lyh. MF): haettu alkio siirretään listan keulaan 3 5 2 4 1 access(4) 4 3 5 2 1 Transpose (lyh. TR): haettua alkiota siirretään yksi askel kohti listan keulaa 3 5 2 4 1 access(4) 3 5 4 2 1 Frequency Count (lyh. FC): pidetään kustakin alkiosta yllä laskuria siihen kohdistuneista operaatioista; pidetään lista laskurien mukaan laskevassa järjestyksessä 3 5 2 4 1 19 16 7 7 3 access(4) (kuvassa viitelaskurit alarivissä) 3 5 4 2 1 19 16 8 7 3 insert-operaatiossa alkio lisätään alustavasti listan häntään ja sitten kohdistetaan siihen yksi ylimääräinen access-operaatio (siis oikeasti MF lisää listan keulaan, TR toiseksi viimeiseksi jne.) 75

Keskimääräisen tapauksen analyysia varten tehdään seuraavat oletukset suoritettavien operaatioiden jakaumasta: insert- ja delete-operaatioita ei tule, joukko sisältää jatkuvasti tasan alkiot 1,..., n hetkellä t valitaan suoritettavaksi operaatio insert(i) todennäköisyydellä p i, kun i = 1,..., n eri ajanhetkillä valittavat operaatiot ovat toisistaan riippumattomia Tässä siis p i 0 ja n i=1 p i = 1. Yksinkertaisuuden vuoksi oletetaan avaimet nimetyn niin, että p 1 p 2... p n. Kun (p 1,..., p n ) on annettu, jakaumaoletuksen vallitessa voidaan vielä määritellä seuraava heuristiikka : Decreasing Probability (lyh. DP): pidä lista kiinteässä todennäköisyyden mukaan laskevassa järjestyksessä: L[i] = i kaikilla i 76

Analyysin tausta-ajatus on nyt seuraava: DP on offline-heuristiikka: se vaatii todennäköisyyksien tietämisen ennen kuin toiminta voi alkaa DP on (kuten kohta nähdään) optimaalinen jos todennäköisyydet tunnetaan MF, TR ja FC ovat online-heuristiikkoja: ne mukautuvat samalla kun toiminta etenee jos jakaumaoletus pätee mutta todennäköisyyksiä ei tunneta etukäteen, joudutaan käyttämään jotakin online-heuristiikkaa halutaan osoittaa, että millä tahansa (p 1,..., p n ) esim. MF (joka ei tiedä näitä todennäköisyyksiä) on melkein yhtä tehokas kuin DP (joka on optimoitu juuri näille todennäköisyyksille) (Seuraava keskimääräisen tapauksen esitys perustuu artikkeliin Rivest: On self-organizing sequential search heuristics, CACM 1985.) 77

Sanakirjaongelma muistuttaa läheisesti virtuaalimuistin sivutusongelmaa: ajatellaan kaikki virtuaalimuistin sivut järjestetyksi listaan keskusmuistissa pidetään K ensimmäistä sivua listalta, K keskusmuistin koko esim. MF-listanjärjestysheuristiikka vastaa LRU-sivutusmenetelmää (Least Recently Used) sivutusongelmassa kuitenkin kustannusfunktio on monimutkaisempi: jos L[i] on sivun i sijainti listassa, niin sivuun i kohdistuvan operaation kustannus on 0 jos L[i] K ja 1 muuten (lasketaan siis sivunpuutoksia) Erityisesti tässä sovelluksessa aiemmin esitetty jakaumaoletus ei ole realistinen, joten tasoitettu analyysi on järkevämpää kuin keskimääräisen tapauksen analyysi. (Teemme jatkossa myös tasoitetun analyysin sanakirjaongelmalle.) 78

Esitellään tarvittavat merkinnät päätulosten formuloimiseksi: (i 1,..., i m ) = operaatiojono access(i 1 ),...,access(i m ) P m (x) = pituudeltaan m olevan operaatiojonon x todennäköisyys Siis P m (i 1,..., i m ) = p i1 p i2... p im. Kun A on jokin em. algoritmeista (A { MF, TR, FC, DP }) merkitsemme T A (x) = operaatiojonon x vaatimien vertailujen lkm. (m) = m operaation keskimäär. vertailujen lkm. = P m (x)t A (x). T A ave x =m Seuraavassa analysoimme eri algoritmien asymptoottista keskimääräistä kustannusta T A ave = lim m 1 m T A ave (m). Ilmeisesti (sopivalla toteutuksella) operaatiojonon x koko suoritusaika on muotoa at A (x) + Θ(1) missä vakio a on sama kaikille em. algoritmeille. Tulkitsemme siis jatkossa suoraan että T A on algoritmin A suoritusaika. 79

Tavoitteena on todistaa seuraavat tulokset: 1. DP on optimaalinen: T DP ave (m) T A ave(m) mille tahansa A (muillekin kuin em. heuristiikoille) ja kaikille m 2. asymptoottisesti myös FC on optimaalinen: Tave FC = Tave DP. 3. MF vie korkeintaan kaksi kertaa niin paljon aikaa kuin DP: Tave MF 2T DP ave. 4. TR on ainakin yhtä hyvä kuin MF: Tave TR T ave MF epäyhtälö on ei-triviaaleissa tapauksissa aito) (ja Todistukset perustuvat seuraavanlaisiin tekniikoihin: 1. odotusarvon perusominaisuudet 2. suurten lukujen laki 3. suoraviivainen lasku 4. Markovin ketjut Erityisesti kohdat (1) ja (2) tehdään harjoituksen vuoksi melko yksityiskohtaisesti. Kohta (4) on tärkeä uusi tekniikka. 80

Kun π on joukon { 1,..., n } permutaatio (siis bijektio { 1,..., n } { 1,..., n }), sanotaan että lista L on järjestyksessä π jos L[π(i)] = i kaikilla i. Jos lista on järjestyksessä π, niin operaation access(i) kustannus on π(i), joten keskimääräinen kustannus on p i π(i). i=1 Olkoon Pt A (π) todennäköisyys että ajanhetkellä t (eli ensimmäisten t 1 operaation jälkeen) algoritmin A lista on järjestyksessä π. Erityisesti DP pitää listansa vakiojärjestyksessä: P DP t (π) = { 1 jos π(i) = i kaikilla i 0 muuten Merkitään tätä vakiojärjestystä π opt. kaikilla t. Olkoon Save A (t) algoritmin A operaation numero t keskimääräinen kustannus (siis vertailuina mittattuna). Siis Save A (t) = Pt A (π) p i π(i) π ja erityisesti S DP ave (t) = i=1 ip i kaikilla t. i=1 81

Olkoon π järjestys jossa alkio i on ennen alkiota j, eli π(i) < π(j). Jos nyt p i < p j, niin p i π(j) + p j π(i) < p i π(i) + p j π(j). Siis jos edelleen π on muuten sama kuin π paitsi että π (i) = π(j) ja π (j) = π(i), niin pätee p k π(k) > p k π (k). k=1 k=1 Toistamalla tätä argumenttia nähdään, että n k=1 p kπ(k) saa pienimmän arvonsa kun järjestys π on alkioiden todennäköisyyksien mukaan laskeva, eli π opt. Siis kaikilla π pätee p k π(k) p k π opt (k) = k=1 k=1 k=1 joten millä tahansa algoritmilla A pätee S A ave (t) = π π = S DP ave (t). P A t (π) i=1 kp k = S DP ave (t) p i π(i) P A t (π)sdp ave (t) 82

Odotusarvon lineaarisuudesta seuraa m Tave(m) A = Save(t) A t=1 joten edellisen perusteella saadaan Lause Kaikilla A ja m pätee T DP ave (m) T A ave (m). Koska edelleen T A ave = lim m nähdään helposti että 1 m m Save A (t), t=1 T A ave = lim t SA ave (t) mikäli tämä raja-arvo on olemassa. Erityisesti tapauksessa A = DP kustannus Save A (t) ei riipu ajanhetkestä t ja saadaan Lause T DP ave = n i=1 ip i. 83

Todistetaan seuraavaksi, että asymptoottisesti FC on yhtä hyvä kuin DP. Intuitiivisesti päättely on seuraava: 1. FC on muuten sama kuin DP, paitsi että todennäköisyyksiä p i approksimoidaan suhteellisilla frekvensseillä ˆp i 2. suurten lukujen lain nojalla ˆp i p i todennäköisyydellä 1 3. siis todennäköisyydellä 1 jostain ajanhetkestä alkaen ˆp i < ˆp j jos ja vain jos p i < p j 4. siis todennäköisyydellä 1 jostain ajanhetkestä alkaen algoritmien FC ja DP listat ovat samassa järjestyksessä (mahdollisesti lukuunottamatta pareja (i, j) joilla p i = p j ) 5. siis rajalla t algoritmit FC ja DP käyttäytyvät samalla tavalla Muodollisempi todistus edellyttää puhumista äärettömän pitkistä operaatiojonoista. 84

Kun x on äärettömän pitkä jono access-operaatioita, olkoon x m sen ensimmäiset m operaatiota käsittävä osajono. Olkoon P jakaumaoletuksen mukainen jakauma äärettömän pitkille jonoille, siis P ({ x x m = (x 1,..., x m ) }) = P m (x m ) = p i1... p im. Olkoon ˆp i (x m ) operaation access(i) suhteellinen frekvenssi operaatiojonossa x m. Lemma Jos x valitaan jakauman P mukaan, niin todennäköisyydellä 1 pätee kaikilla i. lim m ˆp i(x m ) = p i Todistus Seuraa suoraan vahvasta suurten lukujen laista; ks. todennäköisyyslaskennan oppikirjat. 85

Toinen tarvittava aputulos on Rajoitetun konvergenssin lause Oletetaan, että f 1, f 2, f 3,... on jono tasaisesti rajoitettuja satunnaismuuttujia, ts. jollain M pätee f n (x) M kaikilla n, x, E[f n ] on olemassa kaikilla n ja f n f melkein kaikkialla, ts. { P ( x lim n f n (x) = f(x) } ) = 1. Nyt E[f] = lim n E[f n ]. Tämä kertoo sen intuitiivisesti uskottavan seikan, että raja-arvon ja odotusarvon voi ottaa kummassa järjestyksessä tahansa. Tämä ei kuitenkaan ole triviaalia kun puhutaan äärettömistä joukoista, joten on syytä todella tarkistaa lauseen ehdot. Mittateorian (integraalilaskennan, todennäköisyyslaskennan) oppikirjoista löytyy lisää vastaavia lauseita, joissa ehdot ovat hieman toiset. 86

Lause T FC ave = T DP ave. Todistus Edellisen mukaan kun x valitaan jakauman P mukaan, pätee todennäköisyydellä 1 lim ˆp i(x m ) = p i kaikilla i. m Erityisesti todennäköisyydellä 1 on olemassa sellainen m 0, että kun m m 0 niin pätee ˆp i (x m ) > ˆp j (x m ) aina kun p i > p j. Olkoon M(x) = m 0 jos tällainen m 0 on olemassa, muuten M(x) =. Siis ajanhetkestä m 0 eteenpäin algoritmien FC ja DP listat ovat samassa järjestyksessä lukuunottamatta mahdollisesti sellaisia alkiopareja joiden todennäköisyydet ovat samat. Olkoon S A ave (xm ) operaation numero m + 1 keskimääräinen kustannus algoritmilla A, kun edeltävät operaatiot ovat jonon x m mukaiset. Siis aina pätee Save DP (xm ) = Tave DP ja lisäksi kun m M(x) pätee S FC ave (xm ) = S DP ave (xm ) joten todennäköisyydellä 1 lim m SFC ave (xm ) = T DP ave. 87

Selvästi E[Save(x FC m 1 )] on olemassa kaikilla m, ja triviaalisti aina Save FC (xm 1 ) n. Rajoitetun konvergenssin lauseen nojalla nyt Koska toisaalta ja toisaalta triviaalisti väite seuraa. lim m E[SFC ave(x m 1 )] = E[T DP ave ]. T FC ave = lim m S FC ave (m) = lim m E[S FC ave (xm 1 )] E[T DP ave ] = T DP ave, Tietojenkäsittelytieteellisissä artikkeleissa sellaiset tekniset apuvälineet kuin suurten lukujen laki ja rajoitetun konvergenssin lause sivuutetaan usein maininnalla (tai ilman mainintaa). Tässä on esimerkin vuoksi asia esitetty melko yksityiskohtaisesti, koska näistä asioista on syytä kuitenkin olla tietoinen (ja todennäköisyyslaskennassa voi olla vaarallista luottaa intuitioon). 88