5 ポイント 投稿者 GN⁺ 2025-02-11 | 1件のコメント | WhatsAppで共有

紹介

  • 2021年秋、Rutgers University の学部生 Andrew Krapivin は、彼の人生を変えることになる論文に出会った。
  • その論文は、コンピュータメモリ内で情報を指し示す「小さなポインタ」に関するものだった。
  • Krapivin は、ポインタをより小さくしてメモリ消費を減らす方法を考案した。

新しいハッシュテーブルの発見

  • Krapivin は、データを保存する一般的な方法であるハッシュテーブルを使って実験を行った。
  • 実験の過程で、Krapivin は従来よりも高速に動作する新しい種類のハッシュテーブルを発明した。
  • この発見は、40年来のデータサイエンスの推測を覆す結果をもたらした。

ハッシュテーブルの重要性

  • ハッシュテーブルは、コンピュータサイエンスで最も古いデータ構造の1つであり、データ保存の効率性を提供する。
  • ハッシュテーブルは、要素の検索、削除、挿入という3つの機能を実行できるよう設計されている。

Yao の推測とその反証

  • 1985年、コンピュータサイエンティスト Andrew Yao は、特定の性質を持つハッシュテーブルで最悪の場合に要素を見つける方法についての推測を提示した。
  • Krapivin の新しいハッシュテーブルは Yao の推測を反証し、最悪の場合のクエリと挿入に必要な時間が (log x)² に比例することを証明した。

平均クエリ時間に関する新たな発見

  • Krapivin と彼のチームは、非貪欲なハッシュテーブルでは平均クエリ時間が x に依存しないことを示した。
  • これは、ハッシュテーブルの充満度に関係なく、一定の平均クエリ時間を達成できることを意味する。

結論

  • この研究はハッシュテーブルへの理解を深め、実用的な応用につながる可能性がある。
  • データ構造に対するこのような理解は、将来の実践的な改善に向けた基盤となり得る。

1件のコメント

 
GN⁺ 2025-02-11
Hacker Newsの意見
  • KrapivinはYaoの予想を知らないままブレークスルーを成し遂げた

    • Balatroの開発者は既存のデッキビルダーを知らないまま、受賞歴のあるデッキビルダーゲームを作った
    • 問題への最善のアプローチは、過去の類似した試みを知らないか、無視することなのかもしれない
    • 今の世界はあまりにも相互接続されていて、過去の思考の枠組みにはまりやすい
    • インターネットは素晴らしいが、思考の世界を均質化する傾向がある
  • 素晴らしい結果だが、コンピュータサイエンスの予想と呼ぶべきだと思う

  • この実装を持つGitHubリポジトリを知っている人がいるのか気になる

  • すごいが、この記事の「有名人化」スタイルは少し居心地が悪い

    • 大学の環境でいろいろなポーズを取る若者の写真を何枚も見る必要があったのか疑問だ
    • コンピュータ分野の成功した生存者を美化して、より多くの参加を促すためのLa La Land版が必要なように思える
  • 新しいハッシュテーブルでは、最悪の場合のクエリと挿入に必要な時間は (log x)² に比例する

    • チームの結果がすぐに応用につながらない可能性がある
    • なぜすぐに応用につながらないのか理解できない
    • 実際のユースケース分析によって、純粋に数学的なアプローチよりもハッシュ実装をうまく調整できる状況なのか気になる
  • この記事を読むのはMonty-Hall問題の説明を読むようなものだ

    • 結論は常識に反しているように見えるが、証明可能だ
    • ハッシュテーブルの充満度に関係なく一定の平均クエリ時間を達成できるという事実は、著者たち自身も予想していなかった
  • 最近の良いテストだ

    • 深い研究がこの結果をコピーせずに出せるか見てみよう
    • gpt4、Gemini 2、Claudeには運がなかった
    • 人間主導のコンピュータサイエンスはまだ安泰だ
  • 「Tiny pointers」の簡単な実装を持っている人がいるのか気になる

    • 私の頭の中では証明よりコード/疑似コードが先だ
  • <i>Scooby Doo</i>の悪役がいつも言っていたように:

    • <i>「そして、あのいまいましい子どもたちさえいなければ、私は成功していたのに!」</i>
  • 論文をざっと読んだところ、彼らが使った主な違いは、ハッシュテーブルの挿入アルゴリズムが最初の空きスロットを貪欲に埋める代わりに、より遠くまで探索することだ

    • テーブルが非常に埋まっていても空きスロットを効率的に見つける、証明可能な探索順序を組み合わせている
    • ハッシュテーブルの埋まり具合が低いときには挿入は遅くなるが、最後に残った空きスロットを見つけられない最悪のシナリオは避けられる
  • 興味深い理論的結果だが、実際には必要以上に大きなテーブルを割り当てる現在の「トリック」のほうが良い解決策になりそうだ

    • たとえば、Rustのhashbrownはテーブルの1/8(12.5%)を空けておくことで、メモリを少し多く使う代わりに挿入/参照を非常に高速にしている