Concert Technologies(Javaを使用)で決定変数タイプを変更するにはどうすればよいですか?
Aug 20 2020
連続変数を持つMILPモデルがあります($y_{ij}$)とバイナリ($x_{ij}$)。実装にはJavaとcplex12.8を使用しています。
Java-cplex APIを使用して、バイナリで最初に解決できるモデルを1つだけ作成できる方法はありますか? $x_{ij}$の次に連続変数の場合($0 \leq x_{ij} \leq 1$)?LP-RとMIPのギャップをその場で確認したいのですが、2つの異なるLPモデルとMILPモデルを作成したくありません。
回答
2 AlexFleischer Aug 20 2020 at 21:53
変数のタイプは変更できません。ただし、IloConversionオブジェクトを追加することで、特定のモデルに対して上書きできます。これにより、そのモデル内の変数に新しいタイプを指定できます。ILOG CPLEXは、アクティブなモデルで変換オブジェクトを見つけると、最適化に指定された元のタイプではなく、変換オブジェクトで指定された変数タイプを使用します。たとえば、次のものを含むモデルの場合:
IloNumVar x = cplex.numVar(0.0, 1.0);
cplex.add(cplex.conversion(x, IloNumVarType.Int));