自适应大邻域搜索算法的一种灵活实现。

alns的Python项目详细描述


PyPI versionBuild StatuscodecovCodacy Badge

该软件包提供了一个通用的、有良好文档记录的、经过测试的 自适应大邻域搜索的实现 元启发式,基于Pisinger and Ropke (2010)中给出的描述。它可以按通常的方式安装,

pip install alns

如何使用

alns包公开了两个类,ALNSState。第一次 可能用于运行alns算法,第二个可能是 存储解决方案状态-它所需要的只是定义一个objective 成员函数。

ALNS算法必须提供一个接受标准,以 在每次迭代中确定接受新的解决方案状态。 在Santini et al. (2018)中概述了常见的验收标准。已经为您实现了几个 alns.criteria

  • HillClimbing。最简单的验收标准,爬山 只接受提高目标价值的解决方案。
  • RecordToRecordTravel。此标准仅在以下情况下接受解决方案 改进达到了一定的更新阈值。
  • SimulatedAnnealing。当 标度概率大于某个随机数,使用 更新温度。

每个接受标准都继承自AcceptanceCriterion,它可以 被用来写你自己的。

示例

examples/目录提供了一些显示 如何使用alns库。特别感兴趣的是,

  • 旅行商问题。我们解决了 以131个城市为例,使用简单的 使用后处理步骤销毁和修复启发式方法。
  • 下料问题(CSP),here。我们用 180个梁,165个不同尺寸,在 只有非常有限的迭代次数。

参考文献

  • Pisinger,D.和Ropke,S.(2010年)。大规模的邻里搜索。单位:米。 Gendreau(编辑),《变启发式手册》(第2版,第399-420页)。 斯普林格。
  • Santini,A.,Ropke,S.和Hvattum,L.M.(2018年)。比较 自适应大邻域搜索的接受准则 元启发式。启发式杂志24(5):783-815。

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

推荐PyPI第三方库


热门话题
java log4j找不到log4jtest。房产?   我在java线程“awteventque1”中获得异常。lang.NullPointerException   java为什么在使用完整路径从文件系统读取文件时出错?   java如何迭代所有注册表项?   java中的安卓 Opencv SVM未正确训练   多线程Java ThreadPoolExecutor关闭特定线程?   如何使用Java NIO CreateDirectory方法设置目录所有者组?   java NatTable混合了固定宽度的列和可调整大小的填充剩余空间   java如何删除特定网络,即使该网络是由安卓上的其他设备创建的?   java Guava toJavaUtil()不存在   java对许多常量使用枚举是有效的memorywise?   java是否可以使用坐标定位JButton?   从WSDL生成java代码导致异常   java如何在安卓中导出javadoc   爬行JAX中的java NoClassDefFoundError错误   java为片段中的文本视图设置区域设置   发送最后一条消息后发生Java RMI RemoteException