Suche senden
Hochladen
[アルゴリズムイントロダクション勉強会] ハッシュ
•
0 gefällt mir
•
1,725 views
R
Rei Takami
Folgen
学内でやったアルゴリズムイントロダクションを教本としたComputer Science勉強会で発表したときのスライドです
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 31
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
HashMapとは?
HashMapとは?
Trash Briefing ,Ltd
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
Guido Schmutz
研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
キャッシュコヒーレントに囚われない並列カウンタ達
キャッシュコヒーレントに囚われない並列カウンタ達
Kumazaki Hiroki
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門
Satoru Ishikawa
Tensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャ
HitoshiSHINABE1
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Yoichi Kawasaki
Empfohlen
HashMapとは?
HashMapとは?
Trash Briefing ,Ltd
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
Guido Schmutz
研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
キャッシュコヒーレントに囚われない並列カウンタ達
キャッシュコヒーレントに囚われない並列カウンタ達
Kumazaki Hiroki
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門
Satoru Ishikawa
Tensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャ
HitoshiSHINABE1
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Yoichi Kawasaki
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
Ichigaku Takigawa
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
Takeshi Yamamuro
形態素解析
形態素解析
Works Applications
型安全性入門
型安全性入門
Akinori Abe
論文の図表レイアウト例
論文の図表レイアウト例
Sunao Hara
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
NTT DATA Technology & Innovation
深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向
STAIR Lab, Chiba Institute of Technology
情報検索の基礎
情報検索の基礎
Retrieva inc.
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
WSDM2018Study
WSDM2018Study
正志 坪坂
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
Takuya Akiba
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf
Kazuaki Ishizaki
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
Kentaro Minami
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
株式会社MonotaRO Tech Team
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
NTT DATA Technology & Innovation
アプリを成長させるためのログ取りとログ解析に必要なこと
アプリを成長させるためのログ取りとログ解析に必要なこと
Takao Sumitomo
An analytical framework for formulating metrics for evaluating multi-dimensio...
An analytical framework for formulating metrics for evaluating multi-dimensio...
Rei Takami
Study on Visual Analytics Framework for Formulating Evaluation Metrics of Mul...
Study on Visual Analytics Framework for Formulating Evaluation Metrics of Mul...
Rei Takami
Weitere ähnliche Inhalte
Was ist angesagt?
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
Ichigaku Takigawa
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
Takeshi Yamamuro
形態素解析
形態素解析
Works Applications
型安全性入門
型安全性入門
Akinori Abe
論文の図表レイアウト例
論文の図表レイアウト例
Sunao Hara
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
NTT DATA Technology & Innovation
深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向
STAIR Lab, Chiba Institute of Technology
情報検索の基礎
情報検索の基礎
Retrieva inc.
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
WSDM2018Study
WSDM2018Study
正志 坪坂
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
Takuya Akiba
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf
Kazuaki Ishizaki
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
Kentaro Minami
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
株式会社MonotaRO Tech Team
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
NTT DATA Technology & Innovation
アプリを成長させるためのログ取りとログ解析に必要なこと
アプリを成長させるためのログ取りとログ解析に必要なこと
Takao Sumitomo
Was ist angesagt?
(20)
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
形態素解析
形態素解析
型安全性入門
型安全性入門
論文の図表レイアウト例
論文の図表レイアウト例
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向
情報検索の基礎
情報検索の基礎
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
WSDM2018Study
WSDM2018Study
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
アプリを成長させるためのログ取りとログ解析に必要なこと
アプリを成長させるためのログ取りとログ解析に必要なこと
Mehr von Rei Takami
An analytical framework for formulating metrics for evaluating multi-dimensio...
An analytical framework for formulating metrics for evaluating multi-dimensio...
Rei Takami
Study on Visual Analytics Framework for Formulating Evaluation Metrics of Mul...
Study on Visual Analytics Framework for Formulating Evaluation Metrics of Mul...
Rei Takami
PRML 2.3節
PRML 2.3節
Rei Takami
Proposal of visual analytics framework for evaluation metrics formation on hi...
Proposal of visual analytics framework for evaluation metrics formation on hi...
Rei Takami
[論文輪講] ImAxes: Immersive Axes as Embodied Affordances for Interactive Multiva...
[論文輪講] ImAxes: Immersive Axes as Embodied Affordances for Interactive Multiva...
Rei Takami
「住みたい街」を可視化する
「住みたい街」を可視化する
Rei Takami
Visual Analytics Interface for Time Series Data based on Trajectory Manipulation
Visual Analytics Interface for Time Series Data based on Trajectory Manipulation
Rei Takami
[アルゴリズムイントロダクション勉強会] マルチスレッドアルゴリズム
[アルゴリズムイントロダクション勉強会] マルチスレッドアルゴリズム
Rei Takami
軌跡の直接操作に基づく時系列データの視覚的分析支援インタフェースの設計と評価
軌跡の直接操作に基づく時系列データの視覚的分析支援インタフェースの設計と評価
Rei Takami
What's Information Visualization?
What's Information Visualization?
Rei Takami
Proposal of Visual Analytics Interface for Time Series Data based on Direct M...
Proposal of Visual Analytics Interface for Time Series Data based on Direct M...
Rei Takami
[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像
Rei Takami
創造性支援(Creativity Support)について
創造性支援(Creativity Support)について
Rei Takami
編入学座談会でのプレゼン
編入学座談会でのプレゼン
Rei Takami
限られた予算内でのおでかけプラン支援システム
限られた予算内でのおでかけプラン支援システム
Rei Takami
バージョン管理システムを用いたイラスト描画のための創作活動支援システムの提案
バージョン管理システムを用いたイラスト描画のための創作活動支援システムの提案
Rei Takami
Mehr von Rei Takami
(16)
An analytical framework for formulating metrics for evaluating multi-dimensio...
An analytical framework for formulating metrics for evaluating multi-dimensio...
Study on Visual Analytics Framework for Formulating Evaluation Metrics of Mul...
Study on Visual Analytics Framework for Formulating Evaluation Metrics of Mul...
PRML 2.3節
PRML 2.3節
Proposal of visual analytics framework for evaluation metrics formation on hi...
Proposal of visual analytics framework for evaluation metrics formation on hi...
[論文輪講] ImAxes: Immersive Axes as Embodied Affordances for Interactive Multiva...
[論文輪講] ImAxes: Immersive Axes as Embodied Affordances for Interactive Multiva...
「住みたい街」を可視化する
「住みたい街」を可視化する
Visual Analytics Interface for Time Series Data based on Trajectory Manipulation
Visual Analytics Interface for Time Series Data based on Trajectory Manipulation
[アルゴリズムイントロダクション勉強会] マルチスレッドアルゴリズム
[アルゴリズムイントロダクション勉強会] マルチスレッドアルゴリズム
軌跡の直接操作に基づく時系列データの視覚的分析支援インタフェースの設計と評価
軌跡の直接操作に基づく時系列データの視覚的分析支援インタフェースの設計と評価
What's Information Visualization?
What's Information Visualization?
Proposal of Visual Analytics Interface for Time Series Data based on Direct M...
Proposal of Visual Analytics Interface for Time Series Data based on Direct M...
[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像
創造性支援(Creativity Support)について
創造性支援(Creativity Support)について
編入学座談会でのプレゼン
編入学座談会でのプレゼン
限られた予算内でのおでかけプラン支援システム
限られた予算内でのおでかけプラン支援システム
バージョン管理システムを用いたイラスト描画のための創作活動支援システムの提案
バージョン管理システムを用いたイラスト描画のための創作活動支援システムの提案
Kürzlich hochgeladen
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Kürzlich hochgeladen
(9)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
[アルゴリズムイントロダクション勉強会] ハッシュ
1.
1 Introduction to Algorithms ハッシュ Hash 16273001
高見玲
2.
2 WHAT'S HASH?
3.
3 Key に対応するValue を得たい ex)
コンパイラの記号表 辞書を表すデータ構造
4.
4 直接アドレス表配列の般化 キーと格納先は1:1対応である必要
5.
5 直接アドレス表の定義 普遍集合: から選択されるキー を持つ動的集合を表現 すべての要素は異なるキーを持つと仮定 直接アドレス表: 配列の各位置: 枠(Slot) 集合がキー
を含まなければ U = {0, 1, . . . m − 1} T = {0, 1, . . . m − 1} k T[k] = nil
6.
6 直接アドレス表の定義 計算時間(平均): 要素の探索時間: -> O(1) Θ(n) O(1)
7.
7 直接アドレス表に必要となる操作 INSERT(挿入) SEARCH(検索) DELETE(削除)
8.
8 直接アドレス表の問題点 普遍集合 が大きくなる-> 計算時間遅い キー集合が
である必要有 キーと格納先は1:1対応である必要 U k << U
9.
9 ハッシュ直接アドレス: キー に格納 ハッシュ:
キー に格納 で枠の位置を決める操作: ハッシュする(Hashing) k → 枠k k → ハッシュ関数h(k) h(k) は普遍集合 から への写像h(k) U T = {0, 1, . . . m − 1} h : U → {0, 1, . . . , m − 1}
10.
10 ハッシュ表の利点 必要なメモリ: に縮小Θ(|K|) ハッシュ表の問題点 写像先の衝突の発生 解決法: チェイン法,
オープンアドレス法
11.
11 チェイン法 Chaining 同枠にハッシュされた全ての要素を連結リストに格納
12.
12 挿入の探索時間の評価 INSERT: をリスト の先頭に代入
-> SEARCH: の中からキー をもつ要素を探査 DELETE: リスト から を削除-> x T[h(x. key)] O(1) T[h(k)] k T[h(x. key)] x O(1)
13.
13 チェイン法の探査時間 ハッシュ表の負荷率 : 1つのチェインにある要素数の平均 (最悪
) 単純一様ハッシュ仮定(Simple Uniform Hashing) n要素, 枠数mの α = n/m α Θ(n) 失敗時: , 成功時: ハッシュ表の枠数と表の要素数が比例: Θ(1 + α) Θ(1 + α) n = O(m) α = n/m = O(m)/m = (1)
14.
14 優れたハッシュ関数 単純一様ハッシュ仮定を満たす 基本満たさないので(乱数以外), ヒューリスティックに 求める データ内に存在するパターンと独立であるべき(偏ら ない) 基本数値-> 文字列であれば数値に直して求める
15.
15 除算法 h(k) = k mod m を決定する,
2のべき乗から離れているほどよい 問題点: ハッシュ先のバリエーションが少ない-> 衝突 が発生 m
16.
16 乗算法 1. キー を乗じ,
整数部のみを抽出 2. 任意の数 を乗じ, 少数部を切り捨て kに定数A(0 < A < 1) m h(k) = [m(kA mod 1)] の選択に結果がさほど依存しない, 通常は 理想の m m = 2 p A ≈ ( − 1)/2 = 0.6180339887...5‾√
17.
17 万能ハッシュ法 悪意のある代入時, 最悪探索時間はO(n) ランダムにハッシュ関数を選べば起こりえない へと写像する の集合 からランダムに抽出した
についてキー の衝突が のときに万能 Uを{0, 1, . . . m − 1} h(k) ℌ ℌ h k, l < 1/m
18.
18 万能ハッシュ法の設計 全てのキー が に入る十分大きな素数
を 選ぶ を 表す は素数なので, これを法として整数論的に解ける(普遍 集合のサイズは枠数よりも十分に大きい) k 0 < k < p − 1 p で集合{0, 1, . . . , p − 1}, で集合{1, 2, . . . , p − 1}ℤp ℤ ∗ p p
19.
19 万能ハッシュ法の設計 任意の に対してハッシュ関数 を に関する法をとることで定義 このようなハッシュ関数からなる族をランダムに選べ ばよい a
∈ , b ∈ℤp ℤ ∗ p ha,b p, m = ((ak + b) mod p) mod mha,b = { : a ∈ かつ b ∈ }ℌpm ha,b ℤp ℤp
20.
20 オープンアドレス法 Open addressing 全ての要素をハッシュ表に格納する(チェイン法のよ うにリストを有しない) 値がぶつかった場合, 次の要素を探査 探索は要素を発見or失敗まで継続する(キーを置ける空 の枠があるまで) 利点:
ポインタを使用しないため容量減, 衝突減, 高速 化
21.
21 オープンアドレス法 ハッシュ関数を拡張(探索番号の導入) の探査列 は表を完全 に埋めるために の置換である必要 h
: U × {0, 1, . . . , m − 1} → {0, 1, . . . , m − 1} k ⟨h(k, 0), h(k, 1), . . . , k(k, m − 1)⟩ ⟨0, 1, . . . , m − 1⟩
22.
22 オープンアドレス法 挿入と検索は以下のようなかんじ 削除: nilを代入すると後で辿れなくなるので, Deleteを 明示的に入れる
23.
23 オープンアドレス法の手法 一様ハッシュを仮定, キーの探査列は ある置換の うち1つと等確率で一致
( ) 1つの数だけでなく1つの探査列を出力するように拡張 した単純一様ハッシュ 一様ハッシュの実現は困難-> ダブルハッシュ法などで 近似 m!個 Θ(m!)
24.
24 線形探査法 以下のハッシュ関数を用いる 補助ハッシュ関数 を用いて線形に探査していく 問題点: 主クラスタ化(primary
clustering) h(k, i) = ( (k) + i) mod nh ′ (k)h ′
25.
25 2次関数探査法 以下のハッシュ関数を用いる は正の補助定数, 探査数(探査する位置)は で表さ れる2次式より決定 探査列のバリエーション増加
, 主クラスタ化を防 止 問題点: 同じ初期探査位置を持つ2つのキーは同じ探査 列を持つ-> 副クラスタ化(secondary clustering) h(k, i) = ( (k) + i + ) mod nh ′ c1 c2 i 2 ,c1 c2 i Θ(m)
26.
26 ダブルハッシュ法 以下のハッシュ関数を用いる ランダム置換と多くの性質を共有->最良 初期位置と次探査位置の2つが変化しうる-> キー に二 重依存,
探査列のバリエーション増加 ハッシュ表全体を探索するためには, 値 はハッシ ュ表のサイズ と互いに素である必要 h(k, i) = ( (k) + i (k)) mod nh1 h2 k Θ( )m 2 (k)h2 m
27.
27 オープンアドレス法の解析 負荷率 一様ハッシュを仮定したとき, 探査列と置換数は一致 成功時の探査数期待値: 以下 失敗時の探査数期待値: 挿入時の探査数期待値: α
= n/m < 1 ln 1 α 1 1−α 1/(1 − α) 1/(1 − α)
28.
28 完全ハッシュ法 Perfect Hashing ハッシュ: キー集合が静的な場合大きさは変わらず,
最 悪時にも良い性能(ex. 予約語, CD) 探索に必要なメモリアクセス回数が最悪でもO(1)
29.
29 完全ハッシュ法の実現 2段階の万能ハッシュ表を用いる(チェイン法の連結リ ストの代わりに2段目に副ハッシュを使う) ハッシュ関数をうまく選ぶとO(1)
30.
参考文献[1] T. H.
Cormen, C. Stein, R. L. Rivest, and C. E. Leiserson, アルゴリズムイントロダクション 第3版, Vol. 1, 2012. [2] D. E. Knuth, Sorting and Searching, volume 3 of The Art of Computer Programming, Addusib-Wesley, 1973, 2nd Edition, 1997
31.
30
Jetzt herunterladen