Advanced Data Structure 第3回

Slides:



Advertisements
Similar presentations
シミュレーション論Ⅰ 第 7 回 待ち行列のシミュレーション(2). 第 6 回のレポート(解答例) 乱数表より乱数を記入し、到着間隔・サービス時間にした がってグラフを作成する 例) 最大待ち人数:2人 最大待ち時間:5分 平均待ち時間:3分.
Advertisements

Lecture02-Binary Search Trees 通信情報システム専攻 岩間伊藤研究室 M1 前田圭介.
基本情報技術概論 I 演習(第5回) 埼玉大学 理工学研究科 堀山 貴史
プログラムのパタン演習 解説.
点対応の外れ値除去の最適化によるカメラの動的校正手法の精度向上
Data Clustering: A Review
2 分探索木 Binary Search Tree 実行可能な操作 計算量 木の高さは,最悪 O(n) n = |A| : 要素の個数
アルゴリズムとデータ構造 第8回 ソート(3).
第10回 整列 ~ バブルソート,挿入ソート,選択ソート~
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
On the Enumeration of Colored Trees
Problem D: Double Sorting 原案: oxy, 解答作成: oxy, nya.
Problem G : Entangled Tree
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造 補足資料13-4 「2分探索木の追加・削除(ダイジェスト)」
第10回 ソート(1):単純なソートアルゴリズム
C言語 配列 2016年 吉田研究室.
データ構造とアルゴリズム 第7回 木 ~ データ構造(3)~.
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造 補足資料7-3 「単純選択ソートselsort.c」
岩手県立大学 ソフトウェア情報学部 澤本研究室 佐々木拓也
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
モンテカルロ碁 電気通信大学 村松研究室 下川和也.
データ構造と アルゴリズム 第十一回 理工学部 情報システム工学科 新田直也.
計算量理論輪講 岩間研究室 照山順一.
アルゴリズム入門.
アルゴリズムとデータ構造 第7回探索のためのデータ構造(1) 2015/11/18 アルゴリズムとデータ構造 2015.
データ構造とアルゴリズム論 第7章 探索のアルゴリズム
二分探索木によるサーチ.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
第10回:Microsoft Excel (2/2)
MPIを用いた並列処理 ~GAによるTSPの解法~
“Purely Functional Data Structures” セミナー
決定木とランダムフォレスト 和田 俊和.
アルゴリズムとデータ構造1 2005年7月26日
情報工学概論 (アルゴリズムとデータ構造)
二分木のメソッド(続き).
7.4 Two General Settings D3 杉原堅也.
第9回 優先度つき待ち行列,ヒープ,二分探索木
データ構造と アルゴリズム 第七回 知能情報学部 新田直也.
決定木 Decision Tree DT 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
Cプログラミング演習 第10回 二分探索木.
2009/10/23 整列アルゴリズム (1) 第4講: 平成21年10月23日 (金) 4限 E252教室 コンピュータアルゴリズム.
プログラミング 4 木構造とヒープ.
B+Treeのバケットサイズ.
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分の復習
情報数理Ⅱ 第11章 データ構造 平成29年1月18日.
シミュレーション論Ⅰ 第7回 シミュレーションの構築と実施.
自己組織化マップ Self-Organizing Map SOM
AVL木.
第9回 優先度つき待ち行列,ヒープ,二分探索木
ハフマン符号長の効率的な求め方.
アルゴリズムとデータ構造 2012年7月2日
パターン認識 ークラスタリングとEMアルゴリズムー 担当:和田 俊和 部屋 A513
アルゴリズムとデータ構造 2011年6月28日
アルゴリズムとデータ構造 2011年6月16日
算法数理工学 第4回 定兼 邦彦.
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造 2013年7月2日
ヒープソート.
アルゴリズムとデータ構造 2013年6月20日
参考:大きい要素の処理.
7.木構造 7-1.データ構造としての木 7-2.2分探索木 7-3.高度な木.
Presentation transcript:

Advanced Data Structure 第3回 黒橋研究室 M1 真鍋 宏史

第三回の内容 Wilber の下限 Tango tree アクセス列に対する、二分探索木のコストの下限 (アクセス列の関数) 総コストが、Wilber の下限の O(lg lg n)倍 現時点で最善

Wilberの第二下限 二分探索木において、 アクセス列に対する総コストの下限 すべてのアクセスに対するWilber 数の合計 ある要素がアクセスされた時、前のその要素への アクセスまでさかのぼって調べる その要素に最も近いものの場所を左右別々に記録 最も近いものの位置が更新されたとき、前回と 左右が逆なら Wilber 数を1増やす

Wilber数(実例) アクセス列: a, i, h, j, g, f, c, l, k, e, n, d, b, p, m, o, i 1個前の o から、最初から 2番目の i まで(逆順) a(i):左側の最大 b(i):右側の最小 a(i), b(i) の初期値はそれぞれ-∞, +∞ a i h j g f c l k e n d b p m o i Wilber数: 3 4 5 6 2 1 a(i) b(i) a b c d e f g h i j k l m n o p

Key independent optimality Working-set property を持っていれば、 アクセス列のキーをランダムに入れ替えた時 アクセス時間の期待値は 入れ替えの例: 2, 3, 6, 3, 6, 6, 2, 2 ,4, 1, 5, 1, 2, 5, 6 ↓ 4, 6, 1, 6, 1, 1, 4, 4, 3, 2, 5, 2, 4, 5, 1 Working-set bound は順番には関係ないので O(・)は自明

Ω(・)の証明(概略) 今のアクセスを xj として wilber2(xj)は xj の working-set のみに依存 W={前の xj から今までにアクセスされた要素} xj は一定の確率で「だいたい」真ん中に来る E[ai が増加する回数] = Θ(lg|W|) E[bi が減少する回数] = Θ(lg|W|) 主張:aiの増加とbiの減少は一定割合が 互い違いになる⇒E[wilber2(xj)]= Θ(lg|W|)

Wilberの第一下限 元々の二分木とは別に、lower bound tree を 考える Lower bound tree とは? 元々のキーを j, j+1, …, k とすると、 内部ノードが j+1/2, j+3/2, …, k-1/2で、 葉が j, j+1, …, k の二分木 ここでは、完全二分木を考える

Wilber の第一下限 3 T(元の木) 1 6 2 4 7 5 8 4.5 P(LBT) 2.5 6.5 1.5 3.5 5.5 7.5 要求列: 3, 7, 2, 4, 3, 5, 1, 2

Transition point 3 T(元の木) 1 6 2 4 7 5 8 4.5 P(LBT) 2.5 6.5 1.5 3.5 5.5 7.5 1 2 3 4 5 6 7 8

Transition point 3 T(元の木) 1 6 2 4 7 5 8 4.5 P(LBT) 2.5 6.5 1.5 3.5 5.5 7.5 1 2 3 4 5 6 7 8 * そのノードの右部分木と左部分木にアクセスする間に、必ず transition point に触れる

Transition Point Well-defined Z に触るまで変わらない

Wilber の第一下限 3 T(元の木) 1 6 2 4 7 5 8 4.5 P(LBT) 2.5 6.5 1.5 3.5 5.5 7.5 要求列: 3, 7, 2, 4, 3, 5, 1, 2

Tango tree O(lg lg n)-competitive Lower bound tree の preferred path を使って 補助木を構築 それぞれの補助木は平衡二分木

補助木 4.5 P 2.5 6.5 1.5 3.5 5.5 7.5 2 3 4 5 6 7 8 1

補助木 4.5, 2.5, 3.5, 3 6.5, 5.5, 5 1.5, 2 4 1 7.5, 8 6 7

補助木-「6」を検索(1) 3 2.5 4.5 3.5 4 6.5, 5.5, 5 1.5, 2

補助木-「6」を検索(2) 5.5 5 6.5 7.5, 8 6

競合比 一個の補助木の検索時間=O(lg lg n) 全体の検索時間=O(検索する補助木の数×lg lg n) 補助木の間を移動する回数= 変わる preferred path の本数 検索する補助木の数= 変わる preferred path の本数+1 変わる preferred path の本数= L と R のラベルの変化の回数 OPT=O(LとRのラベルの変化の回数) (Wilber の第一下限)

補助木の更新(「2」を検索) P 4.5 2.5 6.5 1.5 3.5 5.5 7.5 1 2 3 4 5 6 7 8