【人工智能】蚁群算法(密恐勿入)(一)

简介: 【人工智能】蚁群算法(密恐勿入)

蚁群算法(密恐勿入)


蚁群算法--给你一个感性认识


1. 算法简介


1.1 基本原理


蚁群算法是一种模拟蚂蚁觅食行为的启发式算法,被广泛应用于优化问题的求解。蚁群算法的基本思想是,将一群蚂蚁放在问题的解空间上,让它们通过信息素的传递和挥发,逐渐找到最优解。


1.1.1 模拟蚂蚁在简单地形,寻找食物


https://ucc.alicdn.com/images/user-upload-01/ce08ccb14559400788f4640d8aacfc34.gif

阶段一:在蚁群算法的初始阶段,我们在地图上不放置任何食物,因为蚂蚁需要在没有任何信息素的情况下开始摸索前进。一开始,蚂蚁们在洞外随机移动,试图找到食物的位置。每只蚂蚁的速度相同,它们会按照随机的方向前进,直到遇到障碍物或者到达了边界。此时,它们会再次随机选择一个方向,并继续前进。这个过程会持续进行,

https://ucc.alicdn.com/images/user-upload-01/43bb8baaa67c49d597fc8616bd9cfbaa.gif


阶段二:当蚂蚁们找到了食物后,它们会将一些信息素沿着它们的路径释放出来,并且在回到蚁巢的路上也会释放信息素。


蚁群之间的规则:


蚂蚁发现食物并将其带回巢穴时,通常会遵循已经标记的路径返回,即原路返回。在返回过程中,蚂蚁会释放归巢素和信息素,这些化学物质可以吸引其他蚂蚁跟随它的路径前往食物源。如果路径上有较多的归巢素或信息素,则越来越多的蚂蚁将会选择这条路径前往食物。


阶段三:当蚂蚁们回到巢穴时,它们会在原来的路径上释放更多信息素,增强这条路径的吸引力,并且尝试着寻找更短的路径。蚂蚁们会在路径上选择合适的地方停下来,释放信息素,然后返回巢穴。这个过程将持续进行,直到蚂蚁们找到了最优路径。


根据以上规则,随着时间的推移,蚂蚁们终会(可能)找到的最优路径。

image.gif


1.1.2 模拟蚂蚁在复杂地形,找到食物


https://ucc.alicdn.com/images/user-upload-01/7ff19ca3a3104f05acdc09794c229ab2.gif


https://ucc.alicdn.com/images/user-upload-01/541aa2729aef43b8a71e20df70cd50eb.gif


1.2 算法应用


蚁群算法已经应用于多种优化问题的求解,比如:


  • 旅行商问题
  • 图着色问题
  • 网络路由问题
  • 调度问题
  • 生产计划问题


在这些问题中,蚁群算法通常能够找到较优的解。此外,蚁群算法还可以用于机器学习领域中的聚类和分类等问题。


2. 算法解析


想要理解算法?需要去理解以下内容:


蚁群是如何找到解的?解的步骤是什么?

  1. 蚂蚁在初始时随机选择一个起点,并向前行走。
  2. 当蚂蚁走到一个节点时,它会选择一个下一个节点进行移动。蚂蚁选择下一个节点的概率与该节点上的信息素浓度成正比。信息素浓度越高的节点,被选择的概率也越高。
  3. 当蚂蚁移动到一个节点时,它会在该节点上释放一定量的信息素。
  4. 当蚂蚁找到解后,它会回到起点,并在路径上释放更多的信息素,增强这条路径的吸引力。
  5. 当其他蚂蚁在寻找解的过程中遇到已经被标记的路径时,它们会更有可能选择这条路径。
  6. 随着时间的推移,信息素会挥发,路径上信息素的浓度会逐渐降低。这样,路径上的信息素浓度会经历一个上升和下降的过程。
  7. 蚂蚁们会根据路径上的信息素浓度来选择下一个节点。当信息素浓度很高时,它们更有可能选择这条路径。
  8. 蚂蚁们持续寻找解,直到找到最优解或者达到预设的迭代次数。


作者个人理解:


蚂蚁个体之间就是通过这种间接的通信机制实现协同搜索最短路径的目标的。我们举例简单说明蚂蚁觅食行为:

4830ce58901a89c738aa7047d674c59b_8994c2a680724549a782ff71d9717bad.png


现阶段 蚂蚁有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的信息素越来越多,正反馈调节下,走此条路径的蚂蚁也越来越多。所以越短路径的浓度会越来越大,经过此短路径达到目的地的蚂蚁也会比其他路径多。这样大量的蚂蚁实践之后就找到了最短路径。所以这个过程本质可以概括为以下几点:


  • 路径概率选择机制信息素踪迹越浓的路径,被选中的概率越大
  • 信息素更新机制路径越短,路径上的信息素踪迹增长得越快
  • 协同工作机制蚂蚁个体通过信息素进行信息交流。

蚂蚁在蚁群算法中通过信息素的传递和挥发来进行交流。通过信息素的传递和挥发,整个蚁群就会产生信息正反馈现象、种群分化等。


正反馈现象


由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象。某一路径上走过的蚂蚁越多,则后来者选择该路径的可能性就越大。


💡 在一个人流量比较大的商场,人们往往会选择人流量比较大的走廊或者通道来走,因为人流量越大,越能够说明这个通道是正确的,这样就会产生一种信息正反馈现象,后来的人也会选择这条路线,进一步增加这条路线的人流量。与蚁群算法类似,人们会根据前人的经验来选择路线,从而产生类似的正反馈现象。


种群分化


种群分化是蚁群算法中的一个现象,当蚂蚁在搜索过程中遇到了局部最优解时,会一直围绕这个局部最优解寻找,并且释放信息素。这会导致其他蚂蚁也会被吸引过来,导致整个蚁群陷入局部最优解,而无法找到全局最优解的情况。这种现象在蚁群算法中是非常常见的,需要特别注意。为了避免种群分化,蚂蚁需要具有一定的随机性,同时需要及时更新信息素,以便发现全局最优解。


💡一个人在某个领域上有很高的专业技能,但是如果他过于专注于这个领域,就可能会失去对其他领域的了解和认识,进而导致对问题的认识出现偏差,甚至无法解决某些问题。


就比如图1. 我如果此刻将原有阻碍去掉一部分,此时只靠信息素交流的蚁群会产生种群分化现象。陷入了局部最有解。

https://ucc.alicdn.com/images/user-upload-01/6e685ae93acf4d2bacf26a3006ec4a9b.gif


当蚁群算法陷入局部最优解时,可以使用以下方法进行优化:


  1. 增加蚂蚁的数量。增加蚂蚁的数量可以增加搜索的广度,从而有更大的可能性找到全局最优解。
  2. 调整信息素挥发速度。通过适当降低信息素挥发速度,可以增加信息素在路径上的积累,从而增加蚂蚁选择该路径的概率。
  3. 引入随机因素。在蚁群算法中引入随机因素,可以使蚂蚁更具有探索性,从而有可能跳出局部最优解,进而找到全局最优解。
  4. 改变参数。通过改变蚁群算法中的参数,如信息素浓度、信息素挥发速度、启发式因子等,可以使算法更加灵活,从而更容易找到全局最优解。
  5. 使用局部搜索算法。在蚁群算法的基础上,可以结合局部搜索算法,如模拟退火算法、遗传算法等,来寻找全局最优解。


上述的情况,可以利用第三条和第四条解决。


相关文章
|
9天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
37 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
9天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
29 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
9天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
47 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
25天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
72 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
48 2
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
30 1
|
1月前
|
存储 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
37 0
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-17
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-17
60 0
|
29天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
6天前
|
算法 数据安全/隐私保护 索引
OFDM系统PAPR算法的MATLAB仿真,对比SLM,PTS以及CAF,对比不同傅里叶变换长度
本项目展示了在MATLAB 2022a环境下,通过选择映射(SLM)与相位截断星座图(PTS)技术有效降低OFDM系统中PAPR的算法实现。包括无水印的算法运行效果预览、核心程序及详尽的中文注释,附带操作步骤视频,适合研究与教学使用。

热门文章

最新文章

下一篇
无影云桌面