529. Santa 2022 - The Christmas Card Conundrum | santa-2022
2023/01/19 更新:添加了最优(?)路径的可视化路线图。
2023/01/23 更新:公开了我们的 GitHub 仓库。
我们( @kibuna 和 @cnumber)感谢主办方举办这一年度优化挑战赛,并提供了非常有趣的问题。
这个问题主要可以分为两个步骤。首先是在图像上获取具有颜色成本和最小重置成本的最小成本路径(定义在此),其次是构建具有最小额外成本的有效机械臂配置。我们通过使用“使用边组装交叉的遗传算法(GA-EAX)”解决带有附加约束的 TSP 问题来处理前一部分,对于后一部分,则使用了束搜索。
两个重要的点是:
解决此问题的基本方法是搜索从点 (0, 0) 出发,遍历图像所有像素,并返回点 (0, 0) 的最小成本路径。这听起来像是一个标准的 TSP,但机械臂的约束限制了可能的路线。我们通过添加路径依赖成本将这些约束纳入标准 TSP 中;当违反以下每个约束时,增加额外的成本。
上述所有约束都具有路径依赖性,因此将它们纳入局部搜索算法的成本函数中非常耗时,因为每次生成新的候选路径时都需要检查这些约束,这也是我们选择遗传算法(GA)的原因之一。在实现方面,我们没有排除所有违反约束的路径,而是在违反条件时施加惩罚成本,以便随着 GA 的进行,种群中违反约束的路径数量逐渐减少。
我们还利用可视化工具(见附录 1)来考虑这些限制。
GA-EAX 被用于搜索最小成本路径。该实现基于 GA-EAX-restart 并进行了一些修改。代码可在此处 [chettub/santa2022] 获取。
GA-EAX 是一种基于 GA 的 TSP 近似算法,使用一种称为边组装交叉(EAX)的快速高效交叉算子,已知该算法已更新了许多 TSP 实例的已知最佳解决方案,特别是对于
同比赛其他方案