制限された高さのスパニングツリーをランダムに生成するにはどうすればよいですか?


9

私が取り組んでいるプロジェクトでは、高さが制限されたランダムスパニングツリーを生成する必要があります。

基本的に私は次のことを行います。1)スパニングツリーを生成します。2)実行可能かどうかを確認します。

1)最小スパニングツリー(プリムまたはクラスカル)から開始して、存在しないエッジを追加し、これによりサイクルを作成します。このサイクルを検出し、新しいスパニングツリーを与えるこのサイクルのエッジの1つを削除します。新しいエッジを追加することでこのスパニングツリー...

2)特別な頂点ます。すべての頂点について、からへのパスの長さは未満である必要があります。ここで、は特定のパラメーターです。 V V V C E N T E R δ δvcetervvVceterδδ

これを行うより良い(賢い)方法はありますか?

PS私は他の制約を指定するのを忘れていました(私の間違い):頂点の次数も制限されるべきです。


これが正しいかどうかはわかりません。最初のステップでは、エッジをランダムに削除しますか、それとも木の高さが(おそらく)低くなるようにしますか?
サシャ

ランダムにエッジを追加および削除します。
Arman、

代わりにランダムな最短パススパニングツリーをサンプリングできますか?物事を簡素化
Yaroslav Bulatov

エッジに費用はかかりますか?高さと最小コストの全域木を探していますか?@pbootheが書いたように、BFSを使用できます。唯一の問題は、BFSが使用するメモリが多すぎることです。コストが気になる場合は、ウィキペディアのユークリッド最小全域木(en.wikipedia.org/wiki/Euclidean_minimum_spanning_tree)のアルゴリズムを試すことができます。これは、実行中の時間があるO N ログN O N スペースを。δOログO
Marcos Villagra 2010

したがって、問題には3つの制限された量があります。ツリーの高さ、各頂点の次数、およびv_centerからの距離です。有限次数制約自体が問題をNP困難にしますが、正確なアルゴリズムではなく、迅速に解を生成する可能性が高い方法を探していると思います。
2010

回答:


7

私は数年前に有限深度の広葉樹に取り組んでいましたが、それらは本当に興味深いです。同僚の何人かは素晴らしい仕事をしたメッセージパッシングアルゴリズムを思いつきましたが、利用可能なコードを見つけることができません。物理スタイルでここに書きました:http : //iopscience.iop.org/1742-5468/2009/12/P12010/。彼らはそれが学位の境界でも機能することを私に言った、しかしそれは紙にそれを入れなかった。

あなたが提案するアプローチは、私がマルコフ連鎖モンテカルロと呼びますが、多くの場合、メッセージパッシングアプローチの競合相手です。特定のグラフの一連の有界度、有界深度のスパニングツリーからランダムにほぼ均一にサンプリングすることに関心がある場合は、「ソフト」境界を使用するようにアプローチを変更することをお勧めします。つまり、ツリーが深さの境界に違反するエッジスワップを拒否する代わりに、それを受け入れますが、境界に違反しないスワップよりも確率は低くなります。この確率がどれだけ低くなるかを制御するパラメーターがある場合、ほぼ一様にランダムな実現可能なソリューションに到達するまで、制約違反の構成の可能性をますます低くすることができます。

大きな問題は、チェーンを実行するのにどれくらいの時間が必要かということです。次数が最大2のスパニングツリーはハミルトニアンパスであるため、一般的な範囲はすべてグラフのサイズが指数関数的であると期待できます。しかし、おそらくあなたが興味を持っているグラフはある意味で特別です。



3

SShhh

しかし、あなたが説明したアルゴリズムがランダムなスパニングツリーを生成するかどうかはわかりません。代わりに標準アルゴリズムを検討することをお勧めします。アルゴリズムには、WilsonのアルゴリズムとAldous-Broderのアルゴリズムの2つがあります。あなたは見ることができ、ここで。新しい(近似)アルゴリズムがありますが、かなり複雑です。

また、制限された高さでこのスパニングツリーを直接生成する方法があるかもしれません。しかし、私はそのようなアルゴリズムについて聞いたことがありません。


1

幅優先検索を使用してください!グラフのすべての頂点からBFSを実行し、高さが最小の結果のツリーを選択します。BFSは常に、ルートからホップが最も少ない他のすべての頂点までのパスを見つけます。


あなたは間違いなく正しいです。BFSの使用を開始しましたが、頂点の次数の制約のために機能しませんでした。この制約について言及するのを忘れていました(私の間違い)。生成されたツリーの頂点の次数も制限されているはずです。あなたの答えは現在の質問で正しいですが、私は私の質問を編集する必要があると思います。
アルマン

次に、あなたの問題は、ほぼ確実に、程度制約付きスパニングツリーからの削減によるNPCです-en.wikipedia.org/wiki/Degree-constrained_spanning_tree
Peter Boothe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.