python中后期接受爬山

lahc的Python项目详细描述


后期验收爬山

利用 伯克和比科夫在python中[Burke2017]

安装

将存储库下载到您的计算机并安装,例如通过pip

pip install .

或者直接从python包索引安装。

pip install lahc

使用量

包提供了一个基类,用于子类化到特定的 问题。moveenergy方法必须由 应用算法之前的用户。

用户通过调整单个算法来控制算法 参数history length和的终止条件 算法。请参阅下面关于每个主题的小节。

搜索是通过调用run方法开始的。

这个例子是开始使用这个包的好地方。

注意
实现在很大程度上依赖于复制状态。这个 默认复制策略(copy_strategy='deepcopy')依赖于 stlcopy.deepcopy方法适用于大多数数据结构, 但通常相当缓慢。large性能提升可以是 通过采用不同的复制策略很容易获得,请参见 copy_state方法的文档。

历史长度

LAHC算法的行为由单个参数控制, 历史长度。要改变算法的历史长度, 调整类的history_length参数。

如果历史长度设置为1,则LAHC算法等效 一个贪婪的爬山算法。增加历史长度 通常提高了溶液质量,但也增加了 汇聚。

因此,历史长度的选择应基于 对溶液质量和可用时间的要求 分析。

lahc启发式的一个有用特性是 收敛性与历史长度大致成正比。运行时 因此,在应用 一些不同历史长度的算法。

作为一般建议,从较低的历史长度开始, 逐渐增加它以确定 估计结果。选择一个较短的历史长度,允许 在分配给模拟的时间内多次运行,而不是 单次运行的较长历史长度。

终止标准

terminate_search方法计算 当中断信号(Ctrl-C)发送到进程时。

terminate_search方法的默认行为是 当尝试次数最少时终止算法 使得算法无法改进 一定数量的步骤。最小步数和必要步数 可以使用^{tt12}调整空闲迭代次数$ 和steps_idle_fraction参数。

steps_idle_fraction(0.02)的默认值通常是 对于各种问题都是不错的选择,但是 steps_minimumvalue(100000)可能需要根据 问题是。作为一般建议,用户应该减少 steps_minimum参数,如果算法始终终止于 steps_minimum在长时间运行后没有改进 解决办法。

确认

源代码的结构和部分 LateAcceptanceHillClimber类是从^{tt19}复制的$ 在simannealpython项目中初始化。所有来自 simanneal项目在此表示感谢。退房 simanneal项目位于

https://github.com/perrygeo/simanneal

实现了广泛应用的、成功的模拟退火 元启发式。

支持

open an issue 为了支持。

贡献

请捐款使用Github Flow。 创建分支、添加提交和 open a pull request

参考书目

[BURKE2017]E. K. Burke, Y. Bykov, The late acceptance Hill-Climbing heuristic. European Journal of Operational Research. 258, 70–78 (2017).

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Hibernate:jpamodelgen生成java而不是类   java如何在第二次活动结束后显示广告?   javascript如何在linux或windows上将java导出到jar   java One ArrayList添加了2个不同的选项   AmazonWeb服务如何在java中使用AWS Textract检索pdf中存在的表   java为什么RecycleView中的水平项在单击时不起作用?   java计算如果存在映射   java在捕获的组上应用正则表达式   如何使用Java在MySQL的同一个表中插入来自不同类的值   java字符串中最常见的字母(大写和小写)   Spring SessionBean实例正在由java中的多个用户共享   使用Spring Boot将@WebInitParam中的值外部化   java一创建线程就开始执行(多线程)   java是安卓所需的系统权限。意图行动给你打电话?