私はCPLEXを初めて使い、MIPのエキスパートからは遠いですが、この技術(CPLEX 12.4)の問題を解決しようとしています。 私は、.lpファイルでMIPモデルを作成してCPLExに渡すことにしました。そのため、たくさんの入力を持ち、さまざまなソルバーをテストすることができます。しかし、私はインジケータの制約について少し問題があります。CPLEXはLPファイルフォーマットを使用しています:ブール演算子を使用したインジケータ制約
私が何かしたい:
c1: a AND NOT(b)-> i1 - 100 v1 = 0
c2: b AND NOT(a)-> i1 - 120 v1 = 0
c3: a AND b -> i1 - 80 v1 =0
をしかし、そのような事のANS AND
またはNOT
はLPフォーマットではありません(私はCPXインタフェース上でそれを行うことができればさえわからないが、私はしようとしていますそれを避けるため)。
私が見つけた唯一の回避策をやっている:私は別のプログラムで、このLPを生成するつもりですが、これはCPLEXを遅くないので
ca: a_not_b = 1 <-> a - b = 1
cb: b_not_a = 1 <-> a - b = -1
cab: a_and_b = 1 <-> a + b = 2
c1: a_not_b-> i1 - 100 v1 = 0
c2: b_not_a-> i1 - 120 v1 = 0
c3: a_and_b = 1-> i1 - 80 v1 =0
私は、これを有するOKでしょうか?これを行うより良い方法はありますか?
ありがとうございました