サボテングラフのエッジのバランスのとれた重み付け


7

与えられたサボテン、私たちは、このような方法という点で、その辺を重み付けしたいです

  1. 各頂点について、頂点に入射するエッジの重みの合計は1以下です。
  2. すべてのエッジの重みの合計が最大化されます。

明らかにその答えは 2 ために 頂点(Σd=2D どこ d 1つの頂点の合計であり、 Dすべてのエッジの合計です)。この境界は、各エッジを1/2に重み付けすることにより、サイクルグラフで達成できます。

木に貪欲なアルゴリズムを見つけました。葉に付随するエッジに1を割り当て、繰り返しパスでグラフからそれらとその近傍を削除します。これにより、サボテンが相互接続された一連のサイクルまで剪定されます。この時点で、残りのサイクルは相互接続されておらず、各エッジに1/2の重みが付けられていると想定しました。これは9/10のテストケースを取得しましたが、もちろん不完全です。

では、サボテンの一般的な問題をどのように解決すればよいでしょうか?私は完全な解決策よりもヒントを好みますが、どちらでもかまいません。

この質問には、InterviewStreet CompanySprintから問題が含まれます。私はすでに競争しましたが、問題についてのいくつかの考えが欲しいです(解決策はリリースされていません、そして私はこの問題について壁に頭をぶつけています)


これは、頂点の容量制約が1の場合、最大フローで解決できるようです。あなた(私)は、ソースを追加し、正しくシンクする方法を理解する必要があります。
Nicholas Mancuso

それについて考えましたが、機能するネットワークが見つかりませんでした。sxuが指摘しているように、良い解決策はほぼ確実にサボテングラフの構造を含みます。それを使用してネットワークを構築する方法を見るのに苦労しています。そして、私が木の解決策を見つけたという事実(少なくとも私はそう思う。私はここに含めなかった貪欲の証拠をスケッチしただけだった)は私をLPルートから遠ざけた。
dysonsfrog 2012

おっとっと。脳のおなら。私は今あなたの意味を理解しています。それは有望に聞こえます。
dysonsfrog 2012

私の次の秘訣は、 1/d どこ vアーティキュレーション頂点です(少なくとも2つの個別のサイクルに参加します)。削除するvとその端、その後すすぎ、繰り返します。これにより、最終的には完全に切り離されたコンポーネントが残ります。
Nicholas Mancuso

うん。良いことは、奇数の長さのサイクルで、重みを交互にできることです1/d11/d、...、同じように回避する 2バウンド。それは直感的に良い感じですが、それでも完全な解決策ではありません。
dysonsfrog、2012

回答:


5

それで、この質問は私を悩ませてきました:より一般的なクラスのための線形時間アルゴリズムがすでにあるならば、なぜサボテンですか?

一次問題は、部分一致問題として知られており、当然のことながら、これも研究されてきました。Balinski(その結果はSchrijverの著書Combinatorial Optimizationによって私に知らされた)は、分数マッチングポリトープの極値ポイントを、整数マッチングと奇数サイクルのコレクションの半分で構成されるものとして特徴付けました。入力制限が比較的低いことを考えると、問題の解決策の意図された解決策は、エドモンズの花のアルゴリズムを今のところ発見できるように変更することだったのではないかと思います。サボテンのサイクルの構造により、このアルゴリズムはコンテストに適したものになるほど単純になります。


sxuが指摘しているように、この問題は線形計画に適しています。目的値だけが必要な場合、デュアルLPは同じ目的値を持ち、部分的な頂点カバーの問題です。頂点カバーの良い点は、半整数の最適値があることです。線形時間では、深さ優先検索を使用して、幅O(1)のサボテンのツリー分解を計算し、{0、1 / 2、1}の変数値を試す動的プログラムでデュアルLPを解くことができます。

プライマルのソリューションが実際に必要な場合は、補完的な緩みが役立つかもしれませんが、サボテンへの制限がより基本的なソリューションを可能にすることになっていると思わずにはいられません。


1

常に線形計画法を使用できます。各エッジの変数と各頂点の制約を作成するだけです。ただし、これはサボテングラフがあるという事実を使用しないため、より良い解決策があるはずです。また、LPアルゴリズムをいくつかの例で実行して、一般的なグラフではなく、カクタスグラフで興味深いことが起こっているかどうかを確認することをお勧めします。

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