gpt4 book ai didi

c++ - Cgal二次规划目标函数

转载 作者:行者123 更新时间:2023-11-30 05:02:20 27 4
gpt4 key购买 nike

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

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

和类似的约束,如:

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

CGAL::Quadratic_program .

要在目标函数中输入“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”的方法显然是正确的。

对于目标函数尝试:

qp.set_d(X, Y, 90);

但是你的矩阵 D:

25     22.5
22.5 1

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

关于c++ - Cgal二次规划目标函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49922432/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com