1

我必须找到integers最小化这个目标函数的集合:

在此处输入图像描述

成本约束是:

  • eachx必须是非负数integer
  • 在此处输入图像描述

TA并且Bdouble已知数。

为了解决这个问题,我一直在查看 OR-Tools C++ 库,特别是在 CP-SAT 求解器中。

  • 它是解决此类问题的正确工具吗?
  • 如果是,将所有的转换doubleint目标函数是否可行?
  • 如果没有,你还有什么建议?(我也对其他开源 C++ 库开放)
4

1 回答 1

1

它将适合 CP-SAT 求解器。您需要将浮点系数缩放为整数。

目标函数接受浮点系数。但是,如果保持这种方式而不是 A1^2 + 2 * A1 * x1 + x1^2,则 (x1 + A1)^2 会传播得更好。如果您使用临时变量 sx1 = x1 * x1,它符合 CP-SAT 的线性双系数限制。

然后确保为此使用至少 8 名工人。(参数 num_search_workers:8)。

现在,我相信有更适合此的最小二乘求解器。

于 2022-01-19T18:35:04.643 回答