我有一篇论文中的编程公式,想给它一个解决特定问题的工具。作者将其描述为线性规划(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
工作人员(不要参加任何有关他们的课程),所以非常欢迎帮助解释我的问题的答案的详细信息。
非常感谢。
您发布的问题需要有关变量 x1、x2 和 x3 的域的一些信息。
如果它们是连续的,则无法将您的问题表示为线性规划(LP),因为 x1*x2 的表面只是非线性的。
如果至少一个乘积变量是二进制(整数),则乘积可以线性化(因此,如果您有混合整数程序),如中所述here- 由于上述产品的“边界”是线性的。
CPLEX 基本上可以解决某些类的二次问题。从您的错误消息来看,您的问题不属于其中。因此,为了解决这个问题,您可能需要坚持使用通用 NLP 求解器。可以找到求解器的示例列表here,所有这些都可以由软件AMPL触发,也可以单独使用。我不是这里的专家,所以我无法建议您的问题应该首选哪种求解器。
问候,
马丁
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)