[英]Maximizing linear objective subject to quadratic constraints
I have a programming formulation from a paper and want to give it a tool for solving specific problems. 我从一篇论文中获得了一个编程公式,并希望为它提供一个解决特定问题的工具。 The authors stated it as an linear programming (LP) instance, however I am not sure. 作者将其描述为线性编程(LP)实例,但是我不确定。 Formulation is somewhat like as follows: 配方如下所示:
max x1+x2+x3...
s.t.
x1.x3+x4.x5 <= 10
x2.x5+x3.x7+x1.x9 <=10
...
I tried to program it through cplexqcp
function (due to quadratic constraints, however constraints do not include any x_i^2
variable). 我尝试通过cplexqcp
函数对其进行cplexqcp
(由于二次约束,但是约束不包括任何x_i^2
变量)。 However I receive CPLEX Error 5002: Q in %s is not positive semi-definite error
. 但是,我收到CPLEX Error 5002: Q in %s is not positive semi-definite error
。 Is this an instance of non-linear programming with non-convex constraints? 这是具有非凸约束的非线性编程的实例吗? Can I solve it with CPLEX
or use an NLP
tool for it? 我可以使用CPLEX
解决它还是使用NLP
工具? I am newbie to LP/NLP
staff (do not take any course regarding them), so really welcome help explaining details of the answers of my questions. 我是LP/NLP
员工的新手(不接受与他们有关的任何课程),因此非常欢迎帮助您解释我的问题的详细答案。
Thanks so much. 非常感谢。
The problem you posted needs some information on the domain of the variables x1, x2 and x3. 您发布的问题需要有关变量x1,x2和x3的某些信息。
If they are continuous, there is no way to express your problem as linear program (LP), since the surface of x1*x2 is just non-linear. 如果它们是连续的,则因为x1 * x2的表面只是非线性的,所以无法用线性程序(LP)表示问题。
If at least one of the product variables are binary (integer), the product can be linearized (so if you have a mixed integer program) like described in here - since the "borders" of above product are linear. 如果至少一个乘积变量是二进制(整数),则可以按此处所述对乘积进行线性化(因此,如果您有混合整数程序),因为上述乘积的“边界”是线性的。
Cplex can basically solve some classes of quadratic problems. Cplex基本上可以解决某些类的二次问题。 Judging by your error message, your problem does not belong in there. 从您的错误消息来看,您的问题不属于此。 So for solving this problem, you will probably need to stick to a general purpose NLP solver. 因此,要解决此问题,您可能需要使用通用的NLP求解器。 A sample list of solvers can be found here , all of which can be triggered by the software AMPL, or can be used standalone. 可以在此处找到求解器的示例列表,所有这些都可以由软件AMPL触发,也可以独立使用。 I am no expert here, so I can not give advice which solver should be preferred for your problem. 我在这里不是专家,因此我无法为您的问题提供哪种解决方案的建议。
Regards, Martin 问候,马丁
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.