首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scipy.optimize.differential_evolution的整数解约束?

scipy.optimize.differential_evolution的整数解约束?
EN

Stack Overflow用户
提问于 2021-12-21 21:21:05
回答 2查看 244关注 0票数 0

我正在尝试在我的程序中使用演化优化器。但我只需要整数的解..。

现在,解决方案( scipy.optimize.OptimizeResult)的属性x)总是如下所示:

代码语言:javascript
复制
[3.56932195, 1.69611735, 8.67970522, 9.69922539, 6.43961603, 3.3292928 , 2.32741226]

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

代码语言:javascript
复制
[6, 6, 4, 7, 2, 5, 3]

有什么办法来强制执行吗?或者还有其他的/更合适的包可以用来做这个吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-27 10:14:00

在枕版本1.9中,differential_evolution将获得一个integrality关键字,该关键字将完全按照您的要求执行,而不会出现问题修改。同时,您可以简单地将所有参数值舍入到目标函数中的整数,例如np.round。这种方法有约束也有无约束。

票数 1
EN

Stack Overflow用户

发布于 2021-12-22 02:24:02

您需要使用混合整数编程求解器。

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

通过说所有的解都是整数,你就是说你的问题是非凸的。但是你却试图解决一个凸问题。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70441721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档