我正在尝试在我的程序中使用演化优化器。但我只需要整数的解..。
现在,解决方案( 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]有什么办法来强制执行吗?或者还有其他的/更合适的包可以用来做这个吗?
发布于 2022-03-27 10:14:00
在枕版本1.9中,differential_evolution将获得一个integrality关键字,该关键字将完全按照您的要求执行,而不会出现问题修改。同时,您可以简单地将所有参数值舍入到目标函数中的整数,例如np.round。这种方法有约束也有无约束。
发布于 2021-12-22 02:24:02
您需要使用混合整数编程求解器。
除非约束矩阵是单模的,否则如果没有MIP求解器,则无法确保整数解。
通过说所有的解都是整数,你就是说你的问题是非凸的。但是你却试图解决一个凸问题。
如果约束/方程是线性的,您可能需要检查诸如GLPK和CBC之类的工具。如果您的约束是非线性的,则需要查看非线性整数规划求解器。
https://stackoverflow.com/questions/70441721
复制相似问题