0

cplex のコンサート テクノロジを使用せずに、C++ で線形プログラミング モデルを作成しています。

モデルの変数と目的関数を次のように宣言します。

IloModel genInst (env);

IloNumVarArray Sizes(env,N,0.25+EPS,1.0-EPS);

IloObjective Weight = IloAdd(genInst, IloMaximize(env,IloSum(Sizes));  

変数を厳密に 0.25 より大きく、厳密に 1.0 より小さくしたいので、EPS は小さな定数です。

目的関数はすべての変数の合計を最大化する必要がありますが、これを試みるたびに、ソリューション内の変数の値が制限外になり (0.25 より小さい、または大きすぎるなど)、変数を保持する可能性がありません。範囲内の値。

誰か助けてくれませんか?それほど複雑ではないはずなので、おそらくいくつかの間違いを犯しました。ありがとうございます!

4

1 に答える 1

0

境界関数は次のとおりです。

template<class T>
T bound_number(T n, T min, T max) {
    return std::max(std::min(n, max), min);
}
于 2013-03-07T16:46:13.363 に答える