0

No linear 問題にはいくつかの制約があります。

例えば:

In   m(x+y-n)^2
If    x+y-n>=0 Then m=0, 
Else  m=1.

この条件付き制約を線形制約または非線形制約としてどのように記述できますか?

4

2 に答える 2

0

Choco Solverなどの制約プログラミング ソルバーを使用する場合は、IfThenElse 制約を直接使用したり、正方形などの他の非線形制約を使用したりできます。

于 2016-08-10T10:13:26.123 に答える
0

これは のように書くことができます[min(x+y-n,0)]^2。それがうまくいくかどうかはわかりません(これは微分不可能であるため、多くのソルバーにとって困難です)。min()追加のバイナリ変数を使用して式を線形にすることができます。

z <= x+y-n
z <= 0
z >= x+y-n - b * M
z >= 0 - (1-b) * M
b in {0,1}

M十分に大きな定数で。多くの場合、より良い再定式化を適用できますが、それはモデルの残りの部分に依存します。

于 2016-08-10T09:47:53.817 に答える