Formalisoidaan hieman täsmällisemmin, millaisia suoritustakuita satunnaisalgoritmeilta voidaan vaatia.

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

Satunnaisalgoritmit. Antti Tanhuanpää. 25. maaliskuuta 2013

7.4 Sormenjälkitekniikka

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Muita vaativuusluokkia

3. Laskennan vaativuusteoriaa

Algoritmit 2. Luento 13 Ti Timo Männikkö

C C. x 2. x 3 x 3. Lause 3SAT p m VC Todistus. Olk. φ = C 1 C 2 C m 3-cnf-kaava, jossa esiintyvät muuttujat. φ toteutuva:

6. Approksimointialgoritmit

Jatkuvat satunnaismuuttujat

Tutkimustiedonhallinnan peruskurssi

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

1 Lineaariavaruus eli Vektoriavaruus

Yhteydettömän kieliopin jäsennysongelma

= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko

Säännöllisen kielen tunnistavat Turingin koneet

SAT-ongelman rajoitetut muodot

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.

7. Satunnaisalgoritmit (randomized algorithms)

R 1 = Q 2 R 2 + R 3,. (2.1) R l 2 = Q l 1 R l 1 + R l,

Lisää pysähtymisaiheisia ongelmia

Rekursiiviset palautukset [HMU 9.3.1]

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

Shorin algoritmin matematiikkaa Edvard Fagerholm

Sovellettu todennäköisyyslaskenta B

802320A LINEAARIALGEBRA OSA I

Funktioiden approksimointi ja interpolointi

10. Satunnaisalgoritmit

Numeeriset menetelmät

3SAT-ongelman NP-täydellisyys [HMU ]

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

C.C. McGeoch, Toward an experimental method for algorithm simulation. algorithm simulation = algoritmin testaus, experimental algorithmics

Turingin koneen laajennuksia

Matemaattisen analyysin tukikurssi

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33

Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa Linkkikeskukset ja auktoriteetit (hubs and authorities) -algoritmi

Algoritmit 1. Luento 2 Ke Timo Männikkö

Numeeriset menetelmät

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

6. laskuharjoitusten vastaukset (viikot 10 11)

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Nopea kertolasku, Karatsuban algoritmi

Tilastollinen aineisto Luottamusväli

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

Tehtävä 1. Arvioi mitkä seuraavista väitteistä pitävät paikkansa. Vihje: voit aloittaa kokeilemalla sopivia lukuarvoja.

Todennäköisyyden ominaisuuksia

Ominaisvektoreiden lineaarinen riippumattomuus

Tehtävä 4 : 2. b a+1 (mod 3)

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

30A02000 Tilastotieteen perusteet

4.1. Olkoon X mielivaltainen positiivinen satunnaismuuttuja, jonka odotusarvo on

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

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

Parametrin estimointi ja bootstrap-otanta

Sovellettu todennäköisyyslaskenta B

M = (Q, Σ, Γ, δ, q 0, q acc, q rej )

Väliestimointi (jatkoa) Heliövaara 1

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

Lisää Diskreettejä jakaumia Lisää Jatkuvia jakaumia Normaalijakaumasta johdettuja jakaumia

Tilastotieteen kertaus. Kuusinen/Heliövaara 1

Determinantti 1 / 30

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

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

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

802320A LINEAARIALGEBRA OSA III

Täydentäviä muistiinpanoja laskennan rajoista

TOOLS. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO TOOLS 1 / 28

Algoritmit 2. Luento 14 Ke Timo Männikkö

MS-A0004/A0006 Matriisilaskenta

Määritelmä 1. Olkoot V ja W lineaariavaruuksia kunnan K yli. Kuvaus L : V. Termejä: Lineaarikuvaus, Lineaarinen kuvaus.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

4. laskuharjoituskierros, vko 7, ratkaisut

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Ratkaisuehdotus 2. kurssikokeeseen

Todennäköisyyslaskun kertaus. Vilkkumaa / Kuusinen 1

Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Similaarisuus. Määritelmä. Huom.

x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

MS-C1340 Lineaarialgebra ja

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

1. Nollahypoteesi on, että teksti on kirjoitettu lyhyemmällä murteella. Mahdollisiavaihtoehtojaonvainyksieliettäteksti

T Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1

14. Juurikunnat Määritelmä ja olemassaolo.

Lisätehtäviä ratkaisuineen luentomonisteen lukuihin 2-4 liittyen

Numeeriset menetelmät

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Ominaisarvo ja ominaisvektori

Algoritmit 1. Demot Timo Männikkö

Numeeriset menetelmät TIEA381. Luento 3. Kirsi Valjus. Jyväskylän yliopisto. Luento 3 () Numeeriset menetelmät / 45

1.4 Funktioiden kertaluokat

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Transkriptio:

Satunnaisalgoritmien vaativuusteoriaa Formalisoidaan hieman täsmällisemmin, millaisia suoritustakuita satunnaisalgoritmeilta voidaan vaatia. Yksinkertaisuuden vuoksi tarkastellaan päätösongelmia. Useimmat ideat yleistyvät helposti. Sopiva laskennan malli on esim. Turingin kone, jossa jokaisella (tila, syötemerkki)-parilla on määritelty kaksi siirtymäfunktion arvoa ja näistä valitaan aina jompikumpi symmetristä kolikkoa heittämällä. Koneen aikavaativuus annetulla syötteellä on pisimmän mahdollisen laskennan pituus. Yksityiskohdat eivät kuitenkaan ole tässä tärkeitä. Kun M on tällainen probabilistinen Turingin kone, olkoon P (M, x) todennäköisyys että syötteellä x kone M päätyy hyväksyvään tilaan. Koneen M hyväksymä kieli on nyt L(M) = { x P (M, x) > 1/2 }. 360

Kieli A kuuluu luokkaan PP (Probabilistic Polynomial time), jos A = L(M) jollain polynomisessa ajassa toimivalla M. Luokka PP ei ole kovin realistinen satunnaisalgoritmin malli. Seuraava algoritmi osoittaa, että SAT PP. ProbSAT(f(x 1,..., x n )): b := random({ 0, 1 }) if b = 0 (1) then accept (2) else for i := 1 to n do b i := random({ 0, 1 }) if f(b 1,..., b n ) = 1 then accept else reject Jos f(x 1,..., x n ) ei ole toteutuva, niin todennäköisyydellä 1/2 hyväksytään haarassa (1), muuten aina hylätään. Jos f(x 1,..., x n ) on toteutuva, niin lisäksi haarassa (2) hyväksytään ainakin todennäköisyydellä 1/2 n, joten hyväksymistodennäköisyys on yli 1/2. Siis ProbSAT [tai sen esitys probabilistisena Turingin koneena] hyväksyy kielen SAT. Selvästi ProbSAT toimii polynomisessa ajassa. 361

Samalla idealla nähdään helposti, että itse asiassa NP co-np PP. Toisaalta polynomisessa tilassa on mahdollista kokeilla kaikkia mahdollisia satunnaisarvausten tuloksia, joten PP PSPACE. Tarkempien suhteiden selvittäminen on avoin ongelma. (Tietysti jos esim. P = PSPACE niin satunnaisuudesta ylipäänsä ei tällä tarkastelutasolla ole mitään etua.) Huomattavasti käytännönläheisempi luokka on BPP (Bounded error Probabilistic Polynomial time). Kone M tunnistaa kielen A virhetodennäköisyydellä ε jos { ε jos x A P (M, x) 1 ε jos x A missä ε < 1/2 on syötteestä riippumaton vakio. Virheparametrin ε tarkka arvo ei itse asiassa ole kovin tärkeä, kuten seuraavaksi näemme. 362

Oletetaan, että algoritmi R tunnistaa kielen A virhetodennäköisyydellä ε < 1/2. Tarkastellaan seuraavaa algoritmia, missä m on toistaiseksi määräämätön parametri. S(x, m): p := 0 q := 0 for i := 1 to m do if R(x) hyväksyy then p := p + 1 else q := q + 1 if p > q then accept else reject Oletetaan, että m on pariton, m = 2k + 1. Jos S antaa väärän vastauksen, niin R on antanut oikean vastauksen korkeintaan k kertaa m yrityksellä. Tämän todennäköisyys on k j=0 ( m j ) (1 α) j α m j missä α ε on algoritmin R virhetodennäköisyys syötteellä x. 363

Koska α < 1/2, niin 1 α > α, joten k j=0 ( m j ) (1 α) j α m j j=0 j=0 k j=0 ( m j ) (1 α) m/2 α m/2 2 m (1 α) m/2 α m/2 = (4α(1 α)) m/2 sillä binomikaavan mukaan k ( m ) m ( m ) = (1 + 1) m. j j Koska α(1 α) saavutaa maksiminsa kun α = 1/2, pätee α(1 α) ε(1 ε) < 1/4. Olkoon nyt c = ( log(4α(1 α))) 1 jolloin c > 0 ja (4α(1 α)) c = 1/2. Algoritmin S virhetodennäköisyys on korkeintaan ( ) m/(2c) 1 (4α(1 α)) m/2 2 eli esim. virhetodennäköisyyden (1/2) n saavuttamiseen riittää 2cn iteraatiota. Virhetodennäköisyys pienenee eksponentiaalisesti. 364

Probabilistinen Turingin kone tunnistaa kielen A toispuolisella virhetodennäköisyydellä ε jos { 1 ε jos x A P (M, x) = 0 jos x A. Monilla käytännössä tärkeillä satunnaisalgoritmeilla on toispuolinen virhe, koska ne ovat tyyppiä 1. Arvaa todiste y. 2. Jos y on validi todiste sille, että x A, niin hyväksy. Muuten hylkää. missä x A jos ja vain jos tälle seikalle on olemassa jokin todiste y (vrt. luokka NP). Luokka R (merk. toisinaan RP, Random Polynomial time) koostuu niistä kielistä, jotka voidaan tunnistaa polynomisessa ajassa toispuolisella virheellä ε < 1/2. Kuten luokan BPP tapauksessa, parametrin ε tarkka arvo ei ole oleellinen. 365

Lisäksi määritellään luokka ZPP (Zero error Probabilistic Polynomial time) koostumaan kielistä, jotka voidaan tunnistaa polynomisessa ajassa satunnaisalgoritmilla, joka ei koskaan vastaa väärin mutta voi vastata en tiedä todennäköisyydellä ε < 1. On helppo nähdä, että ZPP = R co-r. Myös luokkaan ZPP kuuluvilla ongelmilla virhetodennäköisyyttä voidaan iteroimalla pienentää eksponentiaalisesti. Samoin nähdään, että A ZPP, jos ja vain jos A voidaan tunnistaa algoritmilla, joka ei koskaan tee virheitä eikä vastaa en tiedä ja toimii odotusarvoisesti polynomisessa ajassa. Siis ZPP vastaa Las Vegas -algoritmeja ja BPP Monte Carlo -algoritmeja. 366

PSPACE PP NP BPP co-np R co-r ZPP P Probabilististen vaativuusluokkien sisältyvyyksiä. Sisältyvyyden aitous kaikissa tapauksissa avoin ongelma. 367

7.3 Otantaan perustuvia algoritmeja Ensimmäisenä esimerkkinä tarkastellaan polynomien identtisyyden tarkistamista. Perusongelmana on määrätä kahdesta n muuttujan polynomifunktiosta r ja s ovatko ne identtiset, ts. päteekö r(a 1,..., a n ) = s(a 1,..., a n ) kaikilla a 1,..., a n. Tarkastelemme yksinkertaisuuden vuoksi ongelmaa, onko polynomifunktio p identtisesti nolla, ts. onko p(a 1,..., a n ) = 0 kaikilla a 1,..., a n. Alkuperäinen ongelma palautuu tähän valinnalla p = r s. Tietysti jos polynomit on annettu eksplisiittisesti, ongelma voidaan triviaalisti ratkaista katsomalla ovatko polynomien kaikki kertoimet samat. On kuitenkin olemassa polynomifunktioita, joilla kertoimien muodostaminen on turhan työlästä. Esim. funktio n p(x 1,..., x n ) = (1 + x i ) i=1 on helppo evaluoida millä tahansa muuttujien arvoilla, mutta esityksessä p(x 1,..., x n ) = S { 1,...,n } i S on eksponentiaalinen määrä termejä. x i 368

Selvyyden vuoksi käytetään merkintää p(x) 0 tarkoittamaan p(x 1,..., x n ) = 0 kaikilla x 1,..., x n, ja merkintää p(x) 0 tämän negaatiolle. Polynomin p astetta merkitään deg p. Lause (Zippel ja Schwartz 1979) Olkoon p astetta d oleva reaalikertoiminen n muuttujan polynomi jolla p(x) 0, ja olkoon S R äärellinen. Nyt polynomilla p on joukossa S n korkeintaan d S n 1 nollakohtaa. Todistus Induktio arvojen n ja d suhteen. n = 1: Tunnettu perustulos. d = 1: Olkoon p(x) = a 1 x 1 +... + a n x n b missä a j 0. Jos p(x) = 0 niin x j = 1 a j (b i j a i x i ), joten n 1 muuttujaa määrää yksikäsitteisesti jäljellejäävän. Siis joukossa S n voi olla korkeintaan S n 1 nollakohtaa. 369

n > 1, d > 1: Olkoon p astetta d ja p(x) 0. Tapaus A: p on jaollinen. Siis p(x) = q(x)r(x) kaikilla x, missä deg q > 1 ja deg r > 1. Kun merkitään N p (S) = { x S n p(x) = 0 }, saadaan induktio-oletuksen nojalla N q (S) (deg q) S n 1 ja N r (S) (deg r) S n 1. Siis N p (S) = N q (S) N r (S) N q (S) + N r (S) (deg q + deg r) S n 1 = d S n 1. 370

Tapaus B: p jaoton. Kullakin s S tarkastellaan n 1 muuttujan polynomia p s (x) = p(x 1,..., x n 1, s). Jos p s (x) 0 kaikilla s S, niin N p (S) = s S N ps (S) S d S n 2 = d S n 1. Olkoon toisaalta p s (x) 0 jollain s S. Ajatellaan p muuttujan x n polynomiksi, jossa kertoimet ovat muuttujien x 1,..., x n 1 polynomeja. Jakoyhtälön nojalla p(x, x n ) = (x n s)q(x, x n ) + r(x) kaikilla x S n 1. Kun x n = s, seuraa oletuksesta p s (x) 0 nyt r(x) 0 eli p(x, x n ) = (x n s)q(x, x n ) vastoin oletusta polynomin p jaottomuudesta. 371

Korollaari Olkoon p(x) 0 ja deg p = d. Jos luvut a 1,..., a n valitaan toisistaan riippumatta tasaisen jakauman mukaan joukosta { d,..., d } niin P (p(a) = 0) < 1 2. Todistus Valitaan edellisessä lauseessa S = { d,..., d }. Siis S = 2d + 1 ja P (p(a) = 0) d(2d + 1)n 1 (2d + 1) n = d 2d + 1 < 1 2. Yllä johdettua todennäköisyysrajaa voidaan tiukentaa iteroimalla kuten edellä on todettu. Jos p(x) 0 niin koskaan ei löydy yhtään a S n jolla p(a) 0. Jos taas p(x) 0, niin otamalla m otosta joukosta S n lyötyy todennäköisyydellä 1 (1/2) m ainakin yksi a jolla p(a) = 0. 372

Sovellus: pariutustesti. Olkoon G = (U V, E) kaksijakoinen verkko, U = { u 1,..., u n } ja V = { v 1,..., v n }. Muodostetaan n n-matriisi X G = ( x ij ), missä { xij jos (u x ij = i, v j ) E 0 muuten ja x ij ovat muuttujasymboleita. u 1 v 1 u 2 v 2 u 3 v 3 Verkko G x 11 x 12 0 0 x 22 x 23 x 31 x 32 0 Matriisi X G 373

Matriisin X G determinantti on nyt muuttujien x ij korkeintaan astetta n oleva polynomi. Jokaiseen termiin on valittu tekijäksi tasan yksi muuttuja kultakin riviltä ja kultakin sarakkeelta, joten kukin termi vastaa yhtä täydellistä pariutusta. det X G = x 11 x 32 x 23 + x 12 x 23 x 31 u 1 u 2 v 1 v 2 u 3 v 3 u 1 u 2 v 2 u 3 v 1 v 3 x 11 x 32 x 23 x 12 x 23 x 31 Siis täydellinen pariutus on olemassa, jos ja vain jos polynomi det X G ei ole identtisesti nolla. Muistetaan, että vaikka determinantissa on n! termiä, se voidaan evaluoida ajassa O(n 3 ) kun matriisiin sijoitetaan jotkin vakioarvot. Kysymys täydellisen pariutuksen olemassaolosta ratkeaa siis edellisellä otantamenetelmällä. Menetelmä yleistyy myös ei-kaksijakoisille verkoille (Tutte 1947). 374

Binomijakauma ja Chernoffin rajat Kun S on onnistumisten lukumäärä suoritettaessa n riippumatonta toistokoetta, joiden kunkin onnistumistodennäköisyys on p, merkitään S Bin(n, p). Binomijakautuneen satunnaimuuttujan pistetodennäköisyydet, odotusarvo ja varianssi ovat tunnetusti ( n P (S = k) = p k) k q n k E[S] = np Var[S] = npq missä on merkitty 1 p = q. Me olemme erityisesti kiinnostuneita binomijakauman häntätodennäköisyyksistä n ( n P (S (1 + λ)np) = p k) k q n k P (S (1 λ)np) = k=(1+λ)np (1 λ)np k=0 ( n k) p k q n k jotka esittävät todennäköisyyttä, että saadaan hyvin epätyypillinen otos. 375

Jos parametrien arvot on annettu, häntätodennäköisyyksiä voi yrittää laskea suoraan em. kaavoista. Jos n on hyvin suuri, voidaan käyttää hyväksi keskeistä raja-arvolausetta, jonka nojalla S np npq N(0, 1) eli sopivasti skaalattuna S noudattaa standardinormaalijakaumaa. Asymptoottisessa algoritmianalyysissa on usein kätevintä käyttää ns. Chernoffin rajoja kun 0 λ 1. P (S > (1 + λ)np) P (S < (1 λ)np) exp( 1 3 λ2 np) exp( 1 2 λ2 np) Chernoffin rajat eivät kuitenkaan välttämättä ole erityisen tarkkoja, jos halutaan parhaita mahdollisia vakioita; kehittyneempiäkin menetelmiä tunnetaan. 376

Perusesimerkki: Kuinka monta toistoa tarvitaan, että onnistumistodennäköisyys p saadaan arvioiduksi suhteellisella virheellä ε luotettavuudella δ? Tietysti S/n on sopiva estimaatti parametrille p. Siis mikä on oltava n jotta Chernoffin rajoista saadaan P ( S/n p > εp) δ. P ( S/n p > εp) = P (S > (1 + ε)np) + P (S < (1 ε)np) kun valitaan 2 exp( 1 3 ε2 np) δ n 3 ε 2 n ln 2 δ. Siis kiinteällä p riittää O(ε 2 ) otosta. Otoskoko kuitenkin kasvaa, kun p lähestyy nollaa, eli pienten todennäköisyyksien arviointi hyvällä suhteellisella virheellä on vaikeaa. 377

Yhdisteen koon arviointi Suurella perusjoukolla X on kokoelma osajoukkoja S i, i = 1,..., k, joista kaikilla i tiedetään alkioiden lukumäärä S i, osataan ratkaista päteekö x S i annetulla x S ja osataan tuottaa joukon S i alkioita satunnaisesti tasaisella jakaumalla. Tehtävänä on määrittää joukkojen S i yhdisteen S = S 1... S k koko S. Koska voi olla S X, ongelman ratkaiseminen suoraan edellisen esimerkin avulla ei välttämättä toimi vaikka osattaisiinkin generoida satunnaisia x X. Merkitään R = { (i, x) x S i } R = { (i, x) x S i ja x S j kun j < i. } Siis R = i S i ja R = i S i. Jos tunnettaisiin p = R / R, saataisiin S = p i S i. 378

Suhteen p estimoimiseksi halutaan tasaisesti jakautuneita alkioita (i, x) R. Näitä saadaan seuraavasti: 1. Valitse i { 1,..., k } todennäköisyyksin P (i = r) = S r j S j. 2. Valitse satunnainen x S i. Pääohjelma on siis seuraava: count := 0 for n times do valitse satunnainen (i, x) R if x S j kaikilla j < i then count := count + 1 return (count/n) i S i Edellisen esimerkin perusteella estimaatti ˆp = (count/n) on ε-tarkka luotettavuudella δ, jos n 3 ε 2 p ln 2 δ. Koska p 1/k, tämä pätee ainakin jos n 3k ε 2 ln 2 δ. 379