【智能優(yōu)化算法】基于花朵授粉算法求解單標(biāo)目優(yōu)化問題附matlab代碼

1 簡介

? ? 花朵授粉算法( Flower Pollination Algorithm州邢,F(xiàn)PA)是由英國劍橋大學(xué)學(xué)者Yang 于2012年提出的,其基本思想來源于對自然界花朵自花授粉大脉、異花授粉的模擬,是一種新的元啟發(fā)式群智能隨機(jī)優(yōu)化技術(shù) 创葡。

? ? ?據(jù)統(tǒng)計迎献,目前在自然界中被人類發(fā)現(xiàn)的植物大約有 37 萬 種达舒,顯花植物大約占有 20 萬種值朋,而其中 80% 的植物依靠生物授粉繁衍后代叹侄。花植物已經(jīng)進(jìn)化了大約 1. 25 億年昨登,在演化過程中趾代,花朵授粉在花植物繁衍過程中承擔(dān)著舉足輕重的作用,對于花植物丰辣,如果沒有花撒强,很難想象植物世界是個什么樣子。人類的發(fā)展和生存與跟花植物也是息息相關(guān)的笙什,例如人們生活中吃的蘋果等水果都是花朵授粉的結(jié)果飘哨。花朵授粉是通過花粉的傳播來實現(xiàn)琐凭,而花粉的傳播主要是靠昆蟲及動物來完成芽隆。在實際授粉過程中,一些花朵僅僅吸引和依靠一種特定的昆蟲來成功授粉统屈,即一些花朵與傳粉者之間形成了一種非常特別的花—傳粉者伙伴關(guān)系胚吁。授粉形式主要有非生物和生物兩種,大概 90% 的顯花植物是屬于生物授粉植物愁憔,即花粉主要是通過動物和昆蟲來傳播而實現(xiàn)繁衍后代腕扶。大約 10% 的顯花植物是屬于非生物授粉植物,不需要任何傳粉者來傳播花粉吨掌,而是通過自然風(fēng)或者擴(kuò)散途徑來完成傳粉半抱,以實現(xiàn)子代的繁殖。在依賴生物傳粉的顯花植物中大約有 85% 的植物是由蜜蜂完成傳粉的思犁,蜜蜂在實際傳粉中可能只對一些特定花植物進(jìn)行傳粉代虾,而忽視其他種類的花植物,這樣以便以最小的代價獲得最大的收益激蹲。同時對于一些花植物而言棉磨,也獲得更多的傳粉機(jī)會,繁衍更多的后代学辱。根據(jù)顯花植物的授粉對象不同乘瓤,可分為異花授粉和自花授粉兩種。在一般情況下策泣,異花授粉是兩性花衙傀,一般一朵花的雌蕊接受的花粉是另一朵花的雄蕊的花粉,這就是所謂的異花授粉萨咕。自花授粉是顯花植物成熟的花粉粒傳到同一朵花的柱頭上或同一種顯花植物的不同花之間進(jìn)行傳粉统抬,并能正常地受精結(jié)實的過程。由于傳粉者鳥、蜜蜂等能飛行很長的距離聪建,故異花授粉可以發(fā)生在遠(yuǎn)距離的地方钙畔,這種方式稱為全局授粉。另外金麸,鳥和蜜蜂具有 Levy 飛行的行為擎析,跳或飛行的步長服從 Levy飛行分布。而自花授粉稱為局部授粉挥下。

? ? ?花朵授粉算法是模擬自然界中顯花植物花朵傳粉的過程揍魂,該算法的理想條件假設(shè)如下:

a) 生物異花授粉是帶花粉的傳粉者通過 Levy 飛行進(jìn)行的全局授粉過程。

b) 非生物自花授粉是局部授粉過程棚瘟。

c) 花的常性可以被認(rèn)為是繁衍概率现斋,繁衍概率與參與的兩朵花的相似性成比例關(guān)系。

d) 轉(zhuǎn)換概率 p∈[0解取,1]控制全局授粉與局部授粉之間的轉(zhuǎn)換步责,由于物理上的鄰近性和風(fēng)等其他因素的影響,局部授粉在整個授粉活動中是一個非常重要的部分 p禀苦。

? ? ?然而蔓肯,在現(xiàn)實的自然界中,每一棵顯花植物可以開好多朵花振乏,每朵花產(chǎn)生數(shù)百萬甚至數(shù)十億的花粉配子蔗包。但是,為了把問題簡單化慧邮,假設(shè)每棵顯花植物僅僅只開一朵花调限,且每朵花僅產(chǎn)生一個花粉配子。因此误澳,問題經(jīng)過簡化后耻矮,意味著一朵花或一個配子就對應(yīng)于優(yōu)化問題中的一個解。

2 部分代碼

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

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

%Jorge G醠vez, Erik Cuevas and Omar Avalos

%%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 參考文獻(xiàn)

[1]陳西成, and 劉曙. "基于改進(jìn)花朵授粉算法的防空部署優(yōu)化研究." 計算技術(shù)與自動化 038.003(2019):74-78.

博主簡介:擅長智能優(yōu)化算法忆谓、神經(jīng)網(wǎng)絡(luò)預(yù)測裆装、信號處理、元胞自動機(jī)倡缠、圖像處理哨免、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真昙沦,相關(guān)matlab代碼問題可私信交流琢唾。

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末采桃,一起剝皮案震驚了整個濱河市懒熙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芍碧,老刑警劉巖煌珊,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異泌豆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)吏饿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門踪危,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人猪落,你說我怎么就攤上這事贞远。” “怎么了笨忌?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵蓝仲,是天一觀的道長。 經(jīng)常有香客問我官疲,道長袱结,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任途凫,我火速辦了婚禮垢夹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘维费。我一直安慰自己果元,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布犀盟。 她就那樣靜靜地躺著而晒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阅畴。 梳的紋絲不亂的頭發(fā)上倡怎,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機(jī)與錄音恶阴,去河邊找鬼诈胜。 笑死,一個胖子當(dāng)著我的面吹牛冯事,可吹牛的內(nèi)容都是我干的焦匈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼昵仅,長吁一口氣:“原來是場噩夢啊……” “哼缓熟!你這毒婦竟也來了累魔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤够滑,失蹤者是張志新(化名)和其女友劉穎垦写,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彰触,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡梯投,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了况毅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片分蓖。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖尔许,靈堂內(nèi)的尸體忽然破棺而出么鹤,到底是詐尸還是另有隱情,我是刑警寧澤味廊,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布蒸甜,位于F島的核電站,受9級特大地震影響余佛,放射性物質(zhì)發(fā)生泄漏柠新。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一衙熔、第九天 我趴在偏房一處隱蔽的房頂上張望登颓。 院中可真熱鬧,春花似錦红氯、人聲如沸框咙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喇嘱。三九已至,卻和暖如春塞栅,著一層夾襖步出監(jiān)牢的瞬間者铜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工放椰, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留作烟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓砾医,卻偏偏與公主長得像拿撩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子如蚜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,107評論 2 356

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