0

私は、多くの実行不可能な制約を持つ LP 問題を処理CPLEX/docplex解決しています。実行可能性の問題のほとんどは、モデルの自動定式化に起因しており、制約間の競合を優先的に検出するのは困難です。

docplex関数imを使用してConflictRefiner().refine_conflict(model)、競合する制約のセットを少なくとも 1 つ見つけることができます。

問題は、競合している制約のすべてのセットを見つけるために、関数を使用して競合している制約の一部を削除する必要がmodel.remove_constraint(constraint.name)あり、その関数の実行に時間がかかることです。

135.000 制約のタイミングを次のように編集します。

model.remove_constraint(constraint.name)
time= 124 sec
model.remove_constraint(constraint.element)
time= 126 sec

¿よりも速く制約を削除する方法model.remove_constraint(str_name_constraint)はありますか?各セットに対して remove/refine_conflict() を実行することなく、競合するすべてのセットを取得する方法はありますか? ために、制約で階層を使用する方法はありますか?制約間の競合を回避しますか?

(最後の質問は少し話題から外れていますが、元の問題に関連しています)

前もって感謝します!

4

1 に答える 1