JCR一區文章,壯麗細尾鷯鶯算法Superb Fairy-wren Optimization-附Matlab免費代碼

本文提出了一種新穎的基于群體智能的元啟發式優化算法——壯麗細尾鷯優化算法(SFOA),SFOA從精湛的神仙鶯的生活習性中汲取靈感。融合了精湛的神仙鶯群體中幼鳥的發育、繁殖后鳥類喂養幼鳥的行為以及它們躲避捕食者的策略。通過模擬幼鳥生長、繁殖和攝食階段對應的精湛的三種自然行為以及躲避天敵,建立了數學模型。該算法結合了壯麗細尾鷯鶯群體中幼鳥的發育,繁殖后喂養幼鳥的行為,以及它們躲避捕食者的策略,于2025年2月最新發表在JCR 1區,中科院3區 SCI計算機類期刊 Cluster Computing。
在這里插入圖片描述

3.2 初始化

所提出的 SFOA 方法是一種基于種群的技術,它通過模擬評估時間的變化來模擬其在空間中的搜索能力,以有效地解決現實環境中的優化問題。每個 SFOA 成員將根據搜索空間中問題文章確定問題決策變量的值。每個 SFOA 成員是問題的候選解決方案,并使用向量進行數學建模。向量的每個元素對應于決策變量,所有 SFOA 成員共同構成整個算法 (公式 (1))。同時,每個 SFOA 成員將在算法開始時使用公式 (2) 初始化為初始位置。

X = ( u b ? l b ) × r a n d ( 0 , 1 ) + l b X = (ub - lb) \times rand(0, 1) + lb X=(ub?lb)×rand(0,1)+lb

其中 X 是 SFOA 全局矩陣, X i X_i Xi? 是第 i 個 SFOA 成員(候選解), x i , d x_{i,d} xi,d? 是搜索空間中 SFOA 的 D 維(決策變量),N 是全局成員的數量,rand 是區間 [0,1] 中的隨機數,ub 和 lb 分別表示決策變量的上界和下界。

3.3 SFOA 的數學模型

在所提出的 SFOA 方法的設計中,問題求解空間中種群成員的位置基于壯麗細尾鷯鶯幼鳥和成鳥之間自然行為的模擬進行更新。在這個自然過程中,幼鳥首先進入生長階段,然后使用喂食代碼孵化幼鳥至成熟,或使用其防御機制來嚇跑捕食者。因此,在評估中,SFOA 種群成員的位置將在三個階段進行更新:(i) 基于幼鳥生長的廣泛探索,(ii) 基于喂食代碼繁殖的探索,以及 (iii) 基于模擬捕食者防御行為的探索。

3.3.1 幼鳥生長階段

在 SFOA 的生長階段中,種群成員的位置根據需要大量經驗的幼鳥生長動態模擬進行更新。由于種群中幼鳥的數量很大,這對種群的生存不利,因此通過不斷學習大量經驗并不斷更新幼鳥快速生長時的位置來模擬 SFOA 成員在問題求解空間中的位置。學習經驗是一系列過程運動,模擬導致 SFOA 成員位置的廣泛變化,從而增加全局搜索算法的探索能力。SFOA 將通過公式 (3) 確定每個成員的位置,以獲得更好的目標函數。

X n e w i , j = X i , j t + ( l b + ( u b ? l b ) × r a n d ) , r > 0.5 X_{new_{i,j}} = X_{i,j}^t + (lb + (ub - lb) \times rand), \quad r > 0.5 Xnewi,j??=Xi,jt?+(lb+(ub?lb)×rand),r>0.5

其中 X n e w i , j X_{new_{i,j}} Xnewi,j?? 表示種群更新后 j 維中壯麗細尾鷯鶯的位置, X i , j X_{i,j} Xi,j? 表示迭代后 j 維中壯麗細尾鷯鶯的位置,rand 是 [0,1] 之間的隨機數。

3.3.2 繁殖和喂養階段

在第二階段中,種群成員的位置通過模擬繁殖和喂養期間壯麗細尾鷯鶯的教學機制進行更新。當風險閾值較低時,雌鳥將進入繁殖階段,并使用獨特的父性測試孵化卵以防止外來物種入侵。危險閾值的計算方法如公式 (5) 所示。

s = r 1 ? 20 + r 2 ? 20 s = r_1 * 20 + r_2 * 20 s=r1??20+r2??20

其中, r 1 r_1 r1? r 2 r_2 r2? 都是正態分布的隨機數。

由于 SFOA 的合作繁殖特性,卵全年由多只鳥孵化以實現識別教學。在這個周期 (m) 中,每個 SFOA 都不是靜止的,而是輪流進行喂養和教學。模擬這種現象導致 SFOA 成員位置的微小變化,增加了算法對局部搜索的探索能力。同時,定義一個因子 p 表示成熟度,教學周期越接近成熟,每個 SFOA 成員的活動范圍越大。基于教學繁殖期間位置變化的建模,每個 SFOA 成員的新位置通過公式 (5) 計算。然后,如果這個新位置提高了目標函數的值,則替換相應的成員。

X n e w i , j = X G + ( X b X i , j t ) × p , r < 0.5 and s < 20 X_{new_{i,j}} = X_G + (X_b X_{i,j}^t) \times p, \quad r < 0.5 \quad \text{and} \quad s < 20 Xnewi,j??=XG?+(Xb?Xi,jt?)×p,r<0.5ands<20
X G = X b × C X_G = X_b \times C XG?=Xb?×C

其中 X b X_b Xb? 表示當前最優位置,C 是值為 0.8 的常數。

p = sin ? ( ( u b ? l b ) × 2 + ( u b ? l b ) × m ) p = \sin((ub - lb) \times 2 + (ub - lb) \times m) p=sin((ub?lb)×2+(ub?lb)×m)

m = ( F E s M a x F E s ) × 2 m = \left( \frac{FEs}{MaxFEs} \right) \times 2 m=(MaxFEsFEs?)×2

其中,FEs 表示當前評估次數,MaxFEs 表示評估的最大次數。

3.3.3 避免自然敵人階段

在 SFOA 的捕食者回避階段中,種群成員的位置根據壯麗細尾鷯鶯對捕食者攻擊的防御機制進行更新。當壯麗細尾鷯鶯被捕食者發現時,它會快速奔跑,不斷拍打翅膀以擾亂捕食者的視線。同時,會發出警告聲以提醒其他 SFOA 成員。在這種情況下,被捕食者盯上的 SFOA 成員會迅速逃脫,導致成員位置發生輕微變化。其他成員則會在空中盤旋以避免捕食者,導致位置發生較大變化。SFOA 成員的這兩種不同表現力增強了算法在問題求解空間中的搜索范圍,并提高了利用局部搜索的能力,它們的運動模式由數學公式 (9) 描述。

X n e w i , j = X b + X i , j × l × k , r < 0.5 and s > 20 X_{new_{i,j}} = X_b + X_{i,j} \times l \times k, \quad r < 0.5 \quad \text{and} \quad s > 20 Xnewi,j??=Xb?+Xi,j?×l×k,r<0.5ands>20

其中l是萊維飛行隨機步長,控制算法跳轉到局部最優 k 是自適應飛行平衡因子,公式如公式 (10) 所示,該公式調節了鳥群與l的飛行距離。同時, X b X_b Xb? 被添加以控制鳥群的運動方向,防止鳥群移動到不良位置,導致評估次數增加。

k = 0.2 × sin ? ( π 2 ? w ) k = 0.2 \times \sin \left( \frac{\pi}{2} - w \right) k=0.2×sin(2π??w)

w = π 2 × F E s M a x F E s w = \frac{\pi}{2} \times \frac{FEs}{MaxFEs} w=2π?×MaxFEsFEs?

其中 w 是呼叫頻率值,在躲避自然敵人的飛行過程中起到早期預警的作用。

3.4 SFOA 的實現

種群的初始化:定義了種群 N、維度 D、最大評估次數 FEs、上界 ub 和下界 lb。可以通過公式 (2) 獲得搜索空間中種群 X 的初始化。

幼鳥生長階段:在生長階段,幼鳥將繼續改變位置以學習大量經驗以實現快速生長。因此,基于幼鳥生長建立模型使 SFOA 能夠在有限的問題求解空間內進行廣泛的探索。SFOA 位置變化將通過公式 (3) 計算。

繁殖和喂養階段:當環境更安全時,SFOA 在繁殖期間進行教育,當幾只成員輪流照顧卵直到它們孵化。這種行為導致 SFOA 在巢附近小范圍內移動,并且每個 SFOA 成員都有機會外出尋找食物和照顧孩子。基于此,模型可以建立以使 SFOA 在一定局部范圍內進行深入探索。繁殖和喂養階段的計算公式如公式 (5) 所示。

避免自然敵人階段:面對危險時,SFOA 會抖動羽毛以迷惑捕食者并提醒其他 SFOA 成員。基于 SFOA 避免自然敵人的特性建立模型,極大地增加了 SFOA 在空間探索中的隨機性。SFOA 的計算公式如公式 (9) 所示。

X n e w i , j = { X i , j t + ( l b + ( u b ? l b ) × r a n d ) , r > 0.5 X b × C + ( X b ? X i , j t ) × p , r < 0.5 and? s > 20 X b + X i , j × l × k , r < 0.5 and? s < 20 X_{new_{i,j}} = \begin{cases} X_{i,j}^t + (lb + (ub - lb) \times rand), & r > 0.5 \\ X_b \times C + (X_b - X_{i,j}^t) \times p, & r < 0.5 \text{ and } s > 20 \\ X_b + X_{i,j} \times l \times k, & r < 0.5 \text{ and } s < 20 \end{cases} Xnewi,j??=? ? ??Xi,jt?+(lb+(ub?lb)×rand),Xb?×C+(Xb??Xi,jt?)×p,Xb?+Xi,j?×l×k,?r>0.5r<0.5?and?s>20r<0.5?and?s<20?

在本文中,提出了一種新的群體智能優化算法 SFOA,并建立了基于壯麗細尾鷯鶯的生長、繁殖、喂養和捕食者回避行為的數學模型(圖 3)。與其他群體智能算法相比,SFOA 引用了壯麗細尾鷯鶯獨特的教學技術和合作繁殖特征,這可以表明該算法具有一定的新穎性。在下一節中,我們將比較 SFOA 性能。

在這里插入圖片描述

function[best_fitness,best_position,curve]=SFOA(N,MaxFEs,lb,ub,dim,fobj)curve=zeros(1,MaxFEs);X=initialization(N,dim,ub,lb);Xnew=zeros(N,dim);best_fitness = inf;best_position = zeros(1,dim);fitness=zeros(1,N);FEs=1;LB=ones(1,dim).*(lb);             % Lower limit for variablesUB=ones(1,dim).*(ub);             % Upper limit for variablesfor i=1:Nfitness(i)=fobj(X(i,:));if fitness(i)<best_fitnessbest_fitness=fitness(i);best_position=X(i,:);endFEs=FEs+1;curve(FEs)=best_fitness;endwhile(FEs<=MaxFEs)C=0.8;r1=rand;r2=rand;w=(pi/2)*(FEs/MaxFEs);k=0.2*sin(pi/2-w);l=0.5*levy(N,dim,1.5);y=randi(N);c1=rand;T=0.5;m=FEs/MaxFEs*2;p = sin(UB-LB)*2+(UB-LB)*m;Xb=best_position;XG=best_position*C;for i=1:Nif T<c1Xnew(i,:)=X(i,:)+(LB+(UB-LB).*rand(1,dim));elses=r1*20+r2*20;if s>20Xnew(i,:)=Xb+X(i,:).*l(y,:)*k;elseXnew(i,:)=XG+(Xb-X(i,:)).*(p);endendendX=Xnew;for i=1:NXnew(i,:) = max( Xnew(i,:),lb);Xnew(i,:) = min( Xnew(i,:),ub);fitness(i)=fobj(Xnew(i,:));if fitness(i)<best_fitnessbest_fitness=fitness(i);best_position=Xnew(i,:);endFEs=FEs+1;curve(FEs)=best_fitness;if FEs>=MaxFEsbreak;endendif FEs>=MaxFEsbreak;end end
endfunction [z] = levy(n,m,beta)num = gamma(1+beta)*sin(pi*beta/2); % used for Numerator den = gamma((1+beta)/2)*beta*2^((beta-1)/2); % used for Denominatorsigma_u = (num/den)^(1/beta);% Standard deviationu = random('Normal',0,sigma_u,n,m); v = random('Normal',0,1,n,m);z =u./(abs(v).^(1/beta));end

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/75823.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75823.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/75823.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用Ubuntu18恢復群暉nas硬盤數據外接usb

使用Ubuntu18恢復群暉nas硬盤數據外接usb 1. 接入硬盤2.使用Ubuntu183.查看nas硬盤信息3. 掛載nas3.1 掛載損壞nas硬盤(USB)3.2 掛載當前運行的nas 4. 拷貝數據分批傳輸 5. 新舊數據對比 Synology NAS 出現故障&#xff0c;DS DiskStation損壞&#xff0c;則可以使用計算機和 U…

linux 安裝 mysql記錄

sudo apt-get install mysql-server 一直報錯&#xff0c;按照下面的終于安裝出來了 這個鏈接 https://cn.linux-console.net/?p13784 第 1 步&#xff1a;要刪除 MySQL 及其所有依賴項&#xff0c;請執行以下命令&#xff1a; sudo apt-get remove --purge mysql* 第 2 步…

UE5學習筆記 FPS游戲制作35 使用.csv配置文件

文章目錄 導入.csv要求首先創建一個結構體導入配置文件讀取配置 導入 .csv要求 第一行必須包含標題 第一列的內容必須不能重復&#xff0c;因為第一列會被當成行的名字&#xff0c;在數據處理中發揮類似于字典的key的作用 當前的配置文件內容如下 首先創建一個結構體 結構…

談談策略模式,策略模式的適用場景是什么?

一、什么是策略模式&#xff1f;?? 策略模式&#xff08;Strategy Pattern&#xff09;屬于??行為型設計模式??。核心思路是將一組??可替換的算法??封裝在獨立的類中&#xff0c;使它們可以在運行時動態切換&#xff0c;同時使客戶端代碼與具體算法解耦。它包含三個…

AGI大模型(10):prompt逆向-巧借prompt

1 提示詞逆向 明確逆向提示詞?程概念 我們可以給ChatGPT提供?個簡潔的提示詞,讓它能夠更準確地理解我們所討論的“逆向提示詞?程”是什么意思,并通過這個思考過程,幫它將相關知識集中起來,進?構建?個專業的知識領域 提示詞:請你舉?個簡單的例?,解釋?下逆向pro…

IntelliJ IDEA全棧Git指南:從零構建到高效協作開發

文章目錄 摘要 正文一、環境搭建&#xff1a;5分鐘完成Git與IDEA的深度綁定二、基礎操作&#xff1a;IDEA如何將Git效率提升300%三、分支管理&#xff1a;高并發團隊的協作秘籍四、強制覆蓋&#xff1a;高風險操作的生存指南五、實戰避坑&#xff1a;血淚經驗總結六、基于老項目…

指針的補充(用于學習筆記的記錄)

1.指針基礎知識 1.1 指針變量的定義和使用 指針也是一種數據類型&#xff0c;指針變量也是一種變量 指針變量指向誰&#xff0c;就把誰的地址賦值給指針變量 #include<stdio.h>int main() {int a 0;char b 100;printf("%p,%p \n", &a,&b); // …

【Cursor/VsCode】在文件列表中不顯示.meta文件

打開設置文件 教程&#xff1a;【Cursor】打開Vscode設置 在settings.json里配置這個&#xff1a; "files.exclude": {"**/*.meta": true }

React-Diffing算法和key的作用

1.驗證Diffing算法 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…

Linux文件操作命令詳解

各類資料學習下載合集 ??https://pan.quark.cn/s/8c91ccb5a474?? 在Linux操作系統中,文件操作命令是用戶與系統交互的重要工具。掌握這些命令能夠高效地管理文件和目錄。本文將詳細介紹常用的Linux文件操作命令,包括它們的用法、選項、具體示例及運行結果。 1. 查看文…

Redisson使用詳解

一、Redisson 核心特性與適用場景 Redisson 是基于 Redis 的 Java 客戶端&#xff0c;提供分布式對象、鎖、集合和服務&#xff0c;簡化分布式系統開發。 典型應用場景&#xff1a; 分布式鎖&#xff1a;防止重復扣款、超賣控制&#xff08;如秒殺庫存&#xff09;。數據共享…

從代碼學習深度學習 - GRU PyTorch版

文章目錄 前言一、GRU模型介紹1.1 GRU的核心機制1.2 GRU的優勢1.3 PyTorch中的實現二、數據加載與預處理2.1 代碼實現2.2 解析三、GRU模型定義3.1 代碼實現3.2 實例化3.3 解析四、訓練與預測4.1 代碼實現(utils_for_train.py)4.2 在GRU.ipynb中的使用4.3 輸出與可視化4.4 解析…

Flask學習筆記 - 項目結構 + 路由

前言 待業家中繼續學習。 Flask 項目結構 my_flask_app/ │ ├── app/ │ ├── __init__.py │ ├── routes/ -- 將不同功能模塊的路由分開管理 │ │ ├── __init__.py │ │ ├── main.py -- 主模塊的路由 │ │ └── auth.py -- 認證相關的路…

SQL 轉 PHP Eloquent、Doctrine ORM, 支持多數據庫

SQL 轉 PHP 說明 在 PHP 開發中&#xff0c;常使用 ORM&#xff08;如 Eloquent、Doctrine&#xff09;操作數據庫。手寫 ORM 模型繁瑣&#xff0c;gotool.top 提供 SQL 轉 PHP 工具&#xff0c;可自動生成 PHP 代碼&#xff0c;提高開發效率。 特色 支持 Laravel Eloquent …

【Python】Python 環境 + Pycharm 編譯器 官網免費下載安裝(圖文教程,新手安裝,Windows 10 系統)

目錄 Python 環境的下載安裝第一步 進入官網第二步 找到匹配 windows 系統的 python 下載頁面第三步 根據電腦 cpu 架構選擇 python 版本第四步 安裝 python 環境第五步 驗證 python 環境變量 Pycharm 的下載安裝第一步 進入官網第二步 安裝 Pycharm Community Edition第三步 第…

基于javaweb的SpringBoot圖片管理系統圖片相冊系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文…

局域網:電腦或移動設備作為主機實現局域網訪問

電腦作為主機 1. 啟用電腦的網絡發現、SMB功能 2. 將訪問設備開啟WIFI或熱點&#xff0c;用此電腦連接&#xff1b;或多臺設備連接到同一WIFI 3. 此電腦打開命令行窗口&#xff0c;查看電腦本地的IP地址 Win系統&#xff1a;輸入"ipconfig"&#xff0c;回車后如圖 4.…

use_tempaddr 筆記250405

use_tempaddr 筆記250405 use_tempaddr 是 Linux 系統中用于控制 IPv6 臨時隱私地址生成策略 的關鍵參數。以下是其詳細說明&#xff1a; &#x1f4dc; 參數定義 路徑&#xff1a; /proc/sys/net/ipv6/conf/<接口>/use_tempaddr默認值&#xff1a; 1&#xff08;大多數…

NO.66十六屆藍橋杯備戰|基礎算法-貪心-區間問題|凌亂的yyy|Rader Installation|Sunscreen|牛欄預定(C++)

區間問題是另?種?較經典的貪?問題。題??對的對象是?個?個的區間&#xff0c;讓我們在每個區間上做出取舍。 這種題?的解決?式?般就是按照區間的左端點或者是右端點排序&#xff0c;然后在排序之后的區間上&#xff0c;根據題?要求&#xff0c;制定出相應的貪?策略&…

用C語言控制鍵盤上的方向鍵

各位同學&#xff0c;大家好&#xff01;相信大家在學習C語言的過程中&#xff0c;都和我一樣&#xff0c;經常使用scanf函數來接受字符&#xff0c;數字&#xff0c;這些標準輸入信息&#xff0c;來實現自己設計的程序效果。 而我突然有一天&#xff08;對就是今天&#xff09…