1 / 17

MANAJEMEN KOLISI

MANAJEMEN KOLISI. Salah satu fungsi hash adalah akan mendistribusikan data secara merata ke dalam berkas . Jika tujuan tersebut tidak tercapai , salah satu strategi yang bisa diambil adalah mengkombinasikan beberapa fungsi sederhana dalam satu aplikasi .

zasha
Download Presentation

MANAJEMEN KOLISI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MANAJEMEN KOLISI

  2. Salahsatufungsi hash adalahakanmendistribusikan data secarameratakedalamberkas. Jikatujuantersebuttidaktercapai, salahsatustrategi yang bisadiambiladalahmengkombinasikanbeberapafungsisederhanadalamsatuaplikasi. Fungsi hash menghasilkanbanyak kolisiatausinonimdikatakanmemilikikluster primer. Makin sedikitjumlahkolisi, makinbaikfungsi hashing tersebutkarenamakinsedikitwaktu yang diperukanrekaman yang diinginkandanjugaakanmempertahankan probe atauaksesterhadappenyimpan agar mendekatisatu.

  3. Beberapacara yang dapatditempuhuntukmereduksikolisiadalahmenggantifungsi hashing, ataudenganmereduksi factor-packing. Factor-packing suatuberkasadalahperbandingan (rasio) antarajumlahrekaman yang disimpandalamberkasdengankapasitasberkas, dapatdinyatakansebagaiberikut:

  4. Factor-packing (densitas-packing / factor-loading) mengukurutilitasipenyimpanan. Factor-packing berbandinglurusdenganjumlahkolisi. Jikanilai packing-factor meningkat, makakolisiakanlebihseringterjadi. Menguraginilai factor-packing dengantujuanuntukmengurangijumlahkolisi, membawapadakonsekuensidiperlukannyaruang yang lebihluasuntukmenyimpanjumlahrekaman yang sama. Fenomenapemilihan factor-packing adalahcontohdarisuatu trade-off waktudanruang. Jika factor-packing diperkecil, makadiperlukanruang yang lebihluas, tetapidengandemikiankemungkinanuntukkoliimenjadiberkurangataudengankata lain meningkatkankinerja. Kolisipadaumumnyaakannaiksecaracepatbila factor-packing melebihi 90%.

  5. Mengubahfungsi hashing ataumengubah factor-packing akandapatmengurangikolisi. Akantetapi, padaumumnyatidakakanmengeliminasikolusitersebut. Yang menjadimedoteutamaadlahmetoderesolusikolusiadalahmenempatkanrekamansinonimpadasuatulokasi yang membutuhkan probe tambahan yang minimum dari home-address rekamantersebut. Probe adalahakseskelokasi yang berbeda. Salahsatupenyelesaian yang dapatdilakukanadalahmemberikanpenunjukpadalokasirekamansinonim. Bilaterjadisinonimjamakpadasuatu home-address tertentu, akandibentukrantairekamansinonim. Sebagaicontohadalah R1, R2 dan R3 sinonimdengan home-address r, makarantaisinonimakanberbentuksepertipadagambardibawah :

  6. GambarRantaisinonim Medan penghunglokasi r menunjukpadalokasi s dimanatersimpansinonimpertama, yaitu R2. simbol ^ ataupenunjuknolpadamedanpenghubung t menunjukanakhirdarirantaisinonim.

  7. ResolusiKolisi Coalesed-hashing LICH dan EISCH Progressive Overflow Penggunaan Buckets Pembagian Liner

  8. Coalesed-Hasingadalahmetoderesolusi yang menggunkanpenunjukuntukmenghubungkanelemen-elemendarisebuahrantaisinonim. Coalesed-hasing (kolisi) terjadibilaterdapatusahauntukmenyisipkansebuahrekamandengan home-address yang berbeda. Coalesed-Hashing

  9. Algoritmauntukcoalesed-hasingadalahsebagaiberikut: • Lakukan hashing padasemuakuncirekaman yang akandisimpanuntukmendapatkan home-address ataucalon-address yang mungkinakanditempatiolehrekaman-rekamantersebut. • Jika home-address kosong, sisipkanrekamanpadalokasitersbut, jikarekamanternyatakembar, akhiri program denganpesan “RekamanKembar”, jikatidak: • Carilokasiterakhirrantai-sinonimdenganmengikutipenunjukpadamedanpenghubungsampaimenemukansimbol ^ yang menandakanakhirdarirantai. • Carilokasi paling bawahdalamberkas (ataumemilikialamat paling besar). Jikatidakditemukan, akhiri program denganpesan “BerkasPenuh”. • Sisipkanrekamankedalamlokasi yang kosongsudahteridentifikasidanaturmedan-penghungrekamanterakhirdalamrantai-sinonim agar menunjukkelokasirekaman yang barusajadisisipkan.

  10. LICH dan EISCH Beberapavariandaricoalesed-hasingdapatdiklasifikasikankedalamtigacara: • Mengorganisasiberkas (denganatautanpa overflow) • Menghubungkan item yang terkolosikedalamrantai • Memilihlokasi yang belumadapenghuninya Kolisimungkindapatdireduksidenganmemodifikasiorganisasiberkas. Cara pertamaadalahdenganmemisahkanantara area data primer dengan area data overflow, sehinggamemilikibentuksebagaiberikut:

  11. Area primer adalahruangalamat yang cocokdenganfungsi hash. Overflow (Cellar) adalah area yang hanyaberisirekaman-rekaman yang sinonim. Faktoralamatadalahperbandinganantara area primer denganukuran total berkas. Untukukuranberkas yang tetap, jikafaktoralamatmengecilmakaukuran cellar akanmeningkat, yang berartimereduksikolisi. Akantetapi, karena area primer menjadimengecilmakajumlahkolisiakanmembesar. Kolisi yang lebihbanyakmembawakonsekuensi , makadiperlukannya probe pembacaan yang lebihbesar.

  12. Progressive Overflow Kerugianutamapenggunaancoalesed-hasingadalahdiperlukannyatambahanuntukmedanpenghubung. Untukmenentukanrekaman, makaperludilakukankonversi. Salahsatukonversi yang sederhanaadalahpenggunaan overflow yang progresifatau probing secara linier. Pertimbanganberkasmemilikistruktur yang melingkar, denganlokasipertamaberadatepatsesudahlokasiterakhir. Pencariandilanjutkansampaiditemukan slot yang kosongatausampaiditemukan home-address rekamanuntukkeuda-kalinyamenandakanbahwaberkastelahpenuh. Untukpembacaankembalidilakukan prose yang sama.

  13. Penggunaan Buckets Jumlahpengaksesandapatdireduksidenganmeletakkanlebihdarisaturekamanpadasatualamatpenyimpanan. Kemungkinantersebutdapatdirealisirbiladigunakansistem “buckets” ( disebutjuga “blokatau “halaman”). Jadi, bucket adapatdidefinisikansebagian unit penyimpanan yang beradadiantararekamandenganberkas, jugasebuah unit denganinformasi yang dapatdiaksesdandipindahkanantarperalatanpenyimpanan. Jumlahrekaman yang dapatdiletakkanpadasatu bucket disebut factor-blocking. Jika factor-blocking meningkat, jumlahaksesterhadappenyimpananakanmengecilkarenabeberaparekaman yang berkolisidapatdisimpandalamsatualamat yang sama.

  14. Pembagian Liner Resolusikolisidenganbaikteknikpembagian-linier merupakanvariandari progressive-overfloe. Kalauadaprogerssive-overflow inkremenuntukmenujukelokasiberikutnyaadalahkonstan (1=satu), makapadapembagian linier digunakaninkremen yang bersifatvariabel. Tujuaninkremen yang variabeladalahmereduksipengklusteransekunder yang terjadipada progressive-overflow sehinggajumlah probe untukpembacaankembalijugaberkurang. Tidaksepertirantaicoalessed, sinonimpadapembagian-linier umumnyatidakberadapadarantai probe yang sama. Jika R1, R2 dan R3 adalahsinonimpada home-address h sepertipadagambarberikut, R2 dan R3 biasanyamemilikiinkremen yang berbedamengingatinkremenmerupakanfungsikunci yang akandisisipkan. Karenainkremen yang berbeda, makapengklasteransekunderdapatdireduksi.

  15. Algoritmauntukmetodaresolusikolisidenganpembagian-linier adalahsebagaiberikut: • Hash kunci yang akandisisipkankedalamberkasuntukmemperoleh home-address untukmenyimpanrekaman.\ • Jika home-address kosong, sisipkanrekamankedalamlokasitersebut, jikatidakmaka: • Tentukaninkremendenganmenghitunghasilbagikuncidenganukuranberkas. Jikahasinyanol, makainkremennya = 1 (satu). • Berihargaawalpencacahuntukperhintunganlokasi yang akandicaridengan 1. • Selamajumlahlokasi yang dicarilebihkecildariukuranberkas, maka: • Hitungalamat yang akandicariberikutnyadenganmenambahkaninkrementerhadapalamatterakhirdankemudiancarimodulusnyaterhadapukuranberkas. • Jikaalamattersebuttidakada yang menempati, makasisipkanrekmansertaakhiripenyisipandenganakses.

  16. Jikarekaman yang menempatimemilikikunci yang samadengan yang akandisisipkan, akhiriprosesdenganpesan “rekaman double”. • Tambahkan 1 pad pencacahpencarianlokasi. • Akhiriprosesdenganpesan “BerkasPenuh”. Algoritmatersebutmensyaratkanukuranberkasberupabilangan prima untukmenghindariterjadinyasikluspencarianterhadaprekamanberulang-ulangdankemudianmemberikanindikasibahwarekamansudahpenuh yang padakenyataannyamasihterdapatruang yang belumditempati.

More Related