蚁群优化算法之精华蚂蚁系统和排列蚂蚁系统学习笔记

一、基础知识点笔记

  • 启发式信息:它是利用问题拥有的启发信息来引导搜索,达到减少搜索范围、降低问题复杂度的目的,这种利用启发信息的搜索过程称为启发式搜索。

  • 算法收敛:算法的收敛是指经过多步迭代之后 得出的数值不应该无限的增大, 而是趋于某个数值, 不收敛的算法是不能用的, 你也根本得不出结果的, 更不用考虑其可靠性了。

  • TSP(旅行商问题):找到从某个城市 C i 出发,访问所有城市且只访问一次,最后回到C i 的最短封闭路径。

  • 贪婪算法:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。

  • 算法早熟:一般称之为“早熟”,是遗传算法中的一种现象。指在遗传算法早期,在种群中出现了超级个体,该个体的适应值大大超过当前种群的平均个体适应值。从而使得该个体很快在种群中占有绝对的比例,种群的多样性迅速降低,群体进化能力基本丧失,从而使得算法较早收敛于局部最优解的现象。

  • 早熟收敛的本质特征:是指群体中的各个个体非常相似,群体的多样性急剧减少,当前群体缺乏有效等位基因(最优解位串上的等位基因),在遗传算子作用下不能生成高阶竞争模式。

二、精华蚂蚁系统

  • 回忆AS算法:

  • 其中      表示初始信息素,m是蚂蚁的个数,      是由贪婪算法构造的路径长度。

  • AS中城市i与城市j的相连边上的信息素       计算公式:

  • 由此公式可知,蚂蚁在其爬过的边上释放与其构建路径长度成反比的信息素量,蚂蚁构建的路径越好,属于路径的各个边上的信息素就越多,这些边在以后的迭代中被蚂蚁选择的概率越大。

  • AS算法的局限:我们仍然以TSP(旅行商问题)举例,当城市的规模较大时,问题的复杂度呈指数增长,仅仅靠这样一个基础单一的信息素更新机制引导搜索偏向,搜索效率有瓶颈,为此我们想通过一种额外的手段强化某些最有可能成为最优路径的边,让蚂蚁搜索的范围更快、更正确的收敛。

  • 精华蚂蚁系统:是对AS的一次改进,它在原AS信息素更新的原则的基础上增加了一个对至今最优路径的强化手段,在每轮信息素更新完毕后,搜索到至今最优路径(Tb )的那只蚂蚁将会为这条路径添加额外的信息素。

  • 信息素跟新公式:

    • 公式分析:上述公式在原AS系统信息素公式:

增加了 ​ b (i,j),并定义参数e 作为 ​ b (i,j) 的权值 。Cb 是算法开始至今最优路径的长度 ,可见,ESA在 每轮迭代中为属于Tb 的边增加了额外的 e / Cb 的信息素量,一般设置e等于城市规模n。

  • 结论:ESA引入这种额外的信息素强化手段有助于更好地引导蚂蚁搜索的偏向,使算法更快收敛。Dorigo等人对ESA求解TSP问题进行了实验仿真,结果表明在一个合适的参数e值作用下,ESA有着较AS更高的求解精度与更快的进化速度。

三、居于排列的蚂蚁系统

  • 引言:在精华蚂蚁系统被提出后,人们想有没有一种方法能使得Tb 各边的信息浓度得到加强,同时对其余边的信息素更新机制也有改善?

  • 基于排列的蚂蚁系统:它就是上述的改进版本,它在AS的基础上给蚂蚁要释放的信息素大小 ​ ​ k (i,j)加上一个权值,进一步加大各边信息素量的差异,以知道搜索。

  • 核心思想:在每一轮所有蚂蚁构建完路径后,它们讲按照所得路径的长短进行排名,只有生成了至今最优路径的蚂蚁和排名在前(w-1)的蚂蚁才被允许释放信息素,蚂蚁在边(i,j)上释放的信息素 ​ ​ k (i,j)的权值由蚂蚁的排名决定。

  • 公式:

    • w:构建至今最优路径Tb (该路径不一定出现在当前迭代的路径中,各种蚁群算法均假设有记忆功能,至今最优的路径总是能被记住的)的蚂蚁产生信息素的权值大小。

    • Cb 是算法开始至今最优路径的长度。

    • 路径Tb 将获得最多的信息素量,w ​ b (i,j) 等价于 w/Cb 。

    • 路径长度排名越前的蚂蚁释放的信息数量越大,权值(w-k)对不同路径的信息素浓度差异起到了一个放大的作用。

  • 结果:ASrank 具有较 AS 已经 EAS更高的寻优能力和更快的求解速度。

蚁群优化算法之精华蚂蚁系统和排列蚂蚁系统学习笔记相关推荐

  1. 蚁群优化算法 ACO

    群体智能(swarm intelligence) 定义: 由单个复杂个体完成的任务可由大量简单个体组成的群体合作完成,而后者往往更具有健壮性.灵活性等优势.在没有集中控制,不提供全局模型的前提下,为寻 ...

  2. 蚁群优化算法(ACO)

    背景知识 蚁群优化算法是Marco Dorigo 受到蚂蚁寻找食物发现路径的行为启发,在博士论文提出的算法,是一种用来寻找优化路径的概率型算法,刚开始是为了解决 TSP(旅行商问题) ,即旅行家要旅行 ...

  3. 智能计算——蚁群优化算法实现

    基本原理 自然界现象:自然界蚂蚁群体在寻找食物的过程中,通过一种被称为信息素(Pheromone)的物质实现相互的间接通信,从而能够合作发现从蚁穴到食物源的最短路径. 算法抽象:通过对这种群体智能行为 ...

  4. 基于蚁群优化算法的特征选择相关文献

    Dorigo等人在20世纪90年代初提出了蚁群优化算法(Ant colony optimization ,ACO).ACO是一种元启发式群智能算法,旨在解决组合优化问题.它利用了真实蚂蚁的觅食行为,由 ...

  5. 蚁群优化算法的JAVA实现

    蚁群算法简介 蚁群算法是群智能算法的一种,所谓的群智能是一种由无智能或简单智能的个体通过任何形式的聚集协同而表现出智能行为,它为在没有集中控制且不提供全局模型的前提下寻找复杂的分布式问题求解方案提供了 ...

  6. 集群智能-蚁群优化算法

    群体智能  1.集群智能     众多无智能的个体,通过相互之间的简单合作所表现出来的智能行为 2.博弈    具备一定智能的理性个体,按照某种机制行动,在群体层面体现出的智能 3.众包    设计合 ...

  7. 【计算智能】——群体智能算法(蚁群优化算法ACO、粒子群优化算法PSO)

    群体智能算法 与大多数基于梯度的优化算法不同,群体智能算法依靠的是概率搜索算法. 与梯度算法及传统演化算法相比优点: 没有集中控制约束,不会因为个体的故障影响整个问题的求解. 以非直接信息交流的方式确 ...

  8. 【优秀作业】蚁群优化算法

    蚁群优化算法 一.概述 生物学家发现,自然界中的蚁群觅食是一种群体性行为,并非单只蚂蚁自行寻找食物源.蚂蚁在寻找食物源时,会在其经过的路径上释放一种信息素,并能够感知其它蚂蚁释放的信息素.信息素浓度的 ...

  9. 揽货最短路径解决方案算法 - C# 蚁群优化算法实现

    需求为(自己编的,非实际项目): 某配送中心进行揽货,目标客户数为50个客户,配送中心目前的运力资源如下: 现有车辆5台 单台运力最大行驶距离200千米 单台运力最大载重公斤1吨 问:运力怎样走法才能 ...

  10. 混合整数分布式蚁群优化算法-MIDACO介绍和试用

    混合整数分布式蚁群优化算法-MIDACO MIDACO是数值优化问题的求解器.MIDACO可以应用于连续(NLP非线性规划).离散/整数(IP整数规划)和混合整数规划(MINLP)问题.MIDACO可 ...

最新文章

  1. linux 后台运行jar SpringBoot
  2. Xamarin图表开发基础教程(12)OxyPlot框架支持的金融图表类型
  3. hue 添加jar_在hue下配置jdbc驱动
  4. Boss黑话,老板看完都笑了!
  5. 最后一周 | 微生物组-扩增子16S分析第9期(报名直播课免费参加线下2020.8)
  6. OpenGL(二)——OpenGL图形绘制
  7. 下标索引必须为正整数类型或逻辑类型_python量化基础 | 变量和简单的数据类型,零基础都可以看懂...
  8. [原创]Nexus5 内核编译烧录过程记录
  9. 关于Lua打包cocos2d项目
  10. php代码审计小技巧
  11. HEVC与VP9编码效率对比
  12. ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”
  13. 2017-07-08 前端日报
  14. 店铺淘客软件定制,1688分销软件OEM贴牌配合精细化运营提升店铺流量
  15. vue2-ts-template vue2后台管理系统模板
  16. TRANCATE TABLE与DETELE TABLE的区别
  17. 编译原理常用简称或英文原称(思维导图形式)
  18. c语言中calloc函数,C 库函数 – calloc()
  19. PHP数字球,球体的计算
  20. android studio 使用夜神模拟器

热门文章

  1. 非浙A号牌迁入为浙A区域号牌条件与流程
  2. X-Rover 关建华:所有产品首先要考虑的,永远是用户需求
  3. 提高排名的 15 个基本 SEO 技巧
  4. django账户管理系统admin
  5. Threejs 精灵火焰特效 Sprite Firey Aura effect
  6. 读书感受 之 《如何说客户才会听,怎么听客户才肯说》
  7. android的EditText字数检测和限制
  8. python裁剪图像
  9. 【C++要笑着学】多态 | 重写(覆盖) | 协变构多态 | 父虚子非虚也构多态 | final与override关键字(C++11) | 抽象类 | 纯虚函数 | 抽象类指针
  10. JPA中@Basic注解详解