基于交换的离散萤火虫算法求解旅行商问题
旅行商问题(TSP)是一个经典的组合优化问题,旨在找到一条遍历所有城市且每个城市仅访问一次,最后回到起始城市的最短路径。为了解决这个问题,研究人员提出了许多算法,其中基于交换的离散萤火虫算法(SDFA)是一种有效的方法。
1. 相关算法基础
- DFA的边移动 :离散萤火虫算法(DFA)采用基于边的移动方式。它会从组合中随机选择一种边移动,且所选的边移动仅执行一次。这种移动方式能确保不删除之前已存在的相似边,从而保证更短的弧距离。
- 随机移动 :当萤火虫找不到参考萤火虫时,会进行随机移动。在EDFA和DFA中,随机移动采用反转突变,即在TSP解的不同位置多次执行。不过,KPFA中未观察到随机移动。
2. 基于交换的离散萤火虫算法(SDFA)
- 核心思想 :SDFA是EDFA和DFA的改进变体。它在吸引力计算中使用交换距离作为基因型距离,并采用交换突变作为移动方案,以实现较暗萤火虫向较亮萤火虫的移动。终止条件为固定的代数。
- 算法步骤 :
Input: 萤火虫种群大小 pop, 光吸收系数 γ, 吸引力系数 β0, 移动次数 m, 累积解列表 l
Output: 最短路径的TSP解
1: 使用最近邻启发式初始化萤火虫种群 xi(i = 1, 2, ..., pop)
2: while 终止条
超级会员免费看
订阅专栏 解锁全文
97

被折叠的 条评论
为什么被折叠?



