0-1線形計画法:最適定式化の計算


14

検討次元空間、およびlet形の線形制約である、ここで、と。IR X I{ 0 1 } のk Rn C 1 X 1 + 2 X 2 + 3 X 3 + + N - 1 X N - 1 + N X NK{0,1}nca1バツ1+a2バツ2+a3バツ3+  +an1バツn1+anバツnkaRバツ{01}kR

明らかに、はを2つのサブセットおよびに分割する効果があります。はを満たす点のみが含まれ、は改ざんする点のみが含まれ。{ 0 1 } N S C S ¬ C S C C S ¬ C Cc{01}nScS¬cSccS¬cc

と仮定します 。次に、をサブセットにして、次の3つのステートメントがすべてようにします。O S C|Sc|nOSc

  1. Oは正確にポイントが含まれます。n
  2. このような点は線形独立です。n
  3. このような点は、表される超平面からの最小距離にある点です。より正確には、超平面からの点の距離とする。次に、が1および2を満たすような。言い換えると、は、条件1と2の両方を満たすすべてのサブセットのうち、超平面からの点の距離の合計を最小化するサブセットです。のC D X C のx { 0 1 } nは C B S C B Σ X Bの D X C Σ X O D X C O S C Cncdバツcバツ{01}ncBScBバツBdバツcバツOdバツcOScc

ご質問

  1. が与えられた場合、効率的に計算できますか? OcO
  2. それを計算するための最も有名なアルゴリズムはどれですか?

 

n=3

n = 3の例

S¬c={101}、。O={001111100}

 

2012年12月5日更新

動機

動機は使用することである、最適な制約決定することが可能であるべきである、それが超平面によって定義されるように、の点。 c n OOcnO

最適な制約は、最適なポリトープつながるものです。P cP

最適なポリトープは、頂点がすべてであり、初期ポリトープ整数頂点のみであるものです(整数頂点は、座標がすべて整数である頂点です)。 PPP

最適な処方

このプロセスは、0-1インスタンス各制約に対して繰り返され、そのたびにを対応する最適な制約置き換え。最後に、これは最適なポリトープにつながります。次に、頂点はすべて初期ポリトープの整数頂点のみであるため、任意のアルゴリズムを使用して最適な整数解を計算できます。効率的に計算できるということは、を意味することを知っていますが、次の追加の疑問がまだ残っています。L P I c c P I P P I L P P P = N PcLPccPPPLPPP=NP

追加の質問

これらの線に沿って以前の仕事はありますか?ポリトープ、その対応する最適なポリトープ与えられた場合、だれかがコンピューティングのタスクをすでに調査しましたか?それを行うための最も有名なアルゴリズムはどれですか?P PP


これは、サブセットの合計から削減することにより、正確に行うのはNP困難です。バイナリ整数与えられ、sに加算されるサブセットがあるかどうかをテストするために、超平面v 1 x 1 + + v 1 x n = sに点があるかどうかをテストできます。近似に興味がありますか?v1vnsv1x1++v1xn=s
コリンマッキーラン

@ColinMcQuillan:質問は正確な解決を目的としていましたが、近似にも興味があります。あなたのコメントを答えに変えてみませんか?
ジョルジオカメラニ

@ColinMcQuillan:また、超平面は等式を使用して定義されますが、私は不等式を使用して定義されます。これは硬さの点で違いがないと確信していますか?私はまだそれをチェックしなかったので、私はただ尋ねています。
ジョルジオカメラニ

すべての制限について少し混乱しています。S cの凸包についての情報を探している場合、0-1ナップザックポリトープに関するオペレーションズリサーチの文献には多くの結果があります。近似式についてはこちらをご覧くださいOSc
オースティンブキャナン

回答:


6

これは、サブセットの合計から削減することにより、正確に行うのはNP困難です。を計算する効率的な手順があるとします。バイナリでエンコードされた正の整数v 1v nが与えられた場合、sに合計するサブセットがあるかどうかをテストしたいと思います。sより大きい整数をすべて破棄して前処理します。Ov1,,vnss

小さなセット得るためにプロシージャをコール満たす点Vを1 X 1 + + V 1 X NS、あなたの極小の条件を満足する(前処理性を保証| SのC |N)。このセットには、超平面上の点が含まれます(v 1 x 1 + + v 1 x n = sがある場合)。Ov1x1++v1xns|Sc|nv1x1++v1xn=s


あなたが言うとき)1:たぶん、私はここで、巨視的に何かを望むんだけど、私は2つの質問を持っている「考えるバイナリ整数」あなたは何を意味するか、バイナリRに属します。たぶん、バイナリでエンコードされているということですか?または多分あなたは肯定的な言いたいですか?2)sより大きい整数をすべて捨てるのはなぜですか?彼らは解決に貢献するかもしれません。例:v 1 = 3 v 2 = 7 v 3 = 5 v1,...,vnRs、あなたが捨てた場合、V 2は、あなたが唯一の解決策失う { V 2V 3 }v1=3,v2=7,v3=5,s=2v2{v2,v3}
ジョルジオカメラニ

2
私はコリン手段があることは何だと思いあれば、制約係数が、私は合理的な数値である、彼らの通常のバイナリ表現で、その後、あなたの問題はNP困難に表示されます。(実数とNP硬度の混合は常にai
注意が必要

1
@GiorgioCamerani:私は肯定的に言う必要がありました-私は答えを更新しました。
コリンマッキーラン

1

あなたはIPの凸包に到達しようとしているように思えます-本質的にこれはカットアルゴリズムが達成しようとするものです。理論的に魅力的なこれらの方法は、実際には不十分です。

有効な不等式の生成に関するすべての理論があります。良い出発点は、整数プログラミングのシュライバーの本理論です。

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