【问题标题】:Integer solution constraint for scipy.optimize.differential_evolution?scipy.optimize.differential_evolution 的整数解约束?
【发布时间】:2022-01-23 05:53:05
【问题描述】:

我正在尝试在我的程序中使用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]

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

【问题讨论】:

    标签: python scipy scipy-optimize differential-evolution


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-12
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多