人工智能 6.2群算法

版权声明:本文为博主原创文章,转载请声明原创网址。 https://blog.csdn.net/lagoon_lala/article/details/85137440

用蚁群算法解决TSP问题,改进蚁群算法:最大最小最优保留 正反馈现象

人工蚁群与自然蚁群相比有记忆功能(禁忌表)

群的每个成员,称为一个个体。每个个体,其运动只遵循简单的规则。并且群成员之间是平等关系,而没有主从关系。由这些平等的、相互间能够协调运动的个体的集合,称之为“群”。

蚁群算法原理

蚂蚁先随意地对其巢穴周围的区域进行搜寻,并在走过的路上留下信息素。一旦一只蚂蚁找到了食物源,它会对食物做出评估并将一部分带回巢穴。在返回的途中,蚂蚁会根据食物的数量和质量留下不同量的信息素,信息素的浓度痕迹会引导其他蚂蚁找到食物源。

蚂蚁行为的机制

蚂蚁个体之间的信息交换是一个正反馈过程,其觅食的协作本质可以概括为:

路径概率选择机制:信息素浓度越高的路线,被选中的概率越大。

信息素更新机制:路径越短,信息素的浓度增长得越快。

协同工作机制:蚂蚁个体之间通过信息素进行信息传递。

 

鸟群行为

个体经验和社会学习: 由此,创造了粒子群优化算法

规则是:

    1. 避免碰撞

    2. 飞向目标

    3. 飞向群体的中心

鱼群行为

  鱼在一片水域的游动,可以归纳为四种行为:

     a. 觅食行为

       当鱼群发现食物时,会向着食物的方向快速游去;

     b. 追尾行为

      一条鱼向其视野内的另一条游向食物的鱼游去;

     c. 聚群行为

      为了避免被其他动物捕食,游向伙伴多的地方;

     d. 随机游动

       无目的的游动。

由此,创造了人工鱼群算法(Artificial  Fish Swarm Algorithm ,AFSA)

 

蚁群算法的提出

人工蚁群中把具有简单功能的工作单元看作蚂蚁。二者的相似之处在于都是优先选择信息素浓度大的路径。较短路径的信息素浓度高,所以能够最终被所有蚂蚁选择,也就是最终的优化结果。

两者的区别在于人工蚁群有一定的记忆能力,能够记忆已经访问过的节点。同时,人工蚁群在选择下一条路径的时候是按一定算法规律有意识地寻找最短路径,而不是盲目的。例如在TSP问题中,可以预先知道当前城市到下一个目的地的距离。

蚁群算法的特征

蚁群算法采用了分布式正反馈并行计算机制, 易于与其他方法结合, 并具有较强的鲁棒性。

(1)其原理是一种正反馈机制或称增强型学习系统;它通过信息素的不断更新达到最终收敛于近似最优路径上;

(2)它是一种通用型随机优化方法;但人工蚂蚁决不是对实际蚂蚁的一种简单模拟,它融进了人类的智能;

(3)它是一种分布式的优化方法;不仅适合目前的串行计算机,而且适合未来的并行计算机;

(4)它是一种全局优化的方法;不仅可用于求解单目标优化问题,而且可用于求解多目标优化问题;

(5)它是一种启发式算法;计算复杂性为 O(NC*m*n2),其中NC 是迭代次数,m 是蚂蚁数目,n 是目的节点数目。

旅行商问题(TSP)

第一步:初始化

   将m只蚂蚁随机放到n个城市,每只蚂蚁的禁忌表为蚂蚁当前所在城市,各边信息素初始化为c。

   禁忌表体现了人工蚂蚁的记忆性,使得蚂蚁不会走重复道路,提高了效率。

第二步:选择路径路径

在t时刻,蚂蚁k从城市i转移到城市j的概率为:

状态转移概率

信息素强度*距离权重(公式字母标错φ-->η

第四步:输出结果

若未达到终止条件则转步骤二,否则,输出目前的最优解。

蚁群大小:

         一般情况下蚁群中蚂蚁的个数不超过TSP图中节点的个数。

终止条件:

    1 给定一个外循环的最大数目,表明已经有足够的蚂蚁工作;

    2 当前最优解连续K次相同而停止,其中K是一个给定的整数,表示算法已经收敛,不再需要继续;

3 目标值控制规则,给定优化问题(目标最小化)的一个下界和一个误差值,当算法得到的目标值同下界之差小于给定的误差值时,算法终止。

 

达到预定的迭代步数,或出现停滞现象(所有蚂蚁都选择同样的路径,解不再变化),则算法结束,以当前最优解作为问题的解输出。

 

例题

混流装配线调度

       混流装配线(sequencing mixed models on an assembly line, SMMAL)是指一定时间内,在一条生产线上生产出多种不同型号的产品,产品的品种可以随顾客需求的变化而变化。SMMAL是车间作业调度问题(job-shop scheduling problem, JSP)的具体应用之一。

蚂蚁系统求解SMMAL问题的性能较差,蚁群系统的性能相对于前两者而言,有了很大幅度的提高,最大-最小蚂蚁系统的性能最好,大多数情况下的求解结果已达到实际的最优解

蚁群算法与遗传、模拟退火算法的比较

有的实验结果表明:

1、蚁群算法所找出的解的质量最高,遗传算法次之,模拟退火算法最低。

2、蚁群算法的收敛速度最快,遗传算法次之,模拟退火算法最慢。蚁群算法之所以能够快速收敛到全局最优解,是因为该算法的个体之间不断进行信息交流和传递。单个个体容易收敛于局部最优,多个个体通过合作可以很快地收敛于解空间的最优解的附近。

猜你喜欢

转载自blog.csdn.net/lagoon_lala/article/details/85137440