T-1.1 Datasta tietoo, syksy 5 Laskuharjoitus.1., ratkaisuja Joui Seppäe 1. Simuloidaa tasoittaista algoritmia. Esimmäisessä vaiheessa ehdokkaia ovat kaikki yhde muuttuja joukot {a}, {b}, {c} ja {d}. Aaltosulkeide vähetämiseksi merkitää joukkoja yksikertaisesti a, b, c ja d. Näide esiitymie lukumäärät ovat a b c d 7 7 7. Siis kaikki ovat kattavia, jote seuraaviksi ehdokkaiksi tulevat kaikki kahde muuttuja joukot (merkitsemme taas ab = {a, b} je.): ab ac ad bc bd cd 3 5 5. Kaikki paitsi ab ovat kattavia. Seuraavat ehdokkaat ovat: acd bcd 3. Näistä vai bcd o kattava. Siis kattavia joukkoja ovat a, b, c, d, ac, ad, bc, bd, cd ja bcd.. Aikavaativuuksia laskettaessa kiiostavaa o algoritmie asymptoottie käyttäytymie eli ajakäytö kehittymie, ku syöttee koko lähestyy ääretötä. Tässä tapauksessa aikavaativuutta tarkastellaa fuktioa sekä syöttee koosta että ehdokkaide lukumäärästä, joka suhtautumie syötteesee o vaikeasti luoehdittavissa. Jos ehdokkaide määrää ei otettaisi mukaa tarkasteluu, pahi tapaus olisi triviaalisti se, jossa data sisältää pelkkiä ykkösiä. Silloi ehdokkaiksi tulisivat kaikki muuttujajoukot, siis ekspoetiaalie määrä. Lueoilla esitetty tasoittaie algoritmi o kirjoitettu pseudokoodia seuraavalle sivulle. Merkitää data kokoa eli havaitoje määrää m:llä ja kaikkie käsiteltävie ehdokasjoukkoje määrää :llä. Kulloiki käsiteltävie k: kokoiste ehdokkaide joukkoa merkitää C k :lla. Olkoo t suuri k: arvo, siis ehdokkaide maksimaalie koko. Selvästi = t k=1 C k ja k t = O(l ) Rivi 3 while-silmukka suoritetaa t kertaa. Yhdellä suorituskerralla rivi 5 for-silmukka suoritetaa m kertaa, ja yhdellä se suorituskerralla rivi for-silmukka C k kertaa. Yhteesä tämä for-silmukka suoritetaa siis m kertaa. Yhdellä tämä suorituskerralla rivi for-silmukka suoritetaa k kertaa, ja se sisältämiä operaatioita voidaa pitää vakioaikaisia. Samoi rivi 11 if-lause vie vakioaja. Siis rivi 5 for-silmuka aikavaativuus o O(m l ). 1
1: k 1 : C k { { a } a variables } 3: while C k : : couter[x] for all X 5: for observatio i data : Cout frequecies of cadidates : for X i C k : Check if all variables i X are preset 7: good True : for var i X : 9: if observatio[var] = the 1: good False 11: if good the 1: couter[x] couter[x] + 1 13: F k 1: for X i C k : Select frequet cadidates 15: if couter[x] N the 1: F k F k { X } 17: C k+1 1: for A i F k : Geerate ext cadidates 19: for B i F k : : X A B 1: if X = k + 1 the : good True 3: for var i X : : if X \ { var } ot i F k the 5: good False : if good the 7: C k+1 C k+1 { X } : k k + 1 Rivi 1 for-silmukka suoritetaa kaikkiaa kertaa (koska se o uloimma while-silmuka sisällä) ja se sisällä olevia lausekkeita voidaa pitää vakioaikaisia. Rivie 13 17 aikavaativuus o siis O(), ja koska = O(m l ), sillä ei ole asymptoottisesti merkitystä. Rivie 1 ja 19 for-silmukat suoritetaa kaikkiaa t F k t C k = O( l ) kertaa. Rivi lause vie aikaa eitää O(k) = O(l ) yksikköä. Rivi 3 for-silmukka suoritetaa yhdellä ulompie silmukoide suorituskerralla k + 1 = O(l ) kertaa, ja se sisällä olevia lausekkeita voidaa pitää vakioaikaisia (F k voidaa toteuttaa hajautustaulua, joka sisältyvyystestaus o käytäössä vakioaikaie). Kaikkiaa rivi 1 for-silmuka aikavaativuudeksi saadaa siis O( (l ) ). Koska m l ja (l ) eivät ole asymptoottisesti vertailtavissa, koko algoritmi aikavaativuus o O(m l + (l ) ).
3. Raja käyttäytymistä esittävät seuraavat kuvat. 1 p=.1 1 p=.1 1 p=.1. 1.. 3.. 5.. 1.. 3.. 5.. 1.. 3.. 5. p=.1 1. 1.. 3.. 5. p=.5 1. 1.. 3.. 5. 1...... Raja ja todellise todeäköisyyde etäisyyttäki voidaa tarkastella riittävä pieillä : arvoilla. Seuraavassa yhteäie viiva kuvaa todeäköisyyttä Pr(X x) ja katkoviiva Tšerovi rajaa: p=.5, =1 1...... 1 p=.1, =1 1...... 1 p=.5, =1 1...... 1 Tšerovi raja o suhteellise helppo johtaa. Lähtökohtaa o Markovi epäyhtälö, joka koskee ei-egatiivisia satuaismuuttujia X ja joka mukaa Pr(X a) E[X] a. Tässä tapauksessa sitä tarvitaa diskreetille satuaismuuttujalle. Olkoot X: mahdolliset arvot x 1 < x <. Olkoo x j äistä arvoista suuri, joka o pieempi kui a. Silloi E[x] = a x i Pr(X = x i ) i=j+1 i=j+1 x i Pr(X = x i ) Pr(X = x i ) = a Pr(X x j+1 ) = a Pr(X a). Toie tarvittava tulos o epäyhtälö 1 + x e x, joka pätee kaikilla reaaliluvuilla x ja ähdää todeksi tarkastelemalla fuktiota f(x) = e x x 1: koska f (x) = e x > ja f () =, f(x) f() = kaikilla x. 3
Olkoot yt Y 1, Y,..., Y riippumattomia satuaismuuttujia, joista kuki saa arvo 1 todeäköisyydellä p ja arvo todeäköisyydellä 1 p, ja olkoo X = Y i. Olkoo edellee t. Silloi Markovi epäyhtälö perusteella Pr(X (1 + δ)p) Pr(e tx e t(1+δ)p ) e t(1+δ)p E[e tx ]. Muuttuja e tx odotusarvolle pätee riippumattomuude perusteella E[e tx ] = E[e t(y 1+ +Y ) ] = E[e ty1 e ty ] = E[e ty 1 ]. Odotusarvo määritelmä ja edellä todistetu epäyhtälö avulla saadaa Valitsemalla t = l(1 + δ) saadaa E[e ty 1 ] = pe t + (1 p) = 1 + p(e t 1) e p(et 1). ( ) Pr(X (1 + δ)p) e l(1+δ)(1+δ)p e p(1+δ 1) = (1 + δ) (1+δ)p e δp e δ p =. (1 + δ) 1+δ. Kokeilemalla kaikki vaihtoehdot ähdää, että piei virhe saadaa, ku segmettie raja o kuudee ja seitsemäe pistee välissä: 1 1 1.... 55.5 53.5 1.7.1 53.3 1 1 1 1 1 1 1. 51.33 37.33 1. 5. 3. 1. 1.. 1 1 1 1 1 1 37.3 39.3. 1..3.5... 1 1 1
5. Kirjoitetaa f(x) = (y i x) ja derivoidaa f: f (x) = x y i. Derivaatta o olla, jos x = (1/) i y i eli alkioide keskiarvo, egatiivie jos x o pieempi ja positiivie jos x o suurempi. Siis tämä o fuktio f miimikohta. Kirjoitetaa g(x) = y i x. Voidaa olettaa, että luvut y i ovat suuruusjärjestyksessä: y 1 y y. Mille tahasa idekseille i < j pätee y j y i, y i x y j, y i x + y j x = y j y i + (y i x), x < y i, y j y i + (x y j ), y j < x. Siis jos =, mikä tahasa piste alkioide y 1 ja y välissä miimoi virhee. Jos o parillie, voidaa kirjoittaa / g(x) = h i (x), missä fuktioista h i (x) = y i x + y +1 i x jokaie miimoituu, ku y / x y /+1. Jos h o parillie, saadaa samalla tavalla lauseke g(x) = ( 1)/ h i (x) + y (+1)/ x, joka miimoituu, ku x = y (+1)/. Joka tapauksessa voidaa siis valita pisteide y i mediaai. 5