蚁群算法

1、蚁群算法

自组织算法:组织力与组织指令来自于系统内部。即在没有外界作用下是系统熵减少的过程(系统从无序到有序的变化过程)

并行算法:每只蚂蚁搜索过程彼此独立,仅通过信息激素进行通信。在问题空间多点同时开始进行独立的解搜索,不仅增加了算法的可靠性,也使算法具有较强的全局搜索能力。

正反馈算法:蚂蚁能够最终找到最短路径,直接依赖于最短路径上信息激素的堆积,而信息激素的堆积却是一个正反馈的过程。正反馈是蚁群算法的重要特征。

1.1、参数设置:

  过大 过小
蚂蚁数量m 随机每个路径都有蚂蚁,导致路径上信息素趋于平均,正反馈作用减弱,收敛速度减慢 存在一些路径信息素减少为0,导致过早收敛,解的全局最优性降低
信息素常量Q(每只蚂蚁能分泌的信息素的总量) 容易陷入局部最优,导致无法到达全局最优 信息含量差别较小,容易陷入混沌状态
最大迭代次数t 运算时间过长 可选路径较少,使种群陷入局部最优
信息素因子α,反映了蚂蚁运动过程中路径积累的信息素的量在指导蚁群搜索中的相对重要程度 蚂蚁选择以前已经走过的路可能性较大,容易使随机搜索性减弱 使蚁群的搜索范围减小容易过早收敛,陷入局部最优
启发函数因子β,反映了启发式信息在指导蚂蚁搜索中的相对重要程度,蚁群寻优过程中先验性、确定性因素作用的强度 收敛速度加快,容易陷入局部最优 蚁群易陷入纯粹的随机搜索,很难找到最优解
信息素挥发因子ρ:反映了信息素的消失水平,相反的1-ρ反映了信息素的保持水平 信息素挥发较快,容易导致较优路径被排除 各路径上信息素含量差别较小,收敛速度降低

蚂蚁数量一般设置为目标数1.5倍。信息素常量根据经验一般取值在[10,1000]。最大迭代次数一般取[100,500],建议取200。信息素因子取值范围通常:[1,4]。启发函数取值范围通常:[0,5]。信息素挥发因子取值范围通常:[0.2,0.5]

1.2、构建路径:

每只蚂蚁随机选择一个城市作为其出发城市,并维护一个路径记忆向量,用于存放该蚂蚁依次经过的城市。

蚂蚁在构建路径的每一步中用轮盘赌法选择下一个要到达的城市:表示第k只蚂蚁从第i个城市到第j个城市的概率。蚁群算法_第1张图片

allowedk是还没访问过的节点集合。\eta _{ij}(t)是两点路径距离的倒数。\tau_{ij}^\alpha是时间t时由i到j的信息素浓度。α为信息素因子。β为启发函数因子。

轮盘赌法:根据上面计算出的概率P形成一个轮盘,转到哪就走哪。

1.3、更新信息素

\tau_{ij}(t+1) = \tau_{ij}(t) * (1-p) + \Delta \tau_{ij} , 0<\rho <1:第t+1次循环后城市i到城市j上的信息素含量。1-ρ为信息素残留系数。

\Delta\tau_{ij}=\sum_{k=1}^{m} \Delta\tau_{ij}^k:新增信息素含量=m只蚂蚁在城市i到j路径上留下的信息素总和

蚁群算法可分为:蚁周模型(Ant-Cycle)、蚁量模型(Ant-Quantity)、蚁密模型(Ant-Density)

蚁周模型:完成一次路径循环后,蚂蚁才释放信息素,Q是初始化参数时设置的信息素常量,L_k是蚂 蚁k所经过的所有路径长度

\Delta _{ij}^k = \left\{\begin{matrix} Q/L_k& ant \ k \ from \ i \ to \ j\\ 0& others \end{matrix}\right.

 

1.4、判断是否终止

终止条件:是否达到迭代次数。

 

你可能感兴趣的:(零散知识,算法)