スプレイツリーの潜在的な機能:サイズのログを合計する理由


16

私はデータ構造に関するコースを教えており、来週初めにスプレーツリーを取り上げます。スプレーツリーに関する論文を何度も読んでおり、データ構造の背後にある分析と直感に精通しています。ただし、SleatorとTarjanが分析で使用する可能性のある機能について、確かな直観を見つけることはできません。

分析は、ツリー内の各要素に任意の重み割り当て、ノードのサイズs x xをルートとするサブツリー内のノードの重みの合計に設定することにより機能します。次に、この値のログを取得してノードのランクr x を取得します。したがって、r x = log s x です。最後に、ツリーの潜在的な関数は、すべてのノードのランクの合計として定義されます。wis(x)xr(x)r(x)=logs(x)

この潜在的な機能が正しく機能し、分析を追跡できることは理解していますが、なぜこの潜在的な機能を選択するのかわかりません。サイズを合計すると、ツリーの重み付きパス長が得られるため、各ノードにサイズを割り当てるという考えは理にかなっています。しかし、なぜ彼らが重みのログを取得し、代わりにそれらを合計することにしたのかを理解することはできません-これに対応するツリーの自然なプロパティは表示されません。

スプレーツリーの潜在的な機能は、ツリーの自然な特性に対応していますか?「うまくいく」以外に、彼らがこの可能性を選択する特別な理由はありますか?(この一連のコースノートでは、「分析は黒魔術です。[N] oがどのように発見されたか」ということに言及しているため特に興味があります。)

ありがとう!


この「黒魔術」の説明も以前に聞いたことがあります。SleatorとTarjanにメールを送信しましたか?
jbapple 14

@jbapple「まだコミュニティ全体が助けてくれることを望んでいたので、まだメールを送っていません。また、30年前に行った仕事について誰かにpingを実行しても、必ずしも反応を引き出すとは限らないと考えました。:-)
templatetypedef 14

loglogloglogs(m+n)2

私は常にxのランクを「xの子孫を含む理想的なバイナリ検索ツリーの深さ」としてブラックボックス化しましたが、それは便利な直観というよりはニーモニックです。
ジェフ14

回答:


13

ログの合計の可能性を考え出す方法

AxPxas(a)s(a)as(a)s(a)aP

A

現在、スプレイツリーなど、アフターツリーに「多くの」リーフを作成するローカルアルゴリズムには、次の優れたプロパティがあります。

f:PP

  1. aPs(f(a))s(a)/2
  2. aPs(f(a))n
  3. aPs(f(a))s(a)

これは、検索パスの変更を展開することで確認できます。マッピングは実際には非常に自然です。このホワイトペーパー「スプレイの全体的な幾何学的ビュー」では、上記の観察の詳細を正確に示しています。

この事実を知った後、ログの合計の可能性を選択することは非常に自然です。タイプ1の要素の潜在的な変更を使用して、再配置全体の費用を支払うことができるからです。さらに、他のタイプの要素については、潜在的な変化に対してせいぜい対数で支払う必要があります。したがって、対数償却コストを導出できます。

これが「ブラックマジック」であると人々が考える理由は、以前の分析では検索パスの全体的な変化を「展開」せず、1つのステップで実際に何が起こるかを見るためだと思います。代わりに、各「ローカル変換」の可能性の変化を示し、これらの潜在的な変化を魔法のように望遠鏡で見ることができることを示しています。

PSこの論文は、ログの合計の可能性の制限を示しています。つまり、ローカルアルゴリズムのみに対するログの合計の可能性を介して、アクセス補題の充足可能性を証明できます。

ログの合計の可能性の解釈

GeorgakopoulosとMcClurkinの論文でBSTの可能性を定義する別の方法があります。これは、Sleator Tarjanの論文のログの合計の可能性と本質的に同じです。しかし、これは私に良い直観を与えます。

w(u)uW(u)uu

ここで、ノードのランクを定義する代わりに、エッジのランクを定義します。これをプログレスファクターと呼びます。

pf(e)=log(W(u)/W(v)).

S

Φ(S)=eSpf(e).

(u,v)uvW(u)/W(v)

これはSleator Tarjanの可能性とほぼ同等であり、パスに追加されることに注意してください。

編集:この代替定義とその背後にある直感は、Kurt Mehlhornによってずっと前に説明されていたことがわかります。彼の著書「Data Structures and Algorithms」Volume I、セクションIIIを参照してください。6.1.2スプレイツリー、263-274ページ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.