Sormenjälkimenetelmät



Samankaltaiset tiedostot
Tilastolliset menetelmät: Tilastolliset testit

4.3 Signaalin autokorrelaatio

n = 100 x = %:n luottamusväli µ:lle Vastaus:

( ) k 1 = a b. b 1) Binomikertoimen määritelmän mukaan yhtälön vasen puoli kertoo kuinka monta erilaista b-osajoukkoa on a-joukolla.

3 10 ei ole rationaaliluku.

Epäyhtälöoppia matematiikkaolympialaisten tehtäviin

Kertaa tarvittaessa induktiota ja rekursiota koskevia tietoja.

2. Mittaus ja data 2.1. Johdanto Mittaustyypit

811312A Tietorakenteet ja algoritmit, , Harjoitus 4, Ratkaisu

Bloom-filtterit. Juho Mäkinen jvmakine(at)cs.hut.fi

SMG-4200 Sähkömagneettisten järjestelmien lämmönsiirto Ehdotukset harjoituksen 6 ratkaisuiksi

Mat Sovellettu todennäköisyyslasku. Tilastolliset testit. Avainsanat:

2.5. Eksponenttifunktio ja eksponenttiyhtälöt

Solmu 3/ toteutuu kaikilla u,v I ja λ ]0,1[. Se on aidosti konveksi, jos. f ( λu+(1 λ)v ) < λf(u)+(1 λ)f(v) (2)

811312A Tietorakenteet ja algoritmit , Harjoitus 1 ratkaisu

ja läpäisyaika lasketaan (esim) integraalilla (5.3.1), missä nyt reitti s on z-akselilla:

Kuluttajahintaindeksi (KHI) Kuluttajahintaindeksi (KHI) Kysymys Miten mitata rahan arvon muutoksia?

Tehtäviä neliöiden ei-negatiivisuudesta

TILASTOT: johdantoa ja käsitteitä

Harjoitustehtävien ratkaisuja

BM20A Integraalimuunnokset Harjoitus 8

2 avulla. Derivaatta on nolla, kun. g( 3) = ( 3) 2 ( 3) 5 ( 3) + 6 ( 3) = 72 > 0. x =

4.7 Todennäköisyysjakaumia

= true C = true) θ i2. = true C = false) Näiden arvot löydetään kuten edellä Kun verkko on opetettu, niin havainto [x 1

3.2 Polynomifunktion kulku. Lokaaliset ääriarvot

T Datasta tietoon, syksy 2005 Laskuharjoitus 8.12., ratkaisuja Jouni Seppänen

5.3 Matriisin kääntäminen adjungaatilla

Stokastiikan perusteet Harjoitukset 1 (Todennäköisyysavaruus, -mitta ja -funktio)

Kompleksiluvut. Johdanto

Tehtävä 1. Voidaanko seuraavat luvut esittää kahden neliön summina? Jos voidaan, niin kuinka monella eri tavalla? (i) n = 145 (ii) n = 770.

MATA172 Sami Yrjänheikki Harjoitus Totta vai Tarua? Lyhyt perustelu tai vastaesimerkki!

Johdatus tilastotieteeseen Yhden selittäjän lineaarinen regressiomalli. TKK (c) Ilkka Mellin (2005) 1

Matematiikan tukikurssi

MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi Luennot, osa II

Otantajakauma. Otantajakauman käyttö päättelyssä. Otantajakauman käyttö päättelyssä

****************************************************************** ****************************************************************** 7 Esim.

Ryhmän osajoukon generoima aliryhmä ja vapaat ryhmät

Tilastollinen todennäköisyys

LASKENNALLISEN TIETEEN ERIKOISKURSSI kl 2000

RATKAISUT x 2 3 = x 2 + 2x + 1, eli 2x 2 2x 4 = 0, joka on yhtäpitävä yhtälön x 2 x 2 = 0. Toisen asteen yhtälön ratkaisukaavalla saadaan

Valvontakortit. Sovelletun Matematiikan Erikoistyö. Pastinen Tommi

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

Johdatus tilastotieteeseen Otos ja otosjakaumat. TKK (c) Ilkka Mellin (2004) 1

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

1 Eksponenttifunktion määritelmä

811312A Tietorakenteet ja algoritmit II Algoritmien analyysi

Kombinatoriikka. Iiro Honkala 2015

MATP153 Approbatur 1B Harjoitus 1, ratkaisut Maanantai

Diskreetin Matematiikan Paja Ratkaisuja viikolle 4. ( ) Jeremias Berg. n(n + 1) 2. k =

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa I

Mat Sovellettu todennäköisyyslasku A

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 5 (6 sivua)

LIITTEET Liite A Stirlingin kaavan tarkkuudesta...2. Liite B Lagrangen kertoimet...3

Talousmatematiikka (3 op) Sisältö. Tero Vedenjuoksu. Yhteystiedot: Tero Vedenjuoksu Työhuone M231

Matematiikan tukikurssi. Kertausta 1. välikokeeseen. Tehtävät

Insinöörimatematiikka IA

Matematiikan tukikurssi

tilavuudessa dr dk hetkellä t olevien elektronien

MATEMATIIKAN JA TILASTOTIETEEN LAITOS

Tunnuslukuja 27 III TUNNUSLUKUJA

pq n s n Kyllä Ei N Jäsenyys 5,4% 94.6 % 1500 Adressi 21,6% 78.4 % 1495 Lahjoitus 23,7% 76.3 % 1495 Mielenosoitus 1,1% 98.9 % 1489

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

8. laskuharjoituskierros, vko 11, ratkaisut

Oppimistavoite tälle luennolle

811312A Tietorakenteet ja algoritmit, , Harjoitus 2, Ratkaisu

Pseudoalkuluvuista ja alkulukutestauksesta

T TESTAUSRAPORTTI - MedicMinder "!! # $! %!!# & #

PUUNKORJUUN ERIKOISAMMATTITUTKINTO 2013

HY, MTL / Matemaattisten tieteiden kandiohjelma Todennäköisyyslaskenta IIb, syksy 2018 Harjoitus 3 Ratkaisuehdotuksia.

9.7 Matriisinormit. Vaasan yliopiston julkaisuja 225. Ei siis lainkaan ongelmia defektiivisyydestä.

Otantajakauman käyttö päättelyssä

10 Kertolaskusääntö. Kahta tapahtumaa tai satunnaisilmiötä sanotaan riippumattomiksi, jos toisen tulos ei millään tavalla vaikuta toiseen.

Tilastollinen päättömyys, kevät 2017 Harjoitus 5b

Johdatus tilastotieteeseen Otos ja otosjakaumat. TKK (c) Ilkka Mellin (2005) 1

EX1 EX 2 EX =

Matematiikan tukikurssi

Mat Sovellettu todennäköisyyslasku A. Otos- ja otosjakaumat Estimointi Estimointimenetelmät Väliestimointi. Avainsanat:

Osa 2: Otokset, otosjakaumat ja estimointi

Äärettämän sarjan (tai vain sarjan) sanotaan suppenevan eli konvergoivan, jos raja-arvo lims

Työ 55, Säteilysuojelu

3 x < < 3 x < < x < < x < 9 2.

C (4) 1 x + C (4) 2 x 2 + C (4)

Lasketaan kullekin a euron maksuerälle erikseen, kuinka suureksi erä on n vuodessa kasvanut:

Talousmatematiikan perusteet, ORMS1030

2. Algoritmien analyysi

TIIVISTELMÄRAPORTTI (SUMMARY REPORT)

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto ja esimerkkejä ym., osa I

Tehtävä 1. Etsi Neperin luvulle e vaihtoehtoisia esitysmuotoja joko suppenevia lukujonoja tai päättymättömiä summia eli sarjamuotoja.

410014Y Tieto- ja viestintätekniikka pedagogisena työvälineenä

Sote-alueen muodostamisen tarkemmat kriteerit on todettu väliraportin luvussa (sivut 18 19).

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa I

Perusraportti. 1. Mitä tahoa / sektoria edustat?

HEIJASTUMINEN JA TAITTUMINEN

Kun vuoden alussa varastossa oli 100 karaattia ja Antwerpenin ostot oheisen kuvan

Aikaisemmat selvitykset. Hammaslääkäriliitto on selvittänyt terveyskeskusten. terveyskeskusten hammaslääkäritilannetta

1 a) Eristeiden, puolijohteiden ja metallien tyypilliset energiakaistarakenteet.

Turingin kone on kuin äärellinen automaatti, jolla on käytössään

Todennäköisyys, että yhden minuutin aikana saapuu 2 4 autoa.

3 Lukujonot matemaattisena mallina

Transkriptio:

Sormejälkimeetelmät Matti Risteli mristeli@iksula.hut.fi Semiaariesitelmä 23.4.2008 T-106.5800 Satuaisalgoritmit Tietotekiika laitos Tekillie korkeakoulu Tiivistelmä Sormejälkimeetelmät ovat satuaisuutta hyväksikäyttäviä algoritmeja, joilla pyritää ratkaisemaa s. ekvivalessiogelmia. Nämä ovat ogelmia, joissa tietojoukkoje A ja B sisällö yhtäläisyyttä halutaa tutkia. Sormejälkimeetelmiä hyödytävät algoritmit voivat olla sekä Mote Carlo että Las Vegas -tyyppisiä. Satuaisalgoritmeilla voidaa pieetää tietojoukkoje vertailussa tarvittava tiedo määrää esim. tilateissa joissa jokaise tavu vertailu ei ole soveltuvaa(suuri tietomäärä hitaa yhteyde päässä toisistaa). Satuaiset sormejälkimeetelmät perustuvat todistajie rusaus -paradigmaa ja iide virhetodeäköisyyttä voidaa parataa helposti. 1 Johdato Tämä semiaarityö käsittelee satuaisuutee perustuvia sormejälkimeetelmiä. Sormejälkimeetelmillä pyritää ratkaisemaa s. ekvivalessiogelmia, joissa kahde tietojouko yhtäläisyys halutaa selvittää tilateissa joissa iide suora vertailu tai kryptografiste tiivisteide laskemie ei ole käytäöllistä esimerkiksi suure datamäärä vuoksi. Tällöi tietojoukkoje suora vertailu sijaa verrataa iide sormejälkiä. Sormejäljet ovat epätarkkoja kuvauksia, joilla alkuperäie tietojoukko esitetää pieemmässä tilassa. Tällä yhtäältä saavutetaa suorituskykyetua mutta toisaalta myös mahdollistetaa virheelliset päätelmät. Sormejälkimeetelmät voidaa ähdä yleisesti todistajie rusaus -paradigma erityistapauksea, joka virhetodeäköisyyttä voidaa pieetää amplifioimalla. Sormejälkimeetelmiä voidaa käyttää hyväksi sekä Las Vegas että Mote Carlo -algoritmeissa. Teksti perustuu Juraj Hromcovici kirjaa Desig ad Aalysis of Radomized Algorithms [1] ja mukailee pääpiirteissää kirja Figerpritig-luvu sisältöä. Aluksi esittele mitä ekvivalessiogelmalla tarkoitetaa ja mite sormejälkimeetelmät periaatteellisella tasolla toimivat. Se jälkee käydää läpi sekä Las Vegas että Mote Carlo -algoritmejä käyttävät esimerkkiogelmat ja lopuksi iide käytäö sovelluksia. 1

2 Ekvivalessiogelmista Ekvivalessiogelma o ogelma, joka muodostuu kahdesta tietojoukosta, joide yhtäläisyys halutaa selvittää. Yksikertaisilla tietojoukoilla tämä voidaa tehdä helposti vertailemalla tietoja toisiisa suoraa, mutta usei se ei ole soveltuvaa joko suure tietomäärä tai vertailu vaikeude aiheuttamie suorituskykyogelmie vuoksi. Yksikertaie esimerkki tällaisesta ogelmasta o polyomie ekvivalessi ts. mite ratkaista oko esimerkiksi polyomit (x 1)(x 2 + 4) ja x 3 + 4x 4 toistesa eri esitysmuotoja. Normaali lähestymistapa olisi tietysti johtaa molemmat polyomit jokilaisee ormaalimuotoo ja tarkistaa jokaise termi yhtäläisyys eriksee. Tämä ei kuitekaa moimutkaisemmissa tapauksissa ole järkevää, koska sekä vertailu että se valmistelut ovat hitaita. Sormejälkimeetelmällä tehty tarkistus o opeampi ja virhetodeäköisyys o joko hyvi piei tai virhettä ei ole ollekaa. Polyomiesimerki tapauksessa sormejälkimeetelmii perustuva tarkistus evaluoisi molemmat polyomit samalla syötteellä ja tutkisi vastauste yhtäsuuruutta. Virhetodeäköisyys olisi tässä tapauksessa yhtälö asteesta riippuva mutta tuettu. 3 Sormejälkimeetelmät Sormejälkimeetelmä voidaa ajatella todistajie joukkoa, joide avulla voidaa kuvata lähdetietojouko moimutkaise esitykse helpommi vertailtavaksi sormejäljeksi. Polyomiesimerkissä todistajia ovat satuaisesti valitut x: arvot ja sormejälkiä polyomeille valittuje x: arvoje perusteella saadut arvot. Triviaalisti voidaa saoa että x: arvo 0 o huoo todistaja. Yleisesti hyvä sormejälkimeetelmä täyttää seuraavat vaatimukset: Sormejälkie tulee olla tarpeeksi yksikertaisia ja pieiä että iitä voidaa vertailla tehokkaasti. Tämä saavuttamiseksi sormejälki saa olla jopa epätäydellie esitys alkuperäisestä tietojoukosta. Sormejälje tulee sisältää mahdollisimma paljo oleaista iformaatiota alkuperäisestä tietojoukosta. Yleisemmi sormejälkimeetelmää voidaa kuvata joukkoa M, joka jokaie alkio o fuktio, joka tuottaa tietojouko täydellisestä kuvauksesta sitä vastaava sormejälje. Yksittäisessä tapauksessa ogelmaa o löytää M, joka tarpeeksi moi fuktio f tuottaa kuvaukse, jolla erilaisille tietojoukoille O 1 ja O 2 pätee f(o 1 ) f(o 2 ). Tästä johtue sormejälkimeetelmä oki todistajie rusaus -meetelmä erityistapaus. Joukko M voidaa ajatella joukoksi todistajakadidaatteja, joilla pyritää todistamaa että O 1 O 2 ja h M yksittäiseksi todistajaksi sille että O 1 O 2, jos h(o 1 ) h(o 2 ). 3.1 Sormejälkimeetelmä toimita Tarkoitus o selvittää kahde suure tietojouko O 1 ja O 2 ekvivalessi. Sormejälkii perustuva ekvivalessitarkistus eteee seuraavasti: 2

1. Tuetaa joukko M, joka sisältää fuktioita, joista jokaie kuvaa tietojouko täydellise sisällö pieempää tilaa. Valitaa tästä joukosta yksi fuktio h satuaisesti. 2. Lasketaa h(o 1 ) ja h(o 2 ), h(o i ):tä kutsutaa O i : sormejäljeksi, i = 1,2 3. Verrataa h(o 1 ): ja h(o 2 ): arvoja. Jos h(o 1 ) = h(o 2 ), ovat O 1 ja O 2 ekvivaletit. Sormejälkimeetelmä suuittelussa oleaista o oikea jouko M löytämie. Yhtäältä tavoiteltavaa o että käytetyt meetelmät tuottavat mahdollisimma uiiki sormejälje ja täte M sisältää paljo todistajiksi sopivia kadidaatteja, toisaalta sormejälje täytyy olla mahdollisimma piei jotta sitä voidaa vertailla tehokkaasti. Nämä tavoitteet ovat selkeästi ristiriidassa, jote soveltuva kompromissi löytämie o tärkeää. 4 Esimerkkiogelmia Tässä kappaleessa kuvataa aluksi kaksi läheisesti toisiisa liittyvää ogelmaa ja iihi Mote Carlo -tyyppisee algoritmii perustuvat ratkaisut, jotka sallivat site pieellä todeäköisyydellä myös virhepäätelmät. Toisee ogelmatyyppii esitä Las Vegas -algoritmi, joka suorituksessa sormejälkiä käytetää hyväksi ilma virhee mahdollisuutta. Molemmat algoritmit käyttävät hyväksee samatyyppisiä sormejälkiä, mutta ovat silti hyvi erityyppiset. 4.1 Tietoliikee Tutkitaa skeaarioita, joissa kahde tietokoee, R 1 ja R 2, muistie sisältöä halutaa vertailla tehokkaasti. Koska tarkoitus o esitellä sormejälkimeetelmiä oletetaa, että jokaisessa ogelmassa tietokoeet ovat ii kaukaa, joko fyysisesti kaukaa tai muute vaa hitaa yhteyde päässä, toisistaa, ettei muistie sisällö suora vertailu ole tehokasta. Tästä syystä algoritmie tehokkuus mitataa iide siirtämä tiedo perusteella. Esimmäisessä tapauksessa halutaa tutkia oko tietokoee R 1 sisältämä bittijoo x {0,1} sama kui tietokoee R 2 sisältämä bittijoo y {0,1}. Determiistie algoritmi lähettäisi data kooaisuudessaa toiselta koeelta toiselle, mikä jälkee vertailu tehtäisii saa(word) kerrallaa. Lisäksi siirrety tiedo eheys aiheuttaa lisäkustauksia. Merkitää bittijooja x = x 1 x 2 x 3...x ja y = y 1 y 2 y 3... y, x i,y i 0,1, i = 1,...,. Number(x) tarkoittaa bittijoo x kymmekataista lukutulkitaa. Mahdolliste todistajie joukoksi otetaa kaikki alkuluvut < 2, merkitää tätä joukkoa Prim( 2 ). Sormejälkialgoritmi toimii seuraavasti 1. R 1 valitsee sormejälje geeroitia varte luvu p Prim( 2 ) 2. R 1 laskee valitu luvu avulla s = Number(x) mod p ja lähettää sekä s: että p: R 2 :lle 3

3. R 2 vastaaottaa s: ja p: ja laskee q = Number(y) mod p Jos q = s, todetaa että x = y, muute x y. Algoritmi toimia kaalta oleaista ovat siirrety tiedo määrä ja algoritmi virhetodeäköisyys. Tiedo määrästä tiedetää, että s p < 2. Tästä seuraa että s tai p vie maksimissaa log 2 2 bittiä, jote koko viesti pituudeksi tulee 2 log 2 2 4 log 2. Jos = 10 16 saadaa siirrettävä tiedo määräksi 4 16 log 2 10 = 256 bittiä, joka o huomattava väheys 10 16 bittii ähde. Virhetodeäköisyyde arvioitia varte jaetaa kaikki p: mahdolliset arvot(alkuluvut jotka ovat pieempiä kui 2, merkitää Prim( 2 )) kahtee joukkoo, iihi jotka aiheuttavat virhee ja iihi jotka eivät). Koska jokaise p Prim( 2 ) valitatodeäköisyys o sama o virhetodeäköisyys huootluvutprim( 2 ) : ssa Prim( 2. ) Alkulukuteoreema perusteella tiedetää, että Prim( 2 ) > 2 2 l. Bad(2 ): maksimiarvoksi voidaa l 2 äyttää 1. Tästä saadaa, että kuvatu algoritmi virhetodeäköisyys o. Tapuksessa = 10 16, virhetodeäköisyydeksi saadaa 0,36892 10 14, mikä ei ole todellie riski. Toie tapaus o laajeettu esimmäisestä. Tässä koee R 1 muistissa o bittijoo x {0,1}. Toise koee R 2 muistissa o bittijoojoukko U = {u 1,u 2,u 3,...,u k },u i {0,1},i = 1,...,k. Halutaa selvittää kuuluuko joo x joukkoo U. Determiistisellä algoritmillä aioa tapa olisi lähettää joo x kokoaisuudessaa koeelle R 2, joka se jälkee vertaisi x:ää jokaisee U: alkioo. Satuaisalgoritmi PSet eteee esimmäisessä tapauksessa kuvatu mukaisesti mutta R 2 laskee p: avulla q i = Number(u i ) mod p, i = 1,...,k, mikä jälkee jos s {q 1,q 2,...,q k } todetaa että x U, muute x U. Kuvatu protokolla vaatima tiedosiirto o triviaalisti sama kui aiemmassa esimerkissä(4 log 2 ), jote tutkitaa järjestelmä virhetodeäköisyyttä. Tilae jaetaa kahtee tapauksee Jos x U, tiedetää että o olemassa j {1,...,k} jolla x = u j ts. Number(x) = Number(u j ) mod m, jote algoritmi toimii varmasti ku x U. Jos x U, merkitää A i sitä tapausta ku ja Number(x) mod p = Number(u i ) mod p,i = 1,...,k A = k i=1 A i, joka o tapaus, jossa PSet tuottaa väärä vastaukse x U. Aiemma esimerki perusteella tiedetää, että ja täte P(A i ) 1 Prim(2) 2 l, kaikille i {1,...,k}. 4

josta seuraa että V irhet PSet (x,u) = V irhet PSet (x,u) 1 2, ku k P(A) = P( k i=1a i ) Σ k i=1p(a i ) Σ k 2 l i=1 = k 2 l, 4 l. Täte PSet o yksipuolise virhee(oe-sided error) Mote Carlo -algoritmi, joka tarkistaa kuuluuko x joukkoo U, ku k 4 l. Molemmissa kuvatuissa ogelmissa algoritmi virhetodeäköisyyttä voidaa pieetää käyttämällä useampaa alkulukua todistajaa. Lisäksi voidaa äyttää, että virhee aiheuttavie alkulukuje määrä o aia maksimissaa 1, jote virheelliste ja hyvie alkulukuje suhdetta voidaa parataa myös kasvattamalla joukkoa, josta alkulukuja valitaa. Algoritmia voidaa amplifioida jopa ii että hyötyje katoamatta algoritmi virhetodeäköisyys saadaa ii pieeksi että muista syistä(rautavika, luoo katastrofi tms.) johtuvie virheide todeäköisyys o suurempi. 4.2 Alimerkkijoo-ogelma Hahmotuistus(patter matchig) o yksi yleisimmistä tekstikäsittelyy ja algoritmeihi liittyvistä ogelmista. Sillä o myös käytäö sovellutuksia yleisesti molekyylibiologiassa. Hahmotuistamise perusteella voidaa jaotella asioita eri kategorioihi tai tehdä hakuja tietojoukosta. Tässä kappaleessa kuvataa sormejälkiä käyttävä tapa tuistaa alimerkkijooja tehokkaasti. Aluksi tuetaa merkkijoo x = x 1 x 2 x 3...x ja teksti y = y 1 y 2...y m aakkostossa Σ(ts. x i Σ, i = 1,..., ja y j Σ, j = 1,...,m). Halutaa selvittää sisältääkö y merkkijoo x. Lisäksi, mikäli x o y: alimerkkijoo, halutaa tietää myös piei ideksi r, jolla x 1 x 2...x = y r y r+1...y r+ 1. Selvyyde vuoksi tässä esimerkissä valitaa aakkostoksi Σ = {0,1}. Jokaiselle k {1,...,m 1} ja r 1,...,m k + 1 merkitä y(r,k) = y r y r+1... y r+k 1 tarkoittaa sitä k-pituista alimerkkijooa, joka alkaa ideksistä r. Aetuille x = x 1 x 2... x ja y = y 1 y 2... y m yksikertaie determiistie algoritmi vertaa x:ää jokaisee y(r,):ää, r = 1, 2,..., m +1. Yksikertaie, jokaise merki vertailuu vasemmalta oikealle perustuva algoritmi suorittaa O( + m) operaatiota etsiessää x:ää y:stä. Alla esitellää sormejälkiä hyväksikäyttävä algoritmi, joka suoriutuu tehtävästä opeammi. Algoritmi suorittamista varte määritellää fuktio f : N N N, joka arvoa pieempiä alkulukuja algoritmissa käytetää. STRING(f)-algoritmi eteee seuraavasti 5

1. Valitaa satuaisesti alkuluku p joukosta P rim(f(, m)). 2. Lasketaa Figer p (x) = Number(X) mod p 3. Lasketaa järjestyksessä Figer p (y(r,)) = Number(y(r,)) mod p ja verrataa Figer p (y(r,)):ää Figer p (x):he, kaikille r {1,2,...,m + 1}.. Jos Figer p (y(r,)) = Figer p (x), verrataa x:ää y(r,):ää. Jokaiselle j {1,2,...,m + 1}, jolle pätee Figer p (y(j,)) = Figer p (x), tarkistetaa vielä että x vastaa oikeasti y(j, ):ää. Jos y(j, ) = x, algoritmi palauttaa j: pieimmäksi ideksiksi josta merkkijoo x löytyi. Muussa tapauksessa jatketaa vertailua Figer r (y(j + 1,)):ästä. Yllä esitelty algoritmi o Las Vegas -tyyppie, koska kaikki osumat tarkistetaa vielä alkuperäisiä merkkijooja käyttäe, mikä estää virheelliste osumie palauttamise. Algoritmi aikakompleksisuutta tutkitaa seuraavaksi. Triviaalisti Figer p (x) tai Figer p (1,) vie aikaa O(). Kaikki sormejäljet Figer p (y(r,)), ku r = 1,...,m + 1 voidaa laskea ajassa O(m). Tämä pitää paikkasa koska valitusta aakkostosta johtue Number(y(r + 1,)) = 2 [Number(y(r,)) 2 1 y r ] + y r+ ja tästä johtue sormejälki Figer p (y(r + 1,)) voidaa laskea Figer p (y(r + 1,)) = (2 [Figer p (y(r,)) (2 1 y r ) mod p] + y r+ ) mod p. Myös millä tahasa muulla aakkostolla voidaa alimerkkijooje lukuarvot laskea edellise alimerkkijoo arvo avulla. Tutkitaa tapaukse, jossa y ei sisällä alimerkkijooa x:ää, aikavaatimukse ylärajaa. Merkitää A r sitä tapausta, jossa silti Figer p (x) = Figer p (y(r,)). Edellisestä kappaleesta tiedetää että virheellise sormejälje todeäköisyys o P(A r ) Täte STRING(f)-algoritmi aikavaatimus o 1 Prim(f(,m)) lf(,m) f(,m) O(m) + Σ m +1 r=1 (1 + Prob(A r ) ), O(m)-ajassa saadaa laskettua Figer p (x) ja kaikki Figer p (y(r,)): arvot. O(m) + m 2 l f(,m) f(,m) Jos valitaa f(,m) = 2 m l( 2 m), saadaa Aikavaatimus STRING( 2 m l( 2 m))(x,y) O(m) Tilatee, jossa x löytyy y:stä aikavaatimus o pieempi, koska algoritmi suoritus loppuu tällöi aiemmi. 6

5 Käytäö sovelluksia Yllä kuvatut esimerkit ovat luoteeltaa hyvi teoreettisia, jote tässä kuvaa muutamia käytäö sovelluksia, missä sormejälkitekiikoista o hyötyä. Useat sormejälkitekiikoide käytäö sovellukset perustuvat Las Vegas -algoritmeihi, joissa jotai vaikeaa hakua opeutetaa filtteröimällä tietoa alimerkkijooesimerki(ks. 4.2) tapaisesti ja hakemalla tästä suppeammasta joukosta osumia tehokkaasti. Tällaisia ogelmia o usei esimerkiksi tekstikäsittelyssä. Mote Carlo -tyyppie esimerkki esitetää Idetifyig redudacy i source code usig figerprits -kofferessipaperissa[2] tapa käyttää sormejälkiä toisteisuude tutkimisee isossa lähdekoodimäärässä. Tämäki meetelmä perustuu osittai kappaleessa 4.2 esitety alimerkkijooogelma ratkaisuu. Tässä tapauksessa lähdekoodeista geeroidaa sormejäljet vastaavasti kui alimerkkijooesimerki tekstistä y. Toisi kui alimerkkijooesimerkissä tässä käytettyje alimerkkijooje pituus o joki rivimäärä lähdetiedostoissa, mikä aiheuttaa se että eri kohdissa syötettä sormejälki geeroidaa eri pituisista merkkijooista. Koska tietoa o huomattava määrä sormejälkie geeroimiseki jälkee, poimitaa kaikista geeroiduista sormejäljistä e, jotka kattavat pisimmät merkkijoot, kuvaamaa kaikkia merkkijooja, jotka sisältyvät sormejälkee. Jäljelle jääeistä sormejäljistä poistetaa vielä e jotka esiityvät vai kerra, sekä yhdistetää peräkkäiset sormejäljet, jotka esiityvät joka paikassa samalla tavalla peräkkäi. Nyt jäljelle jääeide sormejälkie perusteella voidaa tutkia mahdollisia toisteisuus tarkemmi. 6 Yhteeveto Sormejälkimeetelmiä voidaa käyttää hyväksi tietytyyppisissä päätösogelmissa. Sormejälkie tarkoituksea o kuvata iso tietojoukko pieempää tilaa, site että sormejälkie perusteella tehty vertailu o tehokkaampaa. Sormejälkitekiikoide käyttötapoja o sekä Mote Carlo -tyyppisissä että Las Vegas -tyyppisissä algoritmeissa. Mote Carlo -algoritmeissa ogelma ratkaisu perustuu suoraa tietojoukoista tuotettuu sormejälkee, mikä sormejälje omiaisuuksie vuoksi aiheuttaa virheitä tietyllä todeäköisyydellä. Usei kuiteki virhetodeäköisyys o ii piei(tai voidaa amplifioimalla saattaa hyvi pieeksi), että sitä ei tarvitse ottaa huomioo. Toie tapa käyttää sormejälkiä o käyttää iitä tiedo filtteröitii jolloi tarkempi vertailu voidaa tehdä sille tietojoukolle, joka sormejälki vastaa toista vertailtavaa. Tässä tapauksessa virheitä ei tule ja täte algoritmi o Las Vegas -tyyppie, mutta filtteröiti vähetää silti vaadittavie vertailuje määrää ja site tehostaa ogelma ratkaisua. 7

Viitteet [1] Juraj Hromkovic. Desig Ad Aalysis of Radomized Algorithms, Itroductio to Desig Paradigms, chapter 4. Spriger, 2005. [2] J. Howard Johso. Idetifyig redudacy i source code usig figerprits, 1993. 8