3

我有一篇论文中的编程公式,想给它一个解决特定问题的工具。作者将其称为线性规划 (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员工的新手(不参加任何关于他们的课程),所以非常欢迎帮助解释我的问题答案的细节。

非常感谢。

4

1 回答 1

3

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

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

如果至少有一个乘积变量是二进制(整数),则乘积可以被线性化(所以如果你有一个混合整数程序),就像这里描述的那样- 因为上述乘积的“边界”是线性的。

Cplex 基本上可以解决某些类别的二次问题。从您的错误消息来看,您的问题不属于那里。因此,为了解决这个问题,您可能需要坚持使用通用 NLP 求解器。可以在此处找到求解器的示例列表,所有这些都可以由软件 AMPL 触发,也可以单独使用。我不是这里的专家,所以我不能给出建议,哪个解决方案应该更适合您的问题。

问候,马丁

于 2014-03-12T08:26:02.160 回答