0
私はAが決定変数である。このチェック - gurobiのpythonでの制約
if A > 0 then B = 1 else B = 0
を行うための制約を書きたいです。 Bは2進決定変数である。これを行うための最も効率的な方法は何ですか(メモリとCPUの使用方法がある場合)。
ありがとうございました。
私はAが決定変数である。このチェック - gurobiのpythonでの制約
if A > 0 then B = 1 else B = 0
を行うための制約を書きたいです。 Bは2進決定変数である。これを行うための最も効率的な方法は何ですか(メモリとCPUの使用方法がある場合)。
ありがとうございました。
インジケータ制約は単純です:Aの
B=1 => A >= 0.001
B=0 => A <= 0
使用良い境界はGurobiを支援します。あなたが良い境界を持っている場合
、あなたも直接行うことができます。
A <= B * U
A >= L * (1-B) + B * 0.001
L <= A <= U
m.addConstrs(Y [I、K、J、JP] <=(100000 * y_bin [I、K、J、JPユーザペアのi、kに対するm.addConstrs(y [i、k、j、jp]> =(y_bin [i、k、j、jp]) jについてはjp、弧ではjp)。明らかにuserpairには2500のインデックスがあり、アークにも2500のインデックスがあります。まず第一に、それはあなたのアドバイスのように見えますか?そしてその制約を加えるステップには多くの時間がかかり、私が見ているように多くのメモリを消費します。それは普通ですか?ところで、私はyのU境界とL境界を定義していませんでしたが、境界を知っています。私が定義してもいなくても、それは何か変わるのだろうか? –
なぜ0.001をバイアスとして挿入し、0を直接挿入しないのですか?ありがとうございました。 –
あなたはA> 0を求めました。 –