五种典型启发式算法对比总结
说明:
1. 五种启发式算法包括:遗传算法,粒子群算法,蚁群算法,禁忌搜索,模拟退火
之前的博文中已经写了五种启发式算法的偏应用的总结,避开背景知识和代码,已经尝试从问题和解的角度去总结五种算法的流程和思路
其中:
遗传算法,粒子群算法,模拟退火 附带的示例是求解函数极值
蚁群算法,禁忌搜索 附带的示例是求解TSP
遗传算法(GA): 遗传算法(GA)总结:算法流程,实例,思路
粒子群算法(PSO):粒子群算法(PSO)总结:算法流程,实例,思路
蚁群算法(ACO): 蚁群算法(ACO)总结:算法流程,实例,思路
禁忌搜索(TS): 禁忌搜索(TS)总结:算法流程,实例,思路
模拟退火(SA): 模拟退火(SA)总结:算法流程,实例,思路
2. 不同的启发式算法原本就是针对不同的问题而发明的,各种方法有各自的适用范围,原则上应该是根据具体问题选择算法,脱离具体问题而单独对比算法不太合理。但是对比总结有助于理清各个算法的思路,所以本文还是给出简要对比
3. 各种启发式方法都存在各种改进版,都在不断的更新完善,这里只是根据个人的理解,总结基础版的五种启发式方法
以下是根据个人理解的对比总结
注意:各种算法里的每种操作都可以自由设计,而且设计方式不固定,所以对比总结里的某些方面不一定完全准确,这里仍然是尝试从问题和解的角度去总结
1.遗传算法 | 2.粒子群算法 | 3.蚁群算法 | 4.禁忌搜索 | 5.模拟退火 | |
群体/单体 | 群体 | 群体 | 群体 | 单体 | 单体 |
使用问题范围 | 离散优化 连续优化 | 连续优化 | 离散优化 | 离散优化 | 离散优化 连续优化 |
新解的产生方式 | (选择) 交叉 变异 | 速度更新公式产生增量,增量添加到当前解上 | 依据信息素和城市间距,以概率产生新解 | 构造邻域,邻域中选取 | 构造偏移量,偏移量加到当前解上 |
逐步靠近优解 (优解对于新解的产生过程的引导性) | 选择过程中的轮盘赌,更优的解保留的几率更大 | 群体最优解、单体最优解都影响每个解的更新过程 | 信息素越浓、城市间距越短的路径被选中的概率越大 | 选用最优解产生领域 | 更优的解一定接受 |
劣解概率接受 (跳出局部最优) | 交叉变异都会产生新解,种群更新时采用轮盘赌,劣解有几率保留 | 解的更新过程中产生的新解会覆盖群体最优解、单体最优解的周边解空间 | 信息素不浓、城市间距不短的路径也有概率被选中 | 只能取和禁忌表中保存的解不相同的解,有几率取到次优解或劣解 | Metropolis准则,以概率接受劣解 |
算法中的随机性 | 1.初始解 2.选择环节 某个解是否保留 3.交叉环节 某个基因是否用于交叉,交叉位置 4.变异环节 某个基因是否变异,变异位置 | 1.初始解 2.初始速度 3.速度更新公式里的随机权重 | 蚂蚁在某城市选择下一个要去的城市的概率 | 初始解 | 1.初始解 2.产生的新解 3.接受劣解时概率 |
核心思路 (思想内涵) (算法特色) | 选择环节保留优解,交叉变异环节产生新解 | 解的更新同时利用全局最优解和局部最优解信息 | 反馈机制,且搜索机制深入到具体问题层面 | 通过禁忌表避开已经搜索到的最优解,迫使算法搜索新的最优解 | 搜索到的更好的解一定接受,搜索到的更差的解以概率接受 |
更多推荐
所有评论(0)