零、参考文章
一、蚁群算法
蚁群算法(Ant Colony Optimization, ACO),是一种在图中寻找优化路径的算法。其灵感来源于蚂蚁寻找食物时,会在路径上释放信息素,并能感知其它蚂蚁的信息素。路径上信息素浓度越高,蚂蚁会以较大的概率选择该路径,并释放信息素,使该路径上的信息素浓度继续增高,进而使得蚂蚁能够找到一条优化的路径找到食物。
二、旅行商问题(Travelling Salesman Problem, TSP)
寻找一种旅行方案,从某个城市出发,经过每个城市依次,且只经过一次,最终回到出发的城市,需要旅行的总路程最短。
三、算法流程图
- 随机构建n个城市节点。
- 构建m个蚂蚁节点,蚂蚁节点随机分布在各个城市作为出发点。
- 每只蚂蚁维护一个已访问城市列表,以及未访问过的城市节点列表。
- 每只蚂蚁根据信息素公式 (信息素因子,启发函数因子,信息素挥发因子等参数) 计算可前往的城市概率。
- 根据轮盘赌算法,选择前往城市。
- 在前往该城市的路径上,释放信息素。
- 当m只蚂蚁均回到各自的出发点,表明完成一轮访问,计算m只蚂蚁的路径长度。
- 选择m只蚂蚁中的最小访问路径,作为当前轮的最小路径。
- 更新信息素浓度表。
- 从步骤2开始重复,经过数轮的迭代,最终找到一条比较优化的路径。
代码
链接:https://pan.baidu.com/s/1Gt94eYO9Gnj92i5HUhhD1w
提取码:lc0e