最大化线性目标受二次约束

时间:2014-03-10 11:33:33

标签: math mathematical-optimization cplex nonlinear-optimization convex

我有一篇论文编程,希望给它一个解决特定问题的工具。作者称它为线性编程(LP)实例,但我不确定。 配方有点如下:

max x1+x2+x3...

s.t.

x1.x3+x4.x5 <= 10

x2.x5+x3.x7+x1.x9 <=10

...

我尝试通过cplexqcp函数对其进行编程(由于二次约束,但约束不包括任何x_i^2变量)。但是我收到了CPLEX Error 5002: Q in %s is not positive semi-definite error。这是非凸线约束的非线性规划的实例吗?我可以使用CPLEX解决此问题或使用NLP工具吗?我是LP/NLP工作人员的新手(不接受任何关于他们的课程),所以非常欢迎帮助解释我的问题答案的详细信息。

非常感谢。

1 个答案:

答案 0 :(得分:1)

您发布的问题需要有关变量x1,x2和x3的域的一些信息。

如果它们是连续的,则没有办法将您的问题表达为线性程序(LP),因为x1 * x2的表面只是非线性的。

如果至少有一个产品变量是二进制(整数),那么产品可以线性化(因此,如果你有一个混合整数程序),如here中所述 - 因为上述产品的“边界”是线性的。

Cplex基本上可以解决一些二次问题。根据您的错误消息判断,您的问题不属于那里。因此,为了解决这个问题,您可能需要坚持使用通用的NLP求解器。可以找到解算器的示例列表here,所有这些都可以由软件AMPL触发,或者可以单独使用。我不是这里的专家,所以我不能给出建议哪个求解器应该是你的问题的首选。

此致 马丁