【人工智能】蚁群算法(密恐勿入)
蚁群算法(密恐勿入)
蚁群算法--给你一个感性认识
- 蚁群算法(密恐勿入)
- 1. 算法简介
- 1.1 基本原理
- 1.1.1 模拟蚂蚁在简单地形,寻找食物
- 1.1.2 模拟蚂蚁在复杂地形,找到食物
- 1.2 算法应用
- 2. 算法解析
- 3.算法应用——TSP问题
- 3.1 TSP旅行商介绍
- 3.2 利用蚁群算法解决TSP问题
- 总结一下:
- 4. TSP问题—蚁群算法实现(python版本)
- 问题背景:
- 数据:
- 准备阶段
- 算法构造
- 测试:
1. 算法简介
1.1 基本原理
蚁群算法是一种模拟蚂蚁觅食行为的启发式算法,被广泛应用于优化问题的求解。蚁群算法的基本思想是,将一群蚂蚁放在问题的解空间上,让它们通过信息素的传递和挥发,逐渐找到最优解。
1.1.1 模拟蚂蚁在简单地形,寻找食物
阶段一:在蚁群算法的初始阶段,我们在地图上不放置任何食物,因为蚂蚁需要在没有任何信息素的情况下开始摸索前进。一开始,蚂蚁们在洞外随机移动,试图找到食物的位置。每只蚂蚁的速度相同,它们会按照随机的方向前进,直到遇到障碍物或者到达了边界。此时,它们会再次随机选择一个方向,并继续前进。这个过程会持续进行,
阶段二:当蚂蚁们找到了食物后,它们会将一些信息素沿着它们的路径释放出来,并且在回到蚁巢的路上也会释放信息素。
蚁群之间的规则:
- 蚂蚁发现食物并将其带回巢穴时,通常会遵循已经标记的路径返回,即原路返回。在返回过程中,蚂蚁会释放归巢素和信息素,这些化学物质可以吸引其他蚂蚁跟随它的路径前往食物源。如果路径上有较多的归巢素或信息素,则越来越多的蚂蚁将会选择这条路径前往食物。
阶段三:当蚂蚁们回到巢穴时,它们会在原来的路径上释放更多信息素,增强这条路径的吸引力,并且尝试着寻找更短的路径。蚂蚁们会在路径上选择合适的地方停下来,释放信息素,然后返回巢穴。这个过程将持续进行,直到蚂蚁们找到了最优路径。
根据以上规则,随着时间的推移,蚂蚁们终会(可能)找到的最优路径。
1.1.2 模拟蚂蚁在复杂地形,找到食物
1.2 算法应用
蚁群算法已经应用于多种优化问题的求解,比如:
- 旅行商问题
- 图着色问题
- 网络路由问题
- 调度问题
- 生产计划问题
在这些问题中,蚁群算法通常能够找到较优的解。此外,蚁群算法还可以用于机器学习领域中的聚类和分类等问题。
2. 算法解析
想要理解算法?需要去理解以下内容:
- 蚁群是如何找到解的?解的步骤是什么?
- 蚂蚁在初始时随机选择一个起点,并向前行走。
- 当蚂蚁走到一个节点时,它会选择一个下一个节点进行移动。蚂蚁选择下一个节点的概率与该节点上的信息素浓度成正比。信息素浓度越高的节点,被选择的概率也越高。
- 当蚂蚁移动到一个节点时,它会在该节点上释放一定量的信息素。
- 当蚂蚁找到解后,它会回到起点,并在路径上释放更多的信息素,增强这条路径的吸引力。
- 当其他蚂蚁在寻找解的过程中遇到已经被标记的路径时,它们会更有可能选择这条路径。
- 随着时间的推移,信息素会挥发,路径上信息素的浓度会逐渐降低。这样,路径上的信息素浓度会经历一个上升和下降的过程。
- 蚂蚁们会根据路径上的信息素浓度来选择下一个节点。当信息素浓度很高时,它们更有可能选择这条路径。
- 蚂蚁们持续寻找解,直到找到最优解或者达到预设的迭代次数。
作者个人理解:
蚂蚁个体之间就是通过这种间接的通信机制实现协同搜索最短路径的目标的。我们举例简单说明蚂蚁觅食行为:
现阶段 蚂蚁有A→B→C 和 A→D→C两种较优路径, A→D→C的距离要大于A→B→C
因为大量蚂蚁的选择概率会不一样,会将蚂蚁大致分为两批,一批走A→B→C ,另一批走A→D→C,单位时间内A→B→C通过蚂蚁也要大于 A→D→C,随着时间的推移,A→B→C的信息素越来越多,正反馈调节下,走此条路径的蚂蚁也越来越多。所以越短路径的浓度会越来越大,经过此短路径达到目的地的蚂蚁也会比其他路径多。这样大量的蚂蚁实践之后就找到了最短路径。所以这个过程本质可以概括为以下几点:
- 路径概率选择机制信息素踪迹越浓的路径,被选中的概率越大
- 信息素更新机制路径越短,路径上的信息素踪迹增长得越快
- 协同工作机制蚂蚁个体通过信息素进行信息交流。
蚂蚁在蚁群算法中通过信息素的传递和挥发来进行交流。通过信息素的传递和挥发,整个蚁群就会产生信息正反馈现象、种群分化等。
正反馈现象
由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象。某一路径上走过的蚂蚁越多,则后来者选择该路径的可能性就越大。
【人工智能】蚁群算法(密恐勿入)相关推荐
- 旅行商问题的蚁群算法
旅行商问题是一个经典的组合优化问题,它的提出和研究有着悠久的历史.最早的描述是1759年欧拉研究的骑士环游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点.19 ...
- 蚁群算法优化神经网络matlab源程序,粒子群优化神经网络的程序大集合
粒子群程序集合 866867259psobp psobp.m pso(粒子群算法)优化神经网络 粒子群算法(PSO)应用于神经网络优化[matlab] PSOt A Particle Swarm Op ...
- 机器学习(MACHINE LEARNING)MATLAB蚁群算法解决TSP问题
文章目录 1 蚁群算法 2 蚁群算法与TSP问题的关系 3 代码实现 1 蚁群算法 基本原理: (1)蚂蚁在携带等量的信息素一路释放 (2)信息素浓度会和路径的长度成反比 (3)下次蚂蚁来到该路口会选 ...
- 蚁群算法和简要matlab来源
1 蚁群算法原理 从1991由意大利学者 M. Dorigo,V. Maniezzo 和 A. Colorni 通过模拟蚁群觅食行为提出了一种基于群体的模拟进化算法--蚁群优化.极大关注,蚁群算法的特 ...
- 模拟退火与遗传与蚁群算法
如下问题:在某个给定的定义域X内,求函数f(x)对应的最优值.此处以最小值问题举例,形式化为: 如果 X是离散有限取值, ...
- 蚁群算法c语言实现加注释,蚁群算法代码实现
旅行商问题大都是用遗传算法求解,不过蚁群算法比它高效得多,在百度的蚁群算法吧里有人发了个注释清晰的代码,有兴趣的可以去研究一下蚁群算法和模拟退火算法,这两者都可以解决旅行商问题.而关于遗传算法和模拟退 ...
- 9.群智能算法及其应用: 粒子群优化算法及应用, 蚁群算法及其应用
本文内容为浙江工业大学王万良慕课课程的课程讲义, 将其整理为OneNote笔记同时添加了本人上课时的课堂笔记, 且主页中的思维导图就是根据课件内容整理而来, 为了方便大家和自己查看,特将此上传到CSD ...
- 蚁群算法一个VRP小实现
仍然是参考https://blog.csdn.net/baiyuxuan123123/article/details/114818224这个文章,编码做了一下这个题: 有一配送中心,负责将货物配送到指 ...
- python斗地主出牌算法_斗地主之用蚁群算法整理牌型:如何进行牌力估计
我们在前面讲到过,各牌手的牌力估计就是我们在用蚁群算法构造最优牌型时的启发性知识.启发性知识其实就是我们利用自己的经验对事物做出的判优性评估,或者说就是对事物价值的判断. 原则上,应用蚁群算法需要用到 ...
最新文章
- IC/FPGA笔试题分析(五)
- 转载的Web.config详解
- Spring中的事件机制
- android开发常用的颜色值
- 基于bs4库的HTML内容查找方法
- 【我的物联网成长记12】当物联网遇上边缘计算
- php里为什么要用ds,为什么选择DSBridge
- python编程可以自学么-风变编程的Python这么火,零基础可以自学吗?
- matlab中的显示精度
- Linux 网络基本配置
- HBuilder常用的快捷操作
- win10添加惠普hp laserjet 1010HB打印机
- UE高级性能剖析技术(三)-- Android内存分布和优化
- java 获取今天是星期几
- 关于海外博士和启明计划
- 计算机辅助技术英语,电子计算机辅助技术(CAD)
- 手把手教你安装 Fedora
- 论文领读|基于 VQVAE 的长文本生成
- 人工智能演义第三回:一脉相承得失公论,两度寒冬冷暖自知
- 兄dei,帮我开一下门吧~
热门文章