在C ++ CPLEX中使用变量边界和目标函数的问题

时间:2013-03-07 16:35:46

标签: c++ cplex

我正在用C ++编写一个线性编程模型,而不是来自cplex的音乐会技术。

我声明我的模型的变量和目标函数如下:

IloModel genInst (env);

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

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

EPS是一个小常数,因为我希望变量严格大于0.25且严格小于1.0。

目标函数应该只是最大化所有变量的总和,但每当我尝试这个时,解决方案中的变量将具有超出我的限制的值(例如小于0.25或太大)并且我看不到任何可能性将变量值保持在它们的范围内。

有人可以帮帮我吗?我可能犯了一些错误,因为它不应该那么复杂。谢谢你!

1 个答案:

答案 0 :(得分:0)

这是一个边界函数:

template<class T>
T bound_number(T n, T min, T max) {
    return std::max(std::min(n, max), min);
}