最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

麻雀搜索算法matlab代碼

2022-10-29 10:50 作者:Matlab工程師  | 我要投稿

?作者簡介:熱愛科研的Matlab仿真開發(fā)者,修心和技術(shù)同步精進,matlab項目合作可私信。

??個人主頁:Matlab科研工作室

??個人信條:格物致知。

更多Matlab仿真內(nèi)容點擊??

智能優(yōu)化算法 ?神經(jīng)網(wǎng)絡(luò)預測 雷達通信 無線傳感器

信號處理 圖像處理 路徑規(guī)劃 元胞自動機 無人機

? 內(nèi)容介紹

麻雀搜索算法是一種新型的群智能優(yōu)化算法,?在?2020?年由?Xue?等?[15]?提出,主要是受麻雀的覓食?和反哺食行為啟發(fā),具有尋優(yōu)能力強、收斂速度快的特點。麻雀搜索算法將整個麻雀種群分為三類,即尋找食物的生產(chǎn)者,搶奪食物的加入者和發(fā)現(xiàn)危險的警戒者?。生產(chǎn)者和加入者可以相互轉(zhuǎn)化,但各自在?種群中的占比不會發(fā)生變化。在模擬實驗中,需要使用虛擬麻雀進行食物的?尋找,與其他尋優(yōu)算法相同,麻雀搜索算法首先需要對麻雀種群與適應度值進行初始化,麻雀種群可?初始化為如下形式,表達式為式(3)?

中:n為麻雀的數(shù)量;d為要優(yōu)化的變量的維度即獨立參數(shù)的數(shù)目;xnd為第n只麻雀第d維度的值。由此,總體麻雀適應度值表征形式為?

式(4)中:f(x)為個體適應度值。適應度值較好的麻雀(即生產(chǎn)者)在搜索中會優(yōu)先獲得食物并指引群體的覓食方向與范圍,與此同時,生產(chǎn)者會具有更大的覓食搜索范圍。生產(chǎn)者在覓食過程中,位置不斷發(fā)生移動,而在遇到捕食者時,移動規(guī)則又會發(fā)生改變,即?

式(5)中:t為當前迭代次數(shù);j∈{1,2,…,d};xit,j為迭代第t次時,第i個麻雀的第j個維度的值;α∈(0,1],為隨機數(shù);iter_max為迭代次數(shù)最多的常數(shù);R2∈[0,1],為報警值;ST∈[0,1],為安全閾值;Q為服從正態(tài)分布的隨機數(shù);L為1×d階矩陣(元素全為1)。R2<ST時,代表該區(qū)域安全,無捕食者出沒,生產(chǎn)者會出現(xiàn)大范圍覓食行為;R2≥ST時,表示一些麻雀發(fā)現(xiàn)了捕食者并發(fā)出警告,所有麻雀迅速飛入安全區(qū)域。而對加入者而言,在覓食過程中,一旦生產(chǎn)者找到了好的食物源,加入者必會知曉,并飛向它的附近搶食,同時,也有加入者會時刻監(jiān)視生產(chǎn)者,隨時準備爭搶食物。由此加入者的位置更新規(guī)則為

式(6)中:xp為生產(chǎn)者占據(jù)的最佳位置;xworst為全局最差位置;A為1×d階矩陣,每個元素隨機為1或-1;A?=AT(AAT)-1。當i>時,表示適應性較差的第i個加入者搶奪食物失敗,為了更好地獲得食物避免挨餓只能飛往其他地區(qū)進行覓食??傮w而言,假設(shè)意識到危險的麻雀(即警戒者)占10%~20%。初始位置則隨機產(chǎn)生,規(guī)則為

式(7)中:λ為步長控制函數(shù),是一個均值為0,方差為1的正態(tài)分布隨機數(shù);fi為當前麻雀適應值;fg為全局最好適應值;fw為全局最差適應值;k為麻雀移動方向;xbest為全局最優(yōu)位置;ε為最小常數(shù),避免除數(shù)為零。當fi>fg時,警戒者位于種群邊緣,意識到危險后向中央安全區(qū)靠近;當fi=fg時,則是處于種群中央的麻雀意識到了危險,為躲避危險,則向其他麻雀身邊靠攏。

? 部分代碼

%_________________________________________________________________________________

%? Salp Swarm Algorithm (SSA) source codes version 1.0

%

% You can simply define your cost in a seperate file and load its handle to fobj?

% The initial parameters that you need are:

%__________________________________________

% fobj = @YourCostFunction

% dim = number of your variables

% Max_iteration = maximum number of generations

% SearchAgents_no = number of search agents

% lb=[lb1,lb2,...,lbn] where lbn is the lower bound of variable n

% ub=[ub1,ub2,...,ubn] where ubn is the upper bound of variable n

% If all the variables have equal lower bound you can just

% define lb and ub as two single number numbers

% To run SSA: [Best_score,Best_pos,SSA_cg_curve]=SSA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj)

%__________________________________________

clear all?

clc

SearchAgents_no=30; % Number of search agents

Function_name='F5'; % Name of the test function that can be from F1 to F23 (?

Max_iteration=100; % Maximum numbef of iterations

% Load details of the selected benchmark function

[lb,ub,dim,fobj]=Get_Functions_details(Function_name);

[Best_score,Best_pos,SSA_cg_curve]=SSA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);

figure('Position',[500 500 660 290])

% %Draw search space

subplot(1,2,1);

func_plot(Function_name);

title('Parameter space')

xlabel('x_1');

ylabel('x_2');

zlabel(['( x_1 , x_2 )'])

%Draw objective space

subplot(1,2,2);

semilogy(SSA_cg_curve,'Color','r')

title('Objective space')

xlabel('Iteration');

ylabel('Best score obtained so far');

axis tight

grid on

box on

legend('SSA')

display(['The best solution obtained by SSA is \m ', num2str(Best_pos)]);

display(['The best optimal value of the objective funciton found by SSA is \n ', num2str(Best_score)]);

img =gcf;? %獲取當前畫圖的句柄

print(img, '-dpng', '-r600', './img.png')? ? ? ? ?%即可得到對應格式和期望dpi的圖像? ??

? 運行結(jié)果

? 參考文獻

[1]郭北濤, 姜旭, 張麗秀. 基于麻雀算法的機械手時間最優(yōu)軌跡規(guī)劃[J]. 組合機床與自動化加工技術(shù), 2022(3):5.

?? 關(guān)注我領(lǐng)取海量matlab電子書和數(shù)學建模資料

??部分理論引用網(wǎng)絡(luò)文獻,若有侵權(quán)聯(lián)系博主刪除



麻雀搜索算法matlab代碼的評論 (共 條)

分享到微博請遵守國家法律
论坛| 南开区| 洪洞县| 峨边| 洱源县| 马山县| 东平县| 张北县| 鄯善县| 小金县| 元谋县| 鹰潭市| 霸州市| 兰州市| 靖安县| 黄大仙区| 永川市| 许昌县| 邯郸市| 普宁市| 应用必备| 珠海市| 绥棱县| 绵阳市| 开化县| 水富县| 静乐县| 岳阳市| 乌鲁木齐县| 怀远县| 惠东县| 米泉市| 岱山县| 丰县| 七台河市| 汨罗市| 泗阳县| 丰城市| 博野县| 珲春市| 招远市|