1 知识点

详细知识点见:智能优化算法—蚁群算法(python实现)

我们这一节知识点只讲蚁群算法求解最短路径步骤及流程。

 1.1 蚁群算法步骤

     设蚂蚁的数量为m,地点的数量为n,地点i与地点j之间相距dij,t时刻地点i与地点j连接的路径上的信息素浓度为sij,初始时刻每个地点间路径上的信息素浓度相等。

   蚂蚁k根据各个地点间连接路径上的信息素决定下一个目标地点,pijk表示t时刻蚂蚁k从地点i转移的概率,概率计算公式如下:

上式中,为启发函数,,表示蚂蚁从地点i转移到地点j的期望程度;为蚂蚁k即将访问地点的集合,开始时中有n-1个元素(除出发地点),随时间的推移,蚂蚁每到达下一个地点,中的元素便减少一个,直至空集,即表示所有地点均访问完毕;a为信息素重要程度因子,值越大,表明信息素的浓度在转移中起到的作用越大,也就是说蚂蚁选择距离近的下一个地点的概率更大,β为启发函数重要程度因子。

 蚂蚁在释放信息素的同时,每个地点间连接路径上的信息素逐渐消失,用参数

 表示信息素的挥发程度。因此,当所有蚂蚁完成一次循环后,每个地点间连接路径上的信息素浓度需更新,也就是有蚂蚁路过并且留下信息素,有公式表示为:

其中,表示第k只蚂蚁在地点i与j连接路径上释放的信息素浓度;表示所有蚂蚁在地点i与j连接路径上释放的信息素浓度之和;q为常数,表示蚂蚁循环一次所释放的信息素总量;lk表示第k只蚂蚁经过路径的长度,总的来说,蚂蚁经过的路径越短,释放的信息素浓度越高,最终选出最短路径。 

1.2 蚁群算法程序

(1)参数初始化

在寻最短路钱,需对程序各个参数进行初始化,蚁群规模m、信息素重要程度因子α、启发函数重要程度因子β、信息素会发因子、最大迭代次数ddcs_max,初始迭代值为ddcs=1。

(2)构建解空间

将每只蚂蚁随机放置在不同的出发地点,对蚂蚁访问行为按照公式计算下一个访问的地点,直到所有蚂蚁访问完所有地点。

(3)更新信息素

计算每只蚂蚁经过的路径总长lk,记录当前循环中的最优路径,同时根据公式对各个地点间连接路径上的信息素浓度进行更新。

(4)判断终止

迭代次数达到最大值前,清空蚂蚁经过的记录,并返回步骤(2)。

2 蚂蚁算法求解最短路径问题——python实现

2.1 源码实现

智能优化算法—蚁群算法(python实现)

2.2  aca_tsp实现

补充知识点:

3 蚂蚁算法求解最短路径问题——matlab实现

3.1 流程图

3.2 代码实现 

下表为一些坐标点,找出最短路线:

3.3 结果 

到此这篇关于python&matlab实现蚂蚁群算法求解最短路径问题的示例的文章就介绍到这了,更多相关python&matlab蚂蚁群最短路径内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!