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

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

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


相关文章
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
26 2
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
10 1
|
4天前
|
机器学习/深度学习 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-15
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-15
19 1
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-14
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-14
14 1
|
4天前
|
存储 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
17 0
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-17
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-17
26 0
|
4天前
|
存储 机器学习/深度学习 人工智能
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(下)
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(下)
16 0
|
17天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
2天前
|
存储
基于遗传算法的智能天线最佳阵列因子计算matlab仿真
本课题探讨基于遗传算法优化智能天线阵列因子,以提升无线通信系统性能,包括信号质量、干扰抑制及定位精度。通过MATLAB2022a实现的核心程序,展示了遗传算法在寻找最优阵列因子上的应用,显著改善了天线接收功率。
|
4天前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。