cgal二次规划objective函数

Cgal quadratic programming objective function

我正在尝试最小化如下函数:

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

和类似的约束,如:

(25 + y) + 25*x <= 1

CGAL::Quadratic_program.

要在 objective 函数中输入“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 <= -24"

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

(如有错误请多多指正)

如果有任何建议,我将不胜感激,尤其是“45*x*y”问题。

您将“(25 + y) + 25*x <= 1”替换为 "y + 25*x <= -24" 的方法显然是正确的。

对于objective函数尝试:

qp.set_d(X, Y, 90);

但是你的矩阵 D:

25     22.5
22.5    1

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