2016-12-05 2 views
0

をプログラミングした場合であれば= 0その後、Bそれ以外= 0、B = bはバイナリである間の整数である1整数の条件が私は</p> <p>条件と整数計画問題を解決しています

私はこれに似た以前の質問を見ましたが、解決策を見つけることができませんでした。 上記の条件の整数プログラミングで制約式を定義してください。

+0

どのようなタイプですか? – harold

+0

aは整数ですが、bはバイナリです –

答えて

0

最初の制約は簡単です。a = 0 ⇒ b = 0は、≥ bと書くことができます。第2の制約(a b = 1)はより複雑です。 ≤ MここでMが比較的小さい場合は、M ⋅ b ≥と書くことができます。それ以外の場合は、indicator constraintsというソルバ機能を使用する必要があります。

+0

返事ありがとうございます。aが負の整数の場合はa≧bは成り立ちません –

+1

通常、整数プログラミングに負の整数はありません。別途記載がない限り、ゼロの下限が仮定される。 – mattmilten

0

は、これら2つの制約を使用してください:

a<=bM 
b<=aM 

Mは、大きな数(M> A)です。 a = 0の場合、第1の制約は冗長であり、第2の制約はb = 0を課します。 a> 0の場合、2番目の制約は冗長ですが、1番目の制約は強制的にbの値を1にします(Mが十分大きければ)。

+0

bはバイナリなので、2番目の制約をb <= aに単純化する必要があります。 –

+0

グレッグ、私はあなたの前の答えを誤解していました。基本的に、私はあなたがすでに行ったことを振り返りました。あなたが言及したように、2番目の制約では必要ありません。 –