【智能優(yōu)化算法】基于三重動態(tài)調(diào)整的花授粉算法求解單標目優(yōu)化問題附matlab代碼

1 簡介

針對花授粉算法存在的收斂速度慢,易陷入局部最優(yōu)及收斂精度低等缺點,提出了基于三重動態(tài)調(diào)整的改進花授粉算法.采用動態(tài)轉(zhuǎn)換概率切換算法的搜索模式,在全局搜索更新機制中引入新型動態(tài)因子,并在局部開發(fā)更新機制中引入正余弦步長因子.通過對7個測試函數(shù)的仿真實驗結(jié)果和與FPA,CS,ASCSA等算法相比,表明改進的花授粉算法具有更強的全局搜索能力和跳出局部最優(yōu)能力.

2 部分代碼

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%Flower Pollination Algorithm for Multimodal Optimization (MFPA)

%%This is the line to execute the code:

%%[mem,bestSol,bestFit,optima,FunctionCalls]=FPA([50 0.25 500 2]);

%FitFunc implements the function to be optimized

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [mem,bestSol,bestFit,optima,FunctionCalls]=FPA(para)

% Default parameters

if nargin<1,

? ?para=[50 0.25 500];? ?

end

n=para(1);? ? ? ? ? ?% Population size

p=para(2);? ? ? ? ? ?% Probabibility switch

N_iter=para (3);? % Number of iterations

phase = 1; %First state

phaseIte= [0.5,0.9,1.01]; %State vector

%Deb Function

d = 1;

Lb = 0;

Ub = 1;

optima =? [.1;.3;.5;.7;.9];

% Initialize the population

for i=1:n,

? Sol(i,:)=Lb+(Ub-Lb).*rand(1,d);

? Fitness(i)=fitFunc(Sol(i,:));? %%Evaluate fitness function

end

% Initialice the memory

[mem,bestSol,bestFit,worstF] = memUpdate(Sol,Fitness, [], zeros(1,d), 100000000, 0, phase,d,Ub,Lb);

S = Sol;

FunctionCalls = 0;

% Main Loop

for ite = 1 : N_iter,

? ? ? ? ? ? ? ? ? ? %For each pollen gamete, modify each position acoording

? ? ? ? ? ? ? ? ? ? %to local or global pollination

? ? ? ? ? ? ? ? ? ? for i = 1 : n,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % Switch probability

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if rand>p,


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? L=Levy(d);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dS=L.*(Sol(i,:)-bestSol);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? S(i,:)=Sol(i,:)+dS;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? S(i,:)=simplebounds(S(i,:),Lb,Ub);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? epsilon=rand;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % Find random flowers in the neighbourhood

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? JK=randperm(n);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % As they are random, the first two entries also random

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % If the flower are the same or similar species, then

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % they can be pollenated, otherwise, no action.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % Formula: x_i^{t+1}+epsilon*(x_j^t-x_k^t)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? S(i,:)=S(i,:)+epsilon*(Sol(JK(1),:)-Sol(JK(2),:));

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % Check if the simple limits/bounds are OK

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? S(i,:)=simplebounds(S(i,:),Lb,Ub);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Fitness(i)=fitFunc(S(i,:));

? ? ? ? ? ? ? ? ? ? end

? ? ? ? ? ? ? ? ? ? %Update the memory

? ? ? ? ? ? ? ? ? ? [mem,bestSol,bestFit,worstF] = memUpdate(S,Fitness,mem,bestSol,bestFit,worstF,phase,d,Ub,Lb);


? ? ? ? ? ? ? ? ? ?Sol = get_best_nest(S, mem, p);


? ? ? ? ? ? ? ? ? ?FunctionCalls = FunctionCalls + n;


? ? ? ? ? ? ? ? ? ?if ite/N_iter > phaseIte(phase)

? ? ? ? ? ? ? ? ? ? ? ? %Next evolutionary process stage

? ? ? ? ? ? ? ? ? ? ? ? phase = phase + 1;

? ? ? ? ? ? ? ? ? ? ? ? [m,~]=size(mem);

? ? ? ? ? ? ? ? ? ? ? ? %Depurate the memory for each stage

? ? ? ? ? ? ? ? ? ? ? ? mem = cleanMemory(mem);

? ? ? ? ? ? ? ? ? ? ? ? FunctionCalls = FunctionCalls + m;

? ? ? ? ? ? ? ? ? ?end

end

%Plot the solutions (mem) founded by the multimodal framework

x = 0:.01:1;

y = ((sin(5.*pi.*x)).^ 6);

plot(x,y)

hold on

plot(mem(:,1),-mem(:,2),'r*');

3 仿真結(jié)果

4 參考文獻

[1]洪露, 賀興時, 楊新社. 基于三重動態(tài)調(diào)整的花授粉算法[J]. 西安工程大學(xué)學(xué)報, 2021, 35(2):7.

博主簡介:擅長智能優(yōu)化算法表鳍、神經(jīng)網(wǎng)絡(luò)預(yù)測馅而、信號處理、元胞自動機譬圣、圖像處理瓮恭、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真厘熟,相關(guān)matlab代碼問題可私信交流屯蹦。

部分理論引用網(wǎng)絡(luò)文獻,若有侵權(quán)聯(lián)系博主刪除盯漂。完整代碼獲取關(guān)注微信公眾號天天matlab

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市笨农,隨后出現(xiàn)的幾起案子就缆,更是在濱河造成了極大的恐慌,老刑警劉巖谒亦,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件竭宰,死亡現(xiàn)場離奇詭異,居然都是意外死亡份招,警方通過查閱死者的電腦和手機切揭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锁摔,“玉大人廓旬,你說我怎么就攤上這事⌒逞” “怎么了读串?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵淆院,是天一觀的道長。 經(jīng)常有香客問我,道長挨队,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任力喷,我火速辦了婚禮慷妙,結(jié)果婚禮上址儒,老公的妹妹穿的比我還像新娘。我一直安慰自己衅疙,他們只是感情好莲趣,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著炼蛤,像睡著了一般妖爷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上理朋,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天絮识,我揣著相機與錄音,去河邊找鬼嗽上。 笑死次舌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的兽愤。 我是一名探鬼主播彼念,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浅萧!你這毒婦竟也來了逐沙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤洼畅,失蹤者是張志新(化名)和其女友劉穎吩案,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帝簇,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡徘郭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丧肴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片残揉。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖芋浮,靈堂內(nèi)的尸體忽然破棺而出抱环,到底是詐尸還是另有隱情,我是刑警寧澤纸巷,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布江醇,位于F島的核電站,受9級特大地震影響何暇,放射性物質(zhì)發(fā)生泄漏陶夜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一裆站、第九天 我趴在偏房一處隱蔽的房頂上張望条辟。 院中可真熱鬧黔夭,春花似錦、人聲如沸羽嫡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杭棵。三九已至婚惫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間魂爪,已是汗流浹背先舷。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滓侍,地道東北人蒋川。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像撩笆,于是被迫代替她去往敵國和親捺球。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容