Hajakoodaus Talletetaan alkiot avain-indeksoituun taulukkoon Hajakoodausfunktio Menetelmä avain-indeksin laskemiseen avaimesta Törmäyksen selvitysstrategia.

Slides:



Advertisements
Samankaltaiset esitykset
18. Abstraktit tietotyypit
Advertisements

TODENNÄKÖISYYSLASKENTA
RSA-Salaus -SSH -PGP -IPSEC.
Estimointi Laajennettu Kalman-suodin
Tietokanta.
Tietorakenteet ja algoritmit
Diskreetti matematiikka salausmenetelmien matematiikkaa
2.8.3 Abstraktit tietotyypit
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
Markku Siermala, IMT Bioinformatiikan koulutusohjelma
Taulukot Jukka Juslin © Jukka Juslin 2006.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
Yksikkömuunnokset.
Rakenteinen ohjelmointi
Käännösaikaiset virheilmoitukset • Tulee silloin, kun koodissa on jotain sellaista, joka ei ole Javan syntaksin mukaista • Esim. – Syntax error, insert.
ATK70d / Ohjelmointi 1 Kuplalajittelu © Helia / Jukka Harju, 2004.
10/9/2012 © Hannu Laine 1 Tietorakenteet ja algoritmit Listan määritelmä Listan toteutustapoja Yksinkertainen taulukkototeutus Linkattu taulukko Dynaamisesti.
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
AS Automaation signaalinkäsittelymenetelmät
RSA – Julkisen avaimen salakirjoitusmenetelmä Perusteet, algoritmit, hyökkäykset Matti K. Sinisalo, FL.
1.2. Tuloperiaate ja permutaatiot
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
TAULUKKO YKSIULOTTEINEN TAULUKKO. TAULUKKO  Taulukon tarkoitus Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia Näitä.
Binäärinen hakupuu Jokaisessa solmussa on yksikäsitteinen avain
2. Vuokaaviot.
Tiedonhakumenetelmät Helena Ahonen-Myka Kevät 2004, osa 9 Merkkijonohahmon etsintä selaamalla.
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
Salausmenetelmien kertausta
1. Joukko-oppi Merkinnät
Massa m ja paino G.
2.8 TIETO- JA TALLETUSRAKENTEET
Algoritmi-harjoituksia…
22. Taulukot.
5. Lineaarinen optimointi
Harjoitustyö 1. Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala2 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva.
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 2 - Jirka Poropudas Optimointiopin seminaari - Kevät 2005 / 1 Bayes-verkoista s
Ohjelmointi 1. toinen luento1 Taulukot n Kiinteät taulukot: alkioiden määrä tiedetään Dim intCount(12) As Integer 0 indeksit saavat arvoja 0-12 (Option.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
Keskusmuistitietokantahakemistot Vilho Raatikka Solid Information Technology Tietokannat NYT! Helsinki,
Listat eli luettelot listaelementit ovat lohkoelementtejä:  lista ja listan alkiot alkavat uudelta riviltä  listan jälkeen tuleva elementti alkaa uudelta.
Foreach-toistolausetMyn1 foreach-toistolause foreach-rakenteella on kätevä käydä läpi kaikki taulukon alkiot. Erityisen kätevää se on hajautustaulukon.
FOR i := 0...N-1 DO summa := summa + A[i] tulo := tulo * A[i] ENDFOR.
Lajittelu: peruskäsitteet
Prioriteettijonot ja kekolajittelu (heapsort)
Kuplalajittelu (bubble sort)
Puun määritelmä Puu on yhden tai useamman kytketyn solmun muodostama hierarkinen joukko Lehtisolmuista juurisolmuun on yksikäsitteinen polku Käytetään.
Lajittelun sovelluksia Yksilöllisyyden testaaminen Kopioiden poistaminen Mediaani/n:ksi suurimman valinta frekvenssien laskenta/yleisin alkio, l.moodi.
Hajoita ja hallitse (divide and conquer) Pikalajittele n-alkioinen taulukko 1. Divide: Jaetaan taulukko kahdeksi alitaulukoksi tukialkion (pivot) x suhteen:
Kompleksisuus Yleistä.
Merkkijono Sekvenssi merkkejä aakkostosta: - binäärinen {0, 1} -ASCII, UNICODE Sovelluksia: - Tekstinkäsittely - Digitaalinen kirjasto - Laskennallinen.
Muuttujan osoite int a=1; 0xbfffea64 /* tulostetaan a:n osoite*/ printf(“%p\n”, &a); 0xbfffea68 /* tulostetaan a:n osoite + 1*/ printf(“%p\n”, &a+1); /*
Linkitetty lista Joukko alkioita jotka on kytketty toisiinsa linkeillä Listan alkio sisältää talletettavan datan ja linkin seuraavan alkioon Alkion lisääminen.
Symbolitaulut Joukko hakuavaimen omaavia tietueita LISÄÄ uusi tietue ETSI tietue hakuavaimen perusteella Sovelluksia: Spell checker etsii sanoja sanakirjasta.
Scalan valmiit kokoelmat. Mikä on kokoelma?  Tietorakenne jonka tehtävänä on pitää kirjaa (useista) tietyn tyyppisistä arvoista. Kokoelman sisältämiä.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö.
Matematiikkaa 3b © Varga–Neményi ry 2017
Matematiikkaa 3a, Kertausjakso Lukuja © Varga–Neményi ry 2016
Laiska laskenta, korekursio ja äärettömyys
Yhden bitin asettaminen Javalla
Esimerkkejä tietorakenteista
Foreach-toistolause foreach-rakenteella on kätevä käydä läpi kaikki taulukon alkiot. Erityisen kätevää se on hajautustaulukon tapauksessa, jossa taulukon.
toista 12 kertaa käännä kortti lähetä käännetty
Toisto Toistolausekkeet for, while(ehto){…} ja do {…} while(ehto)
16. Ohjelmoinnin tekniikkaa
PAIKANMÄÄRITYS III Trigonometriset menetelmät
[Hankkeen nimi] [Tutkijan nimi]
16. Ohjelmoinnin tekniikkaa
Esityksen transkriptio:

Hajakoodaus Talletetaan alkiot avain-indeksoituun taulukkoon Hajakoodausfunktio Menetelmä avain-indeksin laskemiseen avaimesta Törmäyksen selvitysstrategia algoritmi ja tietorakenne käsittelemään tapaus jossa kaksi avainta kuvautuu samaan indeksin arvoon

Hajakoodausfunktio Hajakoodausfunktio h kuvaa kaikkien avaimien joukon U joukoksi {0,1,…,m-1} U k1k1 k5k5 k2k2 k4k4 k3k3 0 m-1 h(k 1 ) h(k 5 ) h(k 2 )= h(k 4 ) h(k 3 ) Kun kaksi avainta kuvautuu samaan indeksin arvoon tapahtuu törmäys.

Hajakoodausfunktio Tavoite: satunnainen kuvaus (kaikki indeksi yhtä todennäköisiä kaikille avaimille) Avaimia käsitellään pitkinä kokonaislukuina, taulukon koko M on alkuluku Hajakoodausfunktio: h(K) = K mod M Laske arvo Hornerin säännön avulla: Esim. abcd:n hajakoodausfunktion arvo on 11 97* * * = (256*(256*(256*97+98)+99) % 101 = 11 Numerot liian isoja? Lasketaan jakojäännös jokaisen operaation jälkeen (256* ) % 101 = 84 (256* ) % 101 = 90 (256* ) % 101 = 11 Universaali hajakoodaus: hajakoodausfunktion kerroin vaihtuu jokaisen koodattavan yksikön kohdalla.

Alkuluvut hajakoodaustaulukolle ndndn 2 n -d n Taulukko listaa suurimman 2 n :ää pienemmän alkukuvun.

Hajakoodausfunktio C-kielellä int haja(char *v, int n){ int h = 0, /* hajakoodin arvo */ a = 127; /* kokonaislukukerroin */ for(; *v != '\0'; v++) h = (a * h + *v) % n; return h; }

Universaali hajakoodausfunktio C-kielellä int hajaU(char *v, int n) { int h = 0, a = 31415, /* kokonaislukukerroin */ b = 27183; /* kokonaislukukerroin */ for(; *v != '\0'; v++, a = a * b % (n - 1)) h = (a * h + *v) % n; return h; }

Törmäyksen selvitysstrategiat Erillinen ketjutus Taulukon koko (M) paljon alkioiden lukumäärää pienempi (N) n. N/M alkiota jokaisessa taulukon indeksissä Samaan indeksiin kuvautuvat avaimet laitetaan linkitettyyn listaan Avoin osoitteistus (lineaarinen koestus, kaksoishajakoodaus) Taulukon koko paljon alkioiden lukumäärää suurempi Paljon tyhjiä paikkoja taulukossa Törmäyksen sattuessa etsitään vapaa paikka

Erillinen ketjutus Hajautetaan taulukolliseen linkitettyjä listoja Hajautus Kuvataan avain välille [0, M-1] Taulukko Viittaus listan alkuun vie vakioajan Linkitetyt listat Lisäys vie vakioajan Haku tapahtuu käyttäen alkeisalgoritmia M liian iso: paljon tyhjiä listoja M liian pieni: listat hyvin pitkiä I HS GR EPEE NC LAAA MX ASERCHINGXMPL

Lineaarinen koestus Hajakoodataan isoon taulukkoon, käytetään lineaarihakua klustereiden sisällä Hajakoodaus Kuvataan avain taulukon indeksiin välille [0,M-1] Iso taulukko Ainakin 2 kertaa alkioiden lukumäärä Klusteri Yhtenäinen lohko alkioita

Lineaarisen koestuksen esimerkki A ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE E ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE ER ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERI ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERI ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERI ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERI ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERI ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERIN ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERIN GSHACERIN ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERIN GSHACERIN GSHACERIN ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERIN GSHACERIN GSHACERIN ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERIN GSHACERIN GXSHACERIN ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERIN GSHACERIN GXSHACERIN GXSHACERIN ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERIN GSHACERIN GXSHACERIN GXSHACERIN ASERCHINGXM

Lineaarisen koestuksen esimerkki A SA SAE SAER SACER SHACER SHACERI SHACERIN GSHACERIN GXSHACERIN GXMSHACERIN ASERCHINGXM

Kaksoishajakoodaus Käyttää kahta erilaista hajakoodausfunktiota yhden kuvauksen muodostamiseen. Hajakoodaus Kuvataan avain taulukon indeksiin välille [0,M-1] Toinen hajakoodaus Kuvataan avain ( > 0) askellus arvoon (mielellään suhteellinen alkuluku M:lle.

Kaksoishajakoodaus esimerkki A ASERCHINGXM

Kaksoishajakoodaus esimerkki A SA ASERCHINGXM

Kaksoishajakoodaus esimerkki A SA SAE ASERCHINGXM

Kaksoishajakoodaus esimerkki A SA SAE ASERCHINGXM

Kaksoishajakoodaus esimerkki A SA SAE SAE ASERCHINGXM

Kaksoishajakoodaus esimerkki A SA SAE RSAE ASERCHINGXM

Kaksoishajakoodaus esimerkki A SA SAE RSAE ASERCHINGXM

Dynaaminen hajakoodaustaulu Taulun kokoa muutetaan tarpeen mukaan suuremmaksi.

Dynaamisen hajakoodauksen esimerkki A 0123 ASERCHINGXM 13

A AS 0123 ASERCHINGXM 13

A AS EAS ASERCHINGXM 5712

A AS EAS ASERCHINGXM 5712

A AS EAS ERAS ASERCHINGXM 5712

A AS EAS ERAS ESRA ASERCHINGXM