python中的离散优化

Posted

技术标签:

【中文标题】python中的离散优化【英文标题】:Discrete optimization in python 【发布时间】:2013-05-26 12:22:45 【问题描述】:

我正在尝试使用scipy.optimize 包来优化离散优化问题(全局优化)。根据文档,scipy.optimize.anneal 中实现的模拟退火应该是一个不错的选择。但我不确定如何强制优化器只搜索搜索空间的整数值。有人可以帮忙吗?

一个说明性的例子:

f(x1,x2) = (1-0.4*x1)^2 + 100*(0.6*x2 -0.4*x1^2)^2

where, $x1, x2 \in I$

【问题讨论】:

【参考方案1】:

我检查了 scipy.optimize.anneal,但看不到使用离散值的方法。自己实现它的方法是创建一个自定义的“移动”函数,但是您必须指定时间表(通过字符串)的方式会阻止您这样做。

我认为这是一个很大的错误,如果你可以只传递一个自定义调度类作为参数,你可以自定义它以使用离散变量和更多的东西。

我找到的解决方案是改用这个其他实现: https://github.com/perrygeo/python-simulated-annealing

因为您必须提供修改状态的函数,所以您可以控制它可以具有哪些值,或者它们是离散的还是连续的。

【讨论】:

非常感谢.. 超级:我一直在寻找这样的东西。与此同时,我自己实现了 SA 以获得您所说的控制权

以上是关于python中的离散优化的主要内容,如果未能解决你的问题,请参考以下文章

matplotlib 中的 3D 离散热图

组合优化在机器学习中的应用

Python在离散数据上查找局部最大值和最小值[重复]

Mysql中的范式

离散读ICP优化全文检索

离散读ICP优化全文检索