Pengantar
- Pada musim gugur 2021, mahasiswa S1 Rutgers University, Andrew Krapivin, menemukan sebuah makalah yang akan mengubah hidupnya.
- Makalah itu membahas "pointer kecil" yang menunjuk informasi di memori komputer.
- Krapivin merancang cara untuk membuat pointer lebih kecil sehingga mengurangi konsumsi memori.
Penemuan tabel hash baru
- Krapivin melakukan eksperimen menggunakan tabel hash, metode umum untuk menyimpan data.
- Selama eksperimen, Krapivin menemukan jenis baru tabel hash yang bekerja lebih cepat daripada yang sudah ada.
- Penemuan ini menghasilkan temuan yang membalikkan dugaan ilmu data yang telah bertahan selama 40 tahun.
Pentingnya tabel hash
- Tabel hash adalah salah satu struktur data tertua dalam ilmu komputer dan menawarkan efisiensi dalam penyimpanan data.
- Tabel hash dirancang agar dapat menjalankan tiga fungsi: mencari, menghapus, dan menyisipkan elemen.
Dugaan Yao dan bantahannya
- Pada 1985, ilmuwan komputer Andrew Yao mengajukan dugaan tentang cara menemukan elemen dalam kasus terburuk pada tabel hash dengan sifat tertentu.
- Tabel hash baru Krapivin membantah dugaan Yao dan membuktikan bahwa waktu yang dibutuhkan untuk kueri dan penyisipan pada kasus terburuk berbanding lurus dengan
(log x)².
Temuan baru tentang waktu kueri rata-rata
- Krapivin dan timnya menunjukkan bahwa pada tabel hash non-greedy, waktu kueri rata-rata tidak bergantung pada
x.
- Ini berarti waktu kueri rata-rata yang konstan dapat dicapai terlepas dari tingkat kepenuhan tabel hash.
Kesimpulan
- Riset ini memperdalam pemahaman tentang tabel hash dan berpotensi mengarah pada aplikasi praktis.
- Pemahaman tentang struktur data seperti ini dapat menjadi dasar bagi perbaikan praktis di masa depan.
1 komentar
Komentar Hacker News
Krapivin membuat terobosan tanpa mengetahui dugaan Yao
Hasil yang keren, tetapi sepertinya ini seharusnya disebut dugaan ilmu komputer
Saya penasaran apakah ada yang tahu repositori GitHub dengan implementasi ini
Keren, tetapi gaya "pengkultusan tokoh" dalam artikel ini agak membuat tidak nyaman
Pada hash table baru ini, waktu yang dibutuhkan untuk query dan penyisipan dalam kasus terburuk berbanding lurus dengan (log x)²
Membaca artikel ini seperti membaca penjelasan masalah Monty-Hall
Ini ujian yang bagus belakangan ini
Saya penasaran apakah ada yang punya implementasi sederhana dari 'Tiny pointers'
Seperti yang selalu dikatakan penjahat di <i>Scooby Doo</i>:
Setelah membaca cepat makalahnya, tampaknya perbedaan utama yang mereka gunakan adalah bahwa algoritma penyisipan hash table mencari lebih jauh alih-alih secara rakus mengisi slot kosong pertama
Hasil teoretis yang menarik, tetapi dalam praktiknya rasanya 'trik' saat ini, yaitu mengalokasikan tabel yang lebih besar daripada yang diperlukan, akan menjadi solusi yang lebih baik