【发布时间】:2016-12-03 16:24:54
【问题描述】:
我目前正在寻找一种算法,该算法将返回给定大小和宇宙(通常在 50 个中的 10-15 个之间,因此大约数百万十亿种可能性...)和一个评分函数,它给出了过去每种组合的性能(优化的函数需要 2 毫秒到 1 秒的时间来运行,具体取决于我选择的复杂性)。 如果我必须测试所有可能的组合(我什至不能将所有组合可能性存储在列表列表中......并且必须使用生成器为每个评估如果我不想用完内存)。 不幸的是,对于某些函数,我不能使用基于迭代的所谓“遗传”算法(从 2 中最好的、3 中最好的、.. n 篮子等等......添加新项目时的篮子)。 这种类型的算法非常快,并且在大多数情况下都能给出很好的结果。
我已经尝试过模拟退火(scipy.basinhopping 版本或我编写的自定义版本),但是如果我在 25-30 中超过 15 次,则每次迭代都会花费太多时间,因为我无法在开始时存储所有组合算法并且必须为每个评估使用生成器。此外,有时我对给定的最优值并不满意。
如果您有想法、建议或提示,我会接受一切。如果你想看看我的模拟退火函数,不要犹豫,问我。
非常感谢!
【问题讨论】:
-
模拟退火应用于比这更大的问题,我自己每天都使用一个变体。您当前使用的代码库有多大?发布是否合理,或者是否在您可以链接到的某个仓库中?
标签: python algorithm optimization combinations mathematical-optimization