0

次のような一連の制約があります。

x1 >= x2 + x3 + x4; x2>= x3 + x4 + x7; x3 >= x4 + x5; 等々。

変数ごとに、制約 RHS で使用される変数のリストを格納する配列があります。つまり、変数 1 の場合、配列には array[1] = {2, 3, 4} が含まれます。これを C++ で実装するために IloNumExpr を使用しましたが、うまくいきませんでした。

IloNumExpr Constraint(env);
for (int i = 0; i < 3; i++){
     for(int j = 0; j < array_size[i]; j++)
        {
            Constraint += x[array[i][j]];
        }
        model.add(x[i] >= Constraint);
} 

私がここでやっている間違いは何ですか?

ありがとう

4

1 に答える 1

0

うまくいかなかったと言うとき、あなたは何を得ていますか?あなたの問題は、IloNumExpr にますます多くのものを蓄積していることだと推測できます。おそらく、外側のループ内に IloNumExpr 宣言を配置する必要がありましたか?

cplex.exportModel() を使用してモデルを LP ファイルとしてダンプすると、実際に構築したモデルを確認するのに非常に便利です。

于 2015-05-13T05:56:38.000 に答える