0

我正在尝试在我的程序中使用scipy.optimize.differential_evolution优化器。但我需要解决方案只有整数......

现在解决方案(scipy.optimize.OptimizeResult 的属性 x)总是看起来像这样:

[3.56932195, 1.69611735, 8.67970522, 9.69922539, 6.43961603, 3.3292928 , 2.32741226]

但我需要解决方案中的所有元素都是整数,例如:

[6, 6, 4, 7, 2, 5, 3]

有什么办法可以强制执行吗?或者我可以使用其他/更适合的包吗?

4

1 回答 1

0

您需要使用混合整数规划求解器。

除非您的约束矩阵是单模的,否则您无法确保没有 MIP 求解器的整数解。

通过说所有解决方案都必须是整数,您是在说您的问题是非凸的。但是你却试图解决一个凸问题。

如果您的约束/方程是线性的,您可能需要查看 GLPK 和 CBC 等工具。如果您的约束是非线性的,您需要研究非线性整数规划求解器。

于 2021-12-22T02:24:02.097 回答