フローネットワークにおけるXORのような動作


8

XORは正しい名前ではありませんが、ある種の排他的な動作を探しています。

現在、フローネットワークをモデル化し、min-cost-max-flowアルゴリズムを実行することで、さまざまな(割り当て)問題のセットを解決しています。フローネットワークは、多くの問題を簡単かつ理解可能な方法でそれらに削減できるため、非常に便利です。私の場合、これらはいくつかの追加の制約との一致です。これらの制約がより複雑になるにつれて、特定の動作をモデル化するための既存の構造があるかどうか疑問に思っていました。

この場合、ノードの発信フローを単一のエッジに制限します。

グラフ場合、積分容量とコスト。任意のノードをと呼びます。直接の隣人はと呼ばれます。エッジ(赤)をいくつかの構成に置き換えて、1つのエッジのみがフローを受け取ることができるようにできますか?つまり、がフロー(例:)を取得した場合、他の(赤い)エッジはフローを受信できません。C U V 、K U V A B 1B N A B 1A B nG=(V,E)c(u,v)k(u,v)AB1,..BnAB1,...ABn 5 / 10AB15/10

中間ノード/エッジを追加して、コストと容量を試すことができます。私たちの新しい建設の総容量は同じままでなければならず、さまざまな代替案のコストは何らかの形で比例し続けなければなりません。

だから私の質問は:

  1. このような構造は一般にありますか?(任意のキーワード、リンク、論文)
  2. 私の特定の問題の解決策を提案できますか?

明確にするために、これは最小コスト最大フローの問題ですか、それとも最小コストのフローの問題ですか?一定量のフローを可能な限り安価な方法で送信する必要がありますか?
Paresh、

それは最小コスト最大フローの問題です。私の質問を更新しました。
Patrick Schmidt

1
これらの制限のあるフローネットワークにマッピングした元の問題は何でしたか?単純な代替ソリューションがあるため、私は尋ねます。私は、それがmax-flowにマップしようとしている元のアルゴリズムではないことを確認したいだけです。
Paresh

1
これは、1つの発信エッジ受信フローというこの条件を適用する必要がある頂点が1つしかないことを意味しますか?または、すべての頂点にこの制限がありますか(その場合、私の答えは最も簡単な解決策を提供するはずです)?また、問題を上記の構造にどのようにモデル化したのかもよくわかりません。
Paresh 2012

1
フローをパスに制限するフローの問題は、通常「分割できないフロー」と呼ばれます。最小コストの分割できない流れは、一般にNP-Hardです。ただし、そのバージョンにはエッジに対する要求があり、バージョンには不足しています。
Nicholas Mancuso

回答:


6

一般的に、答えはノーです。頂点の出て行くエッジにXORのような制限を課せば、min-cut-max-flowを見つけることがNP-Hardであることを証明できます。その手法は、3-SATをそれに削減することです。

のがあると仮定しましょうの変数 3-SATにおけるおよび句。3-SAT問題のインスタンスをエンコードするグラフを作成します。各変数について、容量のエッジでソース接続された頂点を作成します。に接続されているさらに2つの頂点が作成され、容量エッジで値0または1を取るを表します。X 1xは2X nは M C 1C 2c m G V E x inx1,x2,...,xnmc1,c2,...,cmG(V,E)xi sはvis、V iはxはIをui,wivixi

句のそれぞれについて、それに対応する頂点を作成しますは、容量エッジを持つ句の変数またはそれらの否定に接続されます。たとえば、場合、それを容量のエッジでします。すべてのは容量1のエッジでシンクに接続されています。cioiGoi1ci=(x3x4¬x5)u3,u4,w5oi

以来と同じ値を取ることができない、我々はエッジのXOR制限入れ、、。3-SATインスタンスが満足できる場合に限り、サイズ最大フローがあることが証明できます。問題はで自明であり、削減は多項式であるため、XOR制限ネットワークフローの決定バージョンはNP-Completeであると結論付けます。 ¬ X IV 、IU I)、 V iはW Iiが= 1 2 3 n m N Pxi¬xi(vi,ui)(vi,wi)i=1,2,3,...,nmNP


3

最初の質問については、フローネットワークの任意の制限をモデル化するために使用できる一般的な手法や経験則を知りません。私が見たほとんどの例は、一般的に制限の性質についての直感に基づいており、最初はしばしば恣意的であるように見えます。

あなたの特定のケースでは、私はまだmax-flowへの適切なマッピングを考え出していません。ただし、簡単な代替ソリューションを提案できます(すでに理解しているかもしれません)。ソースからの深さ優先検索s

フローは頂点ごとに1つの出力エッジに制限されているため、ソースからターゲットへのパスが得られます。このパスは、ソースからターゲットへの他のパス間で最大フローを伝送できるという2つのプロパティを満たし、同じフローをからまで伝送できるすべてのパスの中でコストが最も低いという特性を満たします。t s tstst

  • からDFSを開始するs
  • DFSを下るときは、これまでに遭遇したすべてのエッジの現在の最小容量を追跡します。
  • また、これまでに発生した現在の総コスト(パスの長さ)も追跡します。
  • DFS中にに達した場合は、これら2つの値をグローバル値と比較し、必要に応じてグローバル値を更新します。t
  • からバックトラックし、DFSを続行します。t

基本的に、DFSを使用してからまですべてのパスを列挙し、min-costおよびmax-flowの基準を満たすパスを選択します。DFS自体は時間を要します。これは、最大フローアルゴリズムよりも効率的です。t O | E |stO(|E|)


ありがとうございます。ただし、頂点のサブセットにルールを適用したいので、ソリューションはそれほど単純ではありません。
Patrick Schmidt、

2

Pareshの答えに基づいて、すべての最大容量が1(そしてその他すべてが整数)である場合、各ノードを2つに分割して、ノード(n-)がすべてのインエッジを持ち、ノード(n +)がすべてのアウトを持つようにすることもできます。エッジ、および(n-)と(n +)は最大容量のエッジ1で接続されています。この新しい最小コストネットワークを解決すれば完了です。

最大容量がすべて1でない場合、問題はより困難になります。問題はMIP(混合整数プログラム)として定式化できます。唯一の整数制約はXOR制約です。

幸いなことに、これらは特別注文セット-SOS1タイプ(http://en.wikipedia.org/wiki/Special_ordered_setを参照)としてモデル化できます。ほとんどのMIPソルバーは具体的にSOS1制約を表し、それらをはるかに効率的に処理します(場合によっては、それを伝える必要があります。場合によってはそれを理解します。ソルバーのドキュメントを確認してください)。

MIPは最終的には最適解収束しますが、実際に大規模なモデルの場合、終了するまで待つ時間がない可能性があります。多くの場合、大規模なMIPを収束させることは、エンジニアリングよりも芸術的です。

次の提案はもっと多くの仕事です。最小コストネットワークソルバーをサブルーチンとして使用し、SOS1手法を使用してXORエッジで分岐を所有できます。たとえば、各ブランチで、outエッジの最も使用されていない1/2をオフにし、最小コストネットワークを解決し(非常に高速)、すべてのXOR制約が満たされるまで繰り返します。

独自の基準(フローボリューム、ボリュームXコスト、予約済み容量、可能なエッジの数など)によって分岐シーケンスに優先順位を付けることができます。検索を自分でガイドすることにより、ソリューションの中で最も重要な部分に焦点を合わせることができます。

問題が実行可能かどうかを常に知っているかどうかは示しません。常に実行可能な場合は、「バックトラックフリー」の分岐戦略、つまり、ヒューリスティックのようにそれを実行することで回避できる可能性があります。

問題の実行可能性が保証されていない場合、MIPは永久になくなる可能性があります。上記に基づくヒューリスティックは、比較的少ない数の違反で迅速に解決策を見つけるためにまだ価値があるかもしれません。


-2

一般に、答えは不明ではなく、不可能ではありません!

XOR制限ネットワークフローの決定バージョンはNP-Completeであると結論付けます。したがって、P = NPの場合に限り(可能です。それが可能です)。


3
リファレンスと詳細を含めて回答を完成させてください。
フォンブランド2013

参照は必要ありません。この回答は、P = NPの場合でも可能であることを指摘しています。つまり、問題はNP-Completeですが、P = NPであれば解決できます。
Albert Hendriks、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.