2022年SEVC SCI2区,分数阶蚁群算法FACA:一种基于分数阶长期记忆的合作学习方法,深度解析+性能实测

目录

    • 1.摘要
    • 2.分数阶微积分基础知识
    • 3.分数阶蚁群算法FACA
    • 4.分数阶蚁群算法FACA数学证明与分析
    • 5.结果展示
    • 6.参考文献
    • 7.代码获取
    • 8.算法辅导·应用定制·读者交流


1.摘要

本文提出了一种新颖分数阶蚁群算法(Fractional-Order Ant Colony Algorithm, FACA),这是一种基于分数阶长期记忆的协同学习方法。整数阶蚁群算法每只蚂蚁根据由信息素值以及其当前位置邻接边上的附加信息计算出的转移概率来选择下一条路径,FACA引入了分数阶微积分中的长期记忆机制,通过更复杂的转移表达式模拟具有前瞻性的决策行为,从而增强搜索能力。

2.分数阶微积分基础知识

几种典型分数阶微积分定义

3.分数阶蚁群算法FACA

在传统蚁群算法中,蚂蚁在节点 i i i处计算转移概率 p i j p_{ij} pij,并据此按照一定规则选择下一个节点 j j j。此过程蚂蚁本身并不具备记忆能力,我们希望对该机制加以改进:即在获取 p i j p_{ij} pij 并转移到节点 j j j后,继续计算 p j k p_{jk} pjk,选择节点 k k k,再计算 p k l p_{kl} pkl,依此类推,从而获得一条未来的转移概率序列。利用该序列,蚂蚁便可在初始节点 i i i做出比传统算法更优的选择。

这里引入了分数阶微积分中的长期记忆思想,并通过重写转移概率表达式来获取前瞻性转移序列。这种表达式的数学动因源于分数阶导数理论,其用更复杂的函数替代了传统的简单差分表达方式。
m p i j v ( t ) = 1 f { p i j ( t ) + ∑ k = 1 N 1 − 1 ∣ Γ ( k − v ) Γ ( − v ) Γ ( k + 1 ) ∣ p ( j + k − 1 ) ( j + k ) ( t ) i f j ∈ C i m ( t ) a n d ( j + k ) ∈ C i m ( t ) 0 i f j ∉ C i m ( t ) ^mp_{ij}^v(t)=\frac{1}{f} \begin{cases} p_{ij}(t)+\sum_{k=1}^{N_1-1}\left|\frac{\Gamma(k-v)}{\Gamma(-v)\Gamma(k+1)}\right|p_{(j+k-1)(j+k)}(t) & ifj\in C_i^m(t) \\ & and(j+k)\in C_i^m(t) \\ 0 & ifj\notin C_i^m(t) & \end{cases} mpijv(t)=f1 pij(t)+k=1N11 Γ(v)Γ(k+1)Γ(kv) p(j+k1)(j+k)(t)0ifjCim(t)and(j+k)Cim(t)ifj/Cim(t)
其中, f = ∑ k = 0 N 1 − 1 ∣ Γ ( k − v ) Γ ( − v ) Γ ( k + 1 ) ∣ f=\sum_{k=0}^{N_1-1}\left|\frac{\Gamma(k-v)}{\Gamma(-v)\Gamma(k+1)}\right| f=k=0N11 Γ(v)Γ(k+1)Γ(kv) 是归一化因子, C i m ( t ) C_{i}^{m}(t) Cim(t)表示从第 i i i 个节点到第 j j j 个节点的 v v v 阶转移概率,其中第 i i i 个节点与其相邻节点构成了一组下一步可选节点。 m p i j v ( t ) ^{m}p_{ij}^v(t) mpijv(t)是邻边 ( i , j ) (i,j) (i,j)上关于 p i j ( t ) p_{ij}(t) pij(t)
p ( j + k − 1 ) ( j + k ) ( t ) p_{(j+k-1)(j+k)}(t) p(j+k1)(j+k)(t) v v v阶绝对分数阶差分:
p i j ( t ) = { [ τ i j ( t ) ] α [ η i j ( t ) ] β ∑ c ∈ C i m ( t ) [ τ i c ( t ) ] α [ η i c ( t ) ] β i f j ∈ C i m ( t ) 0 i f j ∉ C i m ( t ) p_{ij}(t)= \begin{cases} \frac{\left[\tau_{ij}(t)\right]^{\alpha}\left[\eta_{ij}(t)\right]^{\beta}}{\sum_{c\in C_{i}^{m}(t)}\left[\tau_{ic}(t)\right]^{\alpha}\left[\eta_{ic}(t)\right]^{\beta}} & ifj\in C_{i}^{m}(t) \\ 0 & ifj\notin C_{i}^{m}(t) & \end{cases} pij(t)= cCim(t)[τic(t)]α[ηic(t)]β[τij(t)]α[ηij(t)]β0ifjCim(t)ifj/Cim(t)
p ( j + k − 1 ) ( j + k ) ( t ) = { [ τ ( j + k − 1 ) ( j + k ) ( t ) ] α [ η ( j + k − 1 ) ( j + k ) ( t ) ] β ∑ c ∈ C ( j + k − 1 ) m ( t ) [ τ ( j + k − 1 ) c ( t ) ] α [ η ( j + k − 1 ) c ( t ) ] β i f ( j + k ) ∈ C ( j + k − 1 ) m ( t ) 0 i f ( j + k ) ∉ C ( j + k − 1 ) m ( t ) p_{(j+k-1)(j+k)}(t)= \begin{cases} \frac{\left[\tau_{(j+k-1)(j+k)}(t)\right]^\alpha\left[\eta_{(j+k-1)(j+k)}(t)\right]^\beta}{\sum_{c\in C_{(j+k-1)}^m(t)}\left[\tau_{(j+k-1)c}(t)\right]^\alpha\left[\eta_{(j+k-1)c}(t)\right]^\beta} & if(j+k)\in C_{(j+k-1)}^m(t) \\ 0 & if(j+k)\notin C_{(j+k-1)}^m(t) & \end{cases} p(j+k1)(j+k)(t)= cC(j+k1)m(t)[τ(j+k1)c(t)]α[η(j+k1)c(t)]β[τ(j+k1)(j+k)(t)]α[η(j+k1)(j+k)(t)]β0if(j+k)C(j+k1)m(t)if(j+k)/C(j+k1)m(t)

对于FACA,当 k ≥ 1 k\geq1 k1时,所有候选的 ( j + k ) (j+k) (j+k)节点必须为当前第 i i i个节点的邻居节点。除了第 i i i个节点的邻接节点外,FACA 还包括连续多个步骤中的前瞻性节点,以构造具有更强前瞻性的转移概率。FACA 的分数阶转移概率 m p i j v ( t ) ^mp_{ij}^v(t) mpijv(t) 利用了当前位置邻域内的最大信息,包括 p i j ( t ) p_{ij}(t) pij(t) p ( j + k − 1 ) ( j + k ) ( t ) p_{(j+k-1)(j+k)}(t) p(j+k1)(j+k)(t),以提升路径选择的合理性,这有助于 FACA 在搜索能力与利用能力之间实现更优的分数阶非线性平衡。

为了在第 t t t次迭代中尽可能避免第 m m m只蚂蚁陷入局部最优,系统将候选集合中已选定的节点集记作 S i m ( t ) ⊂ C i m ( t ) S_i^m(t)\subset C_i^m(t) Sim(t)Cim(t),表示如下:
S i m ( t ) = { j if  p i j m ( t ) = max ⁡ [ p i c v m ( t ) ] , j , c ∈ C i m ( t ) l if  d i l ( t ) ≤ ξ d i j ( t ) , l , j ∈ C i m ( t ) ∅ otherwise S_i^m(t) = \begin{cases} j & \text{if } p_{ij}^{m}(t) = \max\left[p_{ic}^{v\,m}(t)\right],\ j, c \in C_i^m(t) \\ l & \text{if } d_{il}(t) \leq \xi d_{ij}(t),\ l, j \in C_i^m(t) \\ \varnothing & \text{otherwise} \end{cases} Sim(t)= jlif pijm(t)=max[picvm(t)], j,cCim(t)if dil(t)ξdij(t), l,jCim(t)otherwise

此外,在第 t t t次迭代完成后,我们将所有蚂蚁的已访问路径长度按从短到长进行排序( L 1 ( t ) ≤ ⋯ ≤ L m ( t ) ≤ ⋯ ≤ L N 3 ( t ) ≤ ⋯ ≤ L Q a ( t ) L^1(t)\leq\cdots\leq L^m(t)\leq\cdots\leq L^{N_3}(t)\leq\cdots\leq L^{Q_a}(t) L1(t)Lm(t)LN3(t)LQa(t)),其中 Q a Q_a Qa 表示蚁群中蚂蚁的初始总数量, L m ( t ) L^m(t) Lm(t)是第 t t t次迭代中第 m m m只蚂蚁所访问路径的总长度。
为了充分利用第 t t t次迭代中表现优异的精英蚂蚁所获得的有价值信息,我们选择路径较短
的前 1 ≤ N 3 ≤ Q a 1\leq N_3\leq Q_a 1N3Qa只蚂蚁作为精英蚂蚁,并增强其已访问路径上的信息素浓度。
在下一次迭代FACA 的分数阶信息素更新:
τ i j ( t + 1 ) = ( 1 − ρ ) τ i j ( t ) + ∑ m = 1 N 3 ∣ Γ ( m − v − 1 ) Γ ( − v ) Γ ( m ) ∣ Δ τ i j m ( t ) \tau_{ij}(\mathrm{t}+1)=(1-\rho)\tau_{ij}(\mathrm{t})+\sum_{m=1}^{N_{3}}\left|\frac{\Gamma(m-v-1)}{\Gamma(-v)\Gamma(m)}\right|\Delta\tau_{ij}^{\mathrm{m}}(t) τij(t+1)=(1ρ)τij(t)+m=1N3 Γ(v)Γ(m)Γ(mv1) Δτijm(t)

m m m 个被选中的精英蚂蚁的信息素增量 Δ τ i j m ( t ) \Delta \tau_{ij}^{m}(t) Δτijm(t)
Δ τ i j m ( t ) = { 1 L m ( t ) if the  m th elitist ant visited edge  ( i , j ) 0 if the  m th elitist ant doesn’t visit edge  ( i , j ) \Delta \tau_{ij}^{m}(t) = \begin{cases} \frac{1}{L^m(t)} & \text{if the $m$th elitist ant visited edge } (i,j) \\ 0 & \text{if the $m$th elitist ant doesn't visit edge } (i,j) \end{cases} Δτijm(t)={Lm(t)10if the mth elitist ant visited edge (i,j)if the mth elitist ant doesn’t visit edge (i,j)

FACA伪代码

4.分数阶蚁群算法FACA数学证明与分析

作者给出了详细分析,挺数学 赞~

5.结果展示

论文仿真-TSP

6.参考文献

[1] Yi-Fei P U, Siarry P, Wu-Yang Z H U, et al. Fractional-order ant colony algorithm: a fractional long term memory based cooperative learning approach[J]. Swarm and Evolutionary Computation, 2022, 69: 101014.

7.代码获取

xx

8.算法辅导·应用定制·读者交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/87108.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/87108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java+vue+SpringBoo数字科技风险报告管理系统(程序+数据库+报告+部署教程+答辩指导)

源代码数据库LW文档(1万字以上)开题报告答辩稿ppt部署教程代码讲解代码时间修改工具 技术实现 开发语言:后端:Java 前端:vue框架:springboot数据库:mysql 开发工具 JDK版本:JDK1.…

YOLOv12_ultralytics-8.3.145_2025_5_27部分代码阅读笔记-augment.py

augment.py ultralytics\data\augment.py 目录 augment.py 1.所需的库和模块 2.class BaseTransform: 3.class Compose: 4.class BaseMixTransform: 5.class CutMix(BaseMixTransform): 6.class CopyPaste(BaseMixTransform): 7.def v8_transforms(dataset, img…

跨芯片 AI 算子库 FlagGems 正式加入PyTorch 基金会生态项目体系

2025年北京智源大会 PyTorch Day China 论坛上,PyTorch 基金会执行董事 Matt White 宣布高性能通用 AI 算子库 FlagGems 项目获得批准,正式加入 PyTorch 生态项目体系。Pytorch基金会于6月26日在推特上进行了官方宣布。 作为唯一支持多种AI芯片架构的算…

vue + vue-router写登陆验证的同步方法和异步方法,及页面组件的分离和后端代码

先写一个用vue cdn写一个登陆验证的小示例后端代码 前端719.html <div id"app"><div id"loginForm">//路由层&#xff0c;登陆页和后台主页<router-link to"/">Login</router-link><router-link to"/home&quo…

.netcore 一个mvc到静态html实现

一、新建Mvc项目 Program.cs添加拦截 二、添加一个集成测试 将页面转为html到wwwroot下面 UnitGenHtml.cs using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.VisualStudio.TestPlatform.TestHost;namespace SaaS.OfficialWeb…

实现Taro小程序+nut-ui左滑删除效果

Taro小程序开发中&#xff0c;使用nut-ui组件&#xff0c;实现左滑删除卡片效果&#xff08;自定义删除按钮样式&#xff09; html代码部分 <nut-swipe class"carBox" v-for"(item, index) in carList" :key"item" :ref"(el) > se…

LLM 系列(五):模型训练篇

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…

Oracle LogMiner分析日志的三种方法示例

Oracle LogMiner分析日志的三种方法示例 方法一:Online Catalog作为日志挖掘字典自动获取日志模式手动获取日志模式方法二:Redo Log作为日志挖掘字典自动获取日志模式手动获取日志模式方法三:Flat File作为日志挖掘字典自动获取日志模式手动获取日志模式📖 Oracle LogMine…

Java 中 List.stream() 的全面使用指南(含完整示例)

标签&#xff1a;Java8, Stream API, 函数式编程, 集合操作 一、前言 随着 Java 8 的推出&#xff0c;Stream API 成为了处理集合数据的一种高效方式。List.stream() 是 Java Stream API 的入口方法之一&#xff0c;它允许开发者将集合转换为流&#xff0c;并通过链式调用实现…

香港 8C 站群服务器买来可以做哪些业务?

香港8C站群服务器&#xff08;即提供8个不同C段IP地址的服务器&#xff09;凭借多IP独立分配、低延迟网络及免备案优势&#xff0c;适用于以下关键业务场景&#xff1a; 一、SEO优化与搜索引擎运营 SEO站群搭建&#xff1a;为 80-100 个网站分配 8 个不同 C 段 IP &#xff0…

UI前端与数字孪生融合新趋势:智慧医疗的可视化诊断辅助

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 一、引言&#xff1a;数字孪生重塑智慧医疗诊断范式 在医疗数字化转型的浪潮中&#xff0c;数…

OpenBayes 一周速览丨Nanonets-OCR-s深度语义理解,精准结构化转换;HLE人类问题推理基准上线,含2.5k题目,助力封闭式评估体系构建

公共资源速递 5 个公共数据集&#xff1a; * Brain Tumor 脑肿瘤数据集 * HLE 人类问题推理基准数据集 * OpenThoughts3-1.2M 推理数据集 * Nemotron-Personas 人物角色数据集 * OpenMathReasoning 数学推理数据集 14 个公共教程&#xff1a; 音频生成 * 2 视频生成 *…

ABB CH-3185 3 bhl 000986 p 1006 ab ability 800 xa自动化系统

安全性总结(续) 操作环境 在AC 800M控制器系统上线之前&#xff0c;调查哪些环境条件适用。请特别注意以下几点: 控制器不得暴露在超过相关技术规范中给定值的条件下。 控制器不得在暴露于强电气干扰的环境中使用。电机可能产生超过设备允许水平的干扰&#xff0c;例如在维…

【算法】动态规划 斐波那契类型:1137. 第 N 个泰波那契数

1137. 第 N 个泰波那契数 简单 相关标签 premium lock icon 相关企业 提示 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 示例 1&#xff1a; 输入&am…

图像编辑新变革 !ComfyUI-Kontext-fp8本地部署教程,120B参数对标闭源巨头

一、介绍 ComfyUI 是一个强大的、模块化的 Stable Diffusion 界面与后端项目。该用户界面将允许用户使用基于图形/节点/流程图的界面设计和执行高级稳定的扩散管道。 关于 FLUX.1 Kontext Dev FLUX.1 Kontext 是 Black Forest Labs 最新推出的突破性多模态图像编辑模型&#…

软件安装——下载安装ollama

一、下载&#xff08;模型管理工具&#xff09;&#xff1a; 下载地址&#xff1a;Ollama 二、自定义安装&#xff1a; 1.令行安装方式如下&#xff1a; 在OllamaSetup.exe所在目录打开cmd命令行&#xff0c;然后命令如下&#xff1a; OllamaSetup.exe /DIRE:\AllEdit\Ai…

springboot集成mqtt收发消息

在 Spring Boot 中使用 MQTT 可以通过集成 Eclipse Paho 或 HiveMQ 等客户端库实现。以下是完整的整合步骤&#xff0c;包括配置、发布和订阅消息的示例。 1. 添加 MQTT 依赖 在 pom.xml 中添加 Paho MQTT 客户端依赖&#xff1a; <dependency><groupId>org.spri…

Java 编程之备忘录模式

前言 有时候&#xff0c;我们真希望人生能有“CtrlZ”。在日常生活中&#xff0c;我们经常使用“撤销”功能&#xff0c;例如在写 Word、画图、写代码时一不小心操作失误&#xff0c;就希望能回到之前的状态。这种**“状态快照 恢复”**机制&#xff0c;在设计模式中就叫做&a…

yolov13+bytetrack的目标跟踪实现

目录 1. 介绍 2. 相关工作 (Related Works) 3. 方法 (Method) 4. 统计和结果 5. 技术实现 ByteTrack: Multi-Object Tracking by Associating Every Detection Box 1. Motivation 2. BYTE 3. ByteTrack 具体代码 UI界面设计 历史记录 完整代码实现UI界面 1. 介绍 …

GO类型转换与断言面试题及参考答案

Go 中类型转换与类型断言的区别是什么? 在Go语言里,类型转换和类型断言是两个不同的概念,它们在应用场景、语法格式以及底层实现上都存在明显差异。 类型转换主要用于将一种数据类型转变为另一种数据类型,一般适用于基本数据类型之间的转换,像整数与浮点数、字符串与字节…