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=1N1??1? ?Γ(?v)Γ(k+1)Γ(k?v)? ?p(j+k?1)(j+k)?(t)0?ifjCim?(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=0N1??1? ?Γ(?v)Γ(k+1)Γ(k?v)? ?是歸一化因子, 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+k?1)(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)]β?0?ifjCim?(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+k?1)(j+k)?(t)=? ? ??cC(j+k?1)m?(t)?[τ(j+k?1)c?(t)]α[η(j+k?1)c?(t)]β[τ(j+k?1)(j+k)?(t)]α[η(j+k?1)(j+k)?(t)]β?0?if(j+k)C(j+k?1)m?(t)if(j+k)/C(j+k?1)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+k?1)(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)=? ? ??jl??if?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 1N3?Qa?只螞蟻作為精英螞蟻,并增強其已訪問路徑上的信息素濃度。
在下一次迭代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)Γ(m?v?1)? ?Δτ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)1?0?if?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
英文地址,請注明出處:http://en.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語言里,類型轉換和類型斷言是兩個不同的概念,它們在應用場景、語法格式以及底層實現上都存在明顯差異。 類型轉換主要用于將一種數據類型轉變為另一種數據類型,一般適用于基本數據類型之間的轉換,像整數與浮點數、字符串與字節…