セパレータークエリからツリーを再構築する


18

仮定その構造、我々が知らない一定程度の木です。問題は、「ノードはノードからノードへのパス上にありますか?」という形式のクエリを実行して、ツリーを出力ことです。オラクルは一定の時間で各クエリに回答できると仮定します。ツリーのノード数であるの値を知っています。目的は、に関してツリーを出力するのにかかる時間を最小限にすることです。T x a b n nTTxabnn

そこに存在して上記の問題のためのアルゴリズムを?o(n2)

ノードの次数は最大3 と仮定します。T


私が知っていること

有界直径の場合は簡単です。ツリーの直径が場合、分割統治アルゴリズムを取得できます。D

バイナリツリーには、ツリーを1 / 3n以上のサイズのコンポーネントに分割する適切なセパレータがあります。

  1. 頂点xをピックします。それが良いセパレーターラベルである場合、それは再帰的です。
  2. xの3つの近傍すべてを見つけます。
  3. ノードの数が最も多い隣の方向に移動します。ネイバーでステップ2を繰り返します。

セパレータを見つけるには最大でステップかかるため、アルゴリズムを取得します。O n D log n DO(nDlogn)

アルゴリズムをランダム化しO(nlog2n)。(以下のコメントから移動)

2つの頂点xとyをランダムに選択します。1/9の確率で、セパレーターの反対側にあります。からまでのパスの中間ノードを選択します。バイナリ検索を行わない場合、区切り文字かどうかを確認します。yxy

それは取ります、セパレータを見つけるために時間を予想しました。したがって、ランダム化アルゴリズムを取得します。O nO(nlogn)O(nlog2n)


バックグラウンド。この問題について、確率的グラフィカルモデルで働く友人から学びました。上記の問題は、3つのランダム変数X、Y、Zが与えられ、Zの値が与えられるとXとYの間の相互情報の値を伝えることができるオラクルを使用して、ジャンクションツリーの構造を学習することにほぼ対応します。値が近い場合ゼロまで、ZがXからYへのパス上にあると仮定できます。


7
問題について既に知っていることを明らかにしてください。そうすれば、車輪の再発明に時間を浪費することはありません。
ジェフ

@Jɛff E質問を編集しました。
ジャガディッシュ

回答:


5

いいえ 。次の単純な敵対戦略は、ノードツリーを再構築するアルゴリズムには、少なくとも "betweenness"クエリが必要であることを意味します。 n 1n(n12)=n(n1)/2

ノード任意のラベルをます。攻撃者は、ツリーが中心に頂点を持つ星であるかのようにすべてのクエリに答えます。をルート、他のノードをその子と考えてください。0 00,1,2,,n100

Between?(a,x,b)
    if x=0 return TRUE else return FALSE

ここで、未満のクエリを実行した後にアルゴリズムが停止するとします。次に、アルゴリズムがトリプル順列を照会しないように、ゼロと等しくない2つの頂点とが存在する必要があります。ツリーが中心星ではないとアルゴリズムが主張する場合、敵はその入力を明らかにし、アルゴリズムが間違っていることを証明します。その後、攻撃者はが実際にの唯一の子であることを明らかにし、アルゴリズムが再び間違っていることを証明します。n(n1)/2yz(0,y,z)0xy

更新:おっと、度の制約に気づきました。 幸いなことに、これは大きなハードルではありません。ノードをお気に入りのバイナリツリーに置き換え、他のノードを未知の順序の葉として、このサブツリーを再構築アルゴリズムに公開します。結果のノードのバイナリツリーを再構築するには、少なくともクエリが必要です。同様に、ノードのバイナリツリーを再構築するには、少なくともクエリが必要です。(もっと微妙な構造が定数を改善すると確信しています。)0n1(2n3)n(n1)/2m(m+3)(m+2)/8 Jagadishが指摘しているように、この一般化は機能しません。ツリーの内部ノードに関するクエリは、葉に順序付けを課し、必要なクエリの数を減らしました。


私の質問は、一定度の木についてです。この場合、この引数は機能しませんよね?
ジャガディッシュ

2
@Jagadish:(1)この下限の証明は、ランダム化されたアルゴリズムでは機能しないと思います。敵は依然として失敗した例を構築することができますが、それはランダム化アルゴリズムが高い確率で正しく機能するという仮説と矛盾しません。(2)ところで、あなたは答えを知って質問をしたようです。あなたは何のためにそれをしましたか?
伊藤剛

2
そうですか。説明をありがとう、また質問を編集してくれてありがとう!
伊藤剛

4
ランダム化アルゴリズムがある場合、アルゴリズムがあります。決定論は過大評価されています。
ジェフ

1
この問題は、ナットとボルトのソート/マッチングを思い出させます。時間で高い確率で実行されるランダム化アルゴリズムは簡単です-それは単にランダム化されたクイックソートです。決定論的な時間アルゴリズムがありますが、それは非常に重要です。O(nlogn)O(nlogn)
ジェフ

5

Anindya Senと私はALT '13でこの問題に対するアルゴリズムを提供する論文を持っています。より良いアルゴリズムが可能かどうかはわかりません。O~(nn)

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