Giriş
- 2021 sonbaharında, Rutgers University lisans öğrencisi Andrew Krapivin hayatını değiştirecek bir makaleyle karşılaştı.
- Bu makale, bilgisayar belleğinde bilgiyi işaret eden "küçük işaretçiler" hakkındaydı.
- Krapivin, işaretçileri küçülterek bellek tüketimini azaltmanın bir yolunu geliştirdi.
Yeni bir hash tablosunun keşfi
- Krapivin, verileri depolamanın yaygın bir yolu olan hash tablolarını kullanarak deneyler yürüttü.
- Deneyler sırasında Krapivin, mevcut olanlardan daha hızlı çalışan yeni bir hash tablosu türü icat etti.
- Bu keşif, veri bilimi alanında 40 yıllık bir varsayımı çürüten bir sonuç ortaya çıkardı.
Hash tablolarının önemi
- Hash tabloları, bilgisayar bilimindeki en eski veri yapılarından biridir ve veri depolamada verimlilik sağlar.
- Hash tabloları; öğeleri arama, silme ve ekleme olmak üzere üç işlevi yerine getirecek şekilde tasarlanmıştır.
Yao'nun varsayımı ve çürütülmesi
- 1985'te bilgisayar bilimci Andrew Yao, belirli özelliklere sahip hash tablolarında en kötü durumda bir öğenin nasıl bulunacağına ilişkin bir varsayım ortaya koydu.
- Krapivin'in yeni hash tablosu, Yao'nun varsayımını çürütüyor ve en kötü durumda sorgu ile ekleme için gereken sürenin
(log x)² ile orantılı olduğunu kanıtlıyor.
Ortalama sorgu süresine dair yeni bulgu
- Krapivin ve ekibi, açgözlü olmayan hash tablolarında ortalama sorgu süresinin
x'e bağlı olmadığını gösterdi.
- Bu, hash tablosunun doluluk oranından bağımsız olarak sabit bir ortalama sorgu süresine ulaşılabileceği anlamına geliyor.
Sonuç
- Bu araştırma, hash tablolarına dair anlayışı derinleştiriyor ve pratik uygulamalara yol açma potansiyeli taşıyor.
- Veri yapılarına yönelik bu anlayış, gelecekteki pratik iyileştirmeler için bir temel oluşturabilir.
1 yorum
Hacker News görüşleri
Krapivin, Yao'nun varsayımını bilmeden bir atılım gerçekleştirmiş
Harika bir sonuç, ama buna bilgisayar bilimi varsayımı denmesi daha doğru gibi görünüyor
Bu implementasyona sahip bir GitHub deposu bilen var mı diye merak ediyorum
Güzel, ama bu yazının "ünlüleştirme" tarzı biraz rahatsız edici
Yeni hash tablosunda en kötü durumda sorgu ve ekleme için gereken süre
(log x)^2ile orantılıBu makaleyi okumak Monty Hall probleminin açıklamasını okumak gibi
Son zamanlar için iyi bir test
'Tiny pointers' için basit bir implementasyonu olan biri var mı diye merak ediyorum
<i>Scooby Doo</i>'daki kötü adamın hep dediği gibi:
Makaleye hızlıca göz attım; kullandıkları temel fark, hash tablosu ekleme algoritmasının ilk boş yuva açgözlü biçimde doldurmak yerine daha uzağı araması gibi görünüyor
İlginç bir teorik sonuç, ama pratikte ihtiyaç duyulandan daha büyük bir tablo ayırmaya yönelik mevcut "hile" daha iyi bir çözüm gibi görünüyor