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

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

3.算法应用——TSP问题


3.1 TSP旅行商介绍


首先,我们先回顾一下,什么是TSP旅行商问题:

053078959936cd6eb240112dc16f5b00_bcf93c39debf43a09919fcd182d67f20.png假设有一位邮递员,他从初始城市(任意一城市)出发,途径所有城市并回到初始城市,那么他一共会有


(n-1)!


条路径。从中找出那条最短路径,这就是TSP旅行商问题。

如果我们遍历的去找那个最短路径,那么随着城市的增加,计算量大大增加。

d80a9b3350c8e546ff92af5225e17363_fcf14cea7c574cf385317241a5a9a410.png


3.2 利用蚁群算法解决TSP问题


在这里,蚂蚁仅有信息素这一项能力是不够的。所以我们给与蚂蚁一些其他的能力

  • 蚂蚁在一次旅行中不会重复访问相同的城市
  • 蚂蚁可以知晓城市之间的距离。
  • 蚂蚁在路上会释放信息素
  • 蚂蚁在选择下一个城市的概率依靠以下公式:

image.png


参数名称 参数意义 参数设置过大 参数设置过小
信息素因子ɑ 反映了蚂蚁运动过程中路径上积累的信息素的量在指导蚁群搜索中的相对重要程度。取值范围通常在[1, 4]之间。 蚂蚁选择以前已经走过的路可能性较大,容易使随机搜索性减弱 蚁群易陷入纯粹的随机搜索,使种群陷入局部最优
启发函数因子𝛽 反映了启发式信息在指导蚁群搜索中的相对重要程度,蚁群寻优过程中先验性、确定性因素作用的强度取值范围在[0, 5]之间 虽然收敛速度加快,但是易陷入局部最优 蚁群易陷入纯粹的随机搜索,很难找到最优解

2036ab7903212dc9b6b5cda1882a29db_94fb77abe01043a3ae3825e0cfa40faa.png

image.png

例:下图为计算蚂蚁从起点城市2到可达城市的概率(套公式,很好理解):


39fb17fd0e071e9d46228efedb835064_69e40bf6131b45a18ccf929982b76bcb.png


图2. 此图和此节部分内容借鉴于秃头小苏:蚁群算法(实例帮助理解)

OK,蚂蚁有了这些能力后,我们只需要控制一下流程,就可以解决TSP问题了,下面是给出了此问题的一种常用的解决流程

蚁群算法解决TSP问题的算法流程

初始化信息素浓度矩阵image.png,启发式函数image.png,以及蚂蚁的位置。

每只蚂蚁按照信息素和启发式函数的概率选择下一个城市。

记录蚂蚁的路径和距离。

在所有蚂蚁走完所有城市之后,根据蚂蚁走过的路径和距离更新信息素浓度矩阵image.png

如果未达到停止条件,则返回步骤2。


其中,停止条件可以是迭代次数达到预设值或者最佳解不再改变。


起点的选择对最短路径是有影响的。不同的起点可能会导致不同的最短路径。在蚁群算法中,通过随机选择起始点,可以增加搜索的广度,从而有更大的可能性找到全局最优解。


信息素更新的时机一般有两种方式:


在每个迭代周期结束后进行更新,即在所有蚂蚁完成当前迭代周期后,根据其路径长度和信息素更新信息素浓度。

在每只蚂蚁走遍所有城市之后,立即更新信息素浓度。

信息素更新公式:

image.png

其中,ρ是信息素挥发速度,image.png是蚂蚁 k 在迭代 t 中走过路径 i 到 j 所留下的信息素,m 是蚂蚁的数量。


在每个迭代周期结束后进行更新或在每只蚂蚁走遍所有城市之后立即更新信息素浓度均可。


Delta tau 是蚂蚁 k 在迭代 t 中走过路径 i 到 j 所留下的信息素,不同的 Delta tau 规则有以下几种:

image.png


以上规则中,静态规则是最简单的,但是可能会导致信息素的浓度过高或过低,从而影响搜索效果。动态规则可以根据搜索的进展情况动态调整信息素的浓度,适应性更强。最大值规则可以防止信息素浓度过高,但可能会导致搜索无法跳出局部最优解。


例(静态规则):下图为信息素的更新过程,假设初始时各路径信息素浓度为10。

eedfd6a16f9143c67885ce705bf48910_182929a00b1d4471b509cc4872201397.png


总结一下:


蚁群算法流程:


初始化信息素浓度矩阵𝜏_{ij}(t),启发式函数𝜂_{ij},以及蚂蚁的位置。

每只蚂蚁按照信息素和启发式函数的概率选择下一个城市。

记录蚂蚁的路径和距离。

在所有蚂蚁走完所有城市之后,根据蚂蚁走过的路径和距离更新信息素浓度矩阵𝜏_{ij}(t)。

如果未达到停止条件,则返回步骤2。

其中,停止条件可以是迭代次数达到预设值或者最佳解不再改变。


起点的选择对最短路径是有影响的。不同的起点可能会导致不同的最短路径。在蚁群算法中,通过随机选择起始点,可以增加搜索的广度,从而有更大的可能性找到全局最优解。


信息素更新的时机一般有两种方式:


在每个迭代周期结束后进行更新,即在所有蚂蚁完成当前迭代周期后,根据其路径长度和信息素更新信息素浓度。

在每只蚂蚁走遍所有城市之后,立即更新信息素浓度。

信息素更新公式:

image.png

其中,ρ 是信息素挥发速度,image.png是蚂蚁 k 在迭代 t 中走过路径 i 到 j 所留下的信息素,m 是蚂蚁的数量。


在每个迭代周期结束后进行更新或在每只蚂蚁走遍所有城市之后立即更新信息素浓度均可。


Delta tau 是蚂蚁 k 在迭代 t 中走过路径 i 到 j 所留下的信息素,不同的 Delta tau 规则有以下几种:

image.png


相关文章
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【自然语言处理】TF-IDF算法在人工智能方面的应用,附带代码
TF-IDF算法在人工智能领域,特别是自然语言处理(NLP)和信息检索中,被广泛用于特征提取和文本表示。以下是一个使用Python的scikit-learn库实现TF-IDF算法的简单示例,并展示如何将其应用于文本数据。
115 65
|
17天前
|
机器学习/深度学习 人工智能 算法
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
眼疾识别系统,使用Python作为主要编程语言进行开发,基于深度学习等技术使用TensorFlow搭建ResNet50卷积神经网络算法,通过对眼疾图片4种数据集进行训练('白内障', '糖尿病性视网膜病变', '青光眼', '正常'),最终得到一个识别精确度较高的模型。然后使用Django框架开发Web网页端可视化操作界面,实现用户上传一张眼疾图片识别其名称。
52 9
【眼疾病识别】图像识别+深度学习技术+人工智能+卷积神经网络算法+计算机课设+Python+TensorFlow
|
2天前
|
人工智能 自然语言处理 算法
【人工智能】TF-IDF算法概述
TF-IDF算法,全称Term Frequency-Inverse Document Frequency(词频-逆文档频率),是一种在信息检索和文本挖掘领域广泛应用的加权技术。它通过评估一个词语在文档中的重要程度,来挖掘文章中的关键词,进而用于文本分析、搜索引擎优化等场景。其核心思想是:如果某个词或短语在一篇文章中出现的频率高(TF高),且在其他文章中很少出现(IDF也高),则认为这个词或短语具有很好的类别区分能力,适合用来代表这篇文章的内容。 具体而言,TF-IDF由两部分组成,即词频(TF)和逆文档频率(IDF)。词频(TF)指的是某一个给定的词在该文件中出现的频率。这个数值通常会被归一化
6 3
|
2天前
|
机器学习/深度学习 人工智能 算法
【人工智能】线性回归模型:数据结构、算法详解与人工智能应用,附代码实现
线性回归是一种预测性建模技术,它研究的是因变量(目标)和自变量(特征)之间的关系。这种关系可以表示为一个线性方程,其中因变量是自变量的线性组合。
9 2
|
2天前
|
机器学习/深度学习 人工智能 算法
【人工智能】传统语音识别算法概述,应用场景,项目实践及案例分析,附带代码示例
传统语音识别算法是将语音信号转化为文本形式的技术,它主要基于模式识别理论和数学统计学方法。以下是传统语音识别算法的基本概述
8 2
|
28天前
|
机器学习/深度学习 人工智能 监控
人工智能 - 目标检测算法详解及实战
目标检测需识别目标类别与位置,核心挑战为复杂背景下的多目标精准快速检测。算法分两步:目标提取(滑动窗口或区域提议)和分类(常用CNN)。IoU衡量预测与真实框重叠度,越接近1,检测越准。主流算法包括R-CNN系列(R-CNN, Fast R-CNN, Faster R-CNN),YOLO系列,SSD,各具特色,如Faster R-CNN高效候选区生成与检测,YOLO适用于实时应用。应用场景丰富,如自动驾驶行人车辆检测,安防监控,智能零售商品识别等。实现涉及数据准备、模型训练(示例YOLOv3)、评估(Precision, Recall, mAP)及测试。
61 5
|
26天前
|
算法 Java
人工智能算法问题之复制算法工作如何解决
人工智能算法问题之复制算法工作如何解决
27 0
|
29天前
|
算法 Java
Java演进问题之标记-复制算法导致更多的内存占用如何解决
Java演进问题之标记-复制算法导致更多的内存占用如何解决
|
6天前
|
算法
基于模糊控制算法的倒立摆控制系统matlab仿真
本项目构建了一个基于模糊控制算法的倒立摆控制系统,利用MATLAB 2022a实现了从不稳定到稳定状态的转变,并输出了相应的动画和收敛过程。模糊控制器通过对小车位置与摆的角度误差及其变化量进行模糊化处理,依据预设的模糊规则库进行模糊推理并最终去模糊化为精确的控制量,成功地使倒立摆维持在直立位置。该方法无需精确数学模型,适用于处理系统的非线性和不确定性。
基于模糊控制算法的倒立摆控制系统matlab仿真
|
5天前
|
机器学习/深度学习 算法 定位技术
MATLAB - 遗传算法(GA)求解旅行商问题(TSP)
MATLAB - 遗传算法(GA)求解旅行商问题(TSP)
12 3

热门文章

最新文章