Cgal二次规划目标函数

时间:2018-04-19 13:32:48

标签: c++ function optimization cgal quadratic

我正在尝试最小化以下功能:

25*x^2 + 45*x*y + y^2

和类似的约束:

(25 + y) + 25*x <= 1
<{3>}中的

要在目标函数中输入“25x ^ 2”和“y ^ 2”,我可以执行以下操作:

qp.set_d(X, X, 50);
qp.set_d(Y, Y, 2);

但是“45 * x * y”呢?

以及如何添加此约束“(25 + y)+ 25 * x <= 1” 在我看来像这样,但我不确定25:

qp.set_a(X, 0, 25);
qp.set_a(Y, 0, 1);
qp.set_b(0, 1);

一种解决方案应该是将功能更新为此格式“y + 25 * x&lt; = -24”

qp.set_a(X, 0, 25);
qp.set_a(Y, 0, 1);
qp.set_b(0, -24);

(如果我错了,请在约束中纠正我)

我会感激任何建议,尤其是“45 * x * y”问题。

1 个答案:

答案 0 :(得分:1)

你的替换方法&#34;(25 + y)+ 25 * x&lt; = 1&#34; by&#34; y + 25 * x&lt; = -24&#34;显然是正确的。

对于目标函数,尝试:

qp.set_d(X, Y, 90);

但你的矩阵D:

25     22.5
22.5    1

不是半正的,因此求解器可能会失败。