蚁群算法初探

193 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第24天,点击查看活动详情


TSP旅行商问题(Traveling Salesman Problem):旅行商要到若干个城市旅行,各城市之间的费用是已知的,为了节省费用,旅行商决定从所在城市出发,到每个城市旅行一次后返回初始城市,问他应选择什么样的路线才能使所走的总费用最短?

在求解旅行商问题时,可以通过蚁群算法来解决。

蚁群算法

自然界中蚂蚁在寻找食物时,会在走过的路径上释放信息素,随着时间的推移信息素会挥发,后来的蚂蚁会根据不同路径上信息素的强度选择路径。

根据这一现象,提出一种基于种群的启发式随机搜索算法——蚁群算法。

算法基本流程

用一只蚂蚁的行走路径代表一个可行解

  1. 确定迭代周期,蚂蚁数
  2. 对于每只蚂蚁:随机选择起点,在选择下一步时,根据所有与当前节点有关的路径上的信息素多少来决定,一般信息素越多,选择该路径的概率越高。
  3. 选择后,在选择的路径上按照一定的规则留下一定量的信息素。
  4. 最终的蚂蚁路径就是本次搜索的最佳路径
  5. 经过一定次数多迭代后,获得最优解。

优点

  • 采用正反馈机制,使得搜索过程不断收敛,最终逼近最优解。

  • 每个个体可以通过释放信息素来改变周围的环境,且每个个体能够感知周围环境的实时变化,个体间通过环境进行间接地通讯。

  • 搜索过程采用分布式计算方式,多个个体同时进行并行计算,大大提高了算法的计算能力和运行效率。

  • 启发式的概率搜索方式不容易陷入局部最优,易于寻找到全局最优解。