日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

【智能优化算法-倭黑猩猩算法】基于倭黑猩猩优化算法求解多目标优化问题附matlab代码

發(fā)布時(shí)間:2023/12/20 循环神经网络 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【智能优化算法-倭黑猩猩算法】基于倭黑猩猩优化算法求解多目标优化问题附matlab代码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?1 內(nèi)容介紹

非傳統(tǒng)的優(yōu)化工具已經(jīng)證明了它們?cè)诮鉀Q各種優(yōu)化問題方面的潛力。這些問題處理單個(gè)目標(biāo)或多個(gè)/多個(gè)目標(biāo)。倭黑猩猩優(yōu)化器(BO)是一種智能自適應(yīng)元啟發(fā)式優(yōu)化算法,靈感來自倭黑猩猩的社會(huì)行為和繁殖策略。文獻(xiàn)中沒有研究擴(kuò)展這個(gè) BO 來解決多目標(biāo)優(yōu)化問題。本文提出了一種多目標(biāo) Bonobo 優(yōu)化器 (MOBO) 來解決不同的優(yōu)化問題。本文提出了三個(gè)不同版本的 MOBO,每個(gè)版本都使用不同的方法,例如自適應(yīng)網(wǎng)格方法的非支配排序;一種使用擁擠距離方法對(duì)人口進(jìn)行排序的排序方案;分解技術(shù),其中解決方案是通過將一個(gè)多目標(biāo)問題分解為多個(gè)單目標(biāo)問題來獲得的。提議的 MOBO 的所有三個(gè)不同版本的性能已經(jīng)在一組 30 個(gè)多樣化的基準(zhǔn)測(cè)試功能上進(jìn)行了測(cè)試,并將結(jié)果與文獻(xiàn)中可用的其他四種著名的多目標(biāo)優(yōu)化技術(shù)的結(jié)果進(jìn)行了比較。獲得的結(jié)果表明,與其他算法相比,所提出算法的前兩個(gè)版本在收斂性和多樣性方面表現(xiàn)出色或具有競(jìng)爭(zhēng)力。

tled attacker, barrier, chaser, and driver are employed for simulating the diverse intelligence. Moreover, the four main steps of hunting, driving, blocking, and attacking, are implemented. Afterward, the algorithm is tested on 30 well-known benchmark functions, and the results are compared to four newly proposed meta-heuristic algorithms in term of convergence speed, the probability of getting stuck in local minimums, and the accuracy of obtained results. The results indicate that the ChOA outperforms the other benchmark optimization algorithms.

?

2 仿真代碼

function [new_pops] = NondominatedSort_and_filling(pop, nobj, ncon, nreal, nbin)
N = size(pop,1);
fitsize = N/2;
[sorted_ranks, rankID] = sort(pop(:,nobj+ncon+nreal+nbin+2));
parentID = []; front = 1; front_array = [];
while size(parentID,2) < fitsize
? ? for i=1:N
? ? ? ? if sorted_ranks(i) ~= front
? ? ? ? ? ? break
? ? ? ? end
? ? ? ? front_array = [front_array rankID(i)];
? ? end
? ? size_check = size(parentID,2) + size(front_array,2);
? ? if size_check == fitsize
? ? ? ? parentID = [parentID front_array];
? ? ? ? break
? ? elseif size_check < fitsize
? ? ? ? parentID = [parentID front_array];
? ? ? ? sorted_ranks(1:size(front_array,2)) = [];
? ? ? ? rankID(1:size(front_array,2)) = [];
? ? ? ? N = N - size(front_array,2);
? ? ? ? front = front+1;
? ? ? ? front_array = [];
? ? else
? ? ? ? miss_size = fitsize - (size_check - size(front_array,2));
? ? ? ? n_consviol = nobj+ncon+nreal+nbin+1;
? ? ? ? n_rank= nobj+ncon+nreal+nbin+2;
? ? ? ? n_crowd = n_rank+1;

? ? ? ? if ncon==0,% if the problem does not have any constraints
? ? ? ? ? ?
? ? ? ? ? ? % sort crowding distance and select miss_size number of top individuals ?
? ? ? ? ? ? % and add them to the parent pop
? ? ? ? ? ? [~, distID] = sort(pop(front_array,n_crowd), 'descend');
? ? ? ? ? ? parentID = [parentID front_array(distID(1:miss_size))];
? ? ? ? ? ??
? ? ? ? else % if the problem have constraints
? ? ? ? ? ??
? ? ? ? ? ? %calculate the number of the feasible individuals
? ? ? ? ? ? feasible_ind=find(pop(front_array,n_consviol)==0);
? ? ? ? ? ? feasible_ind=(front_array(feasible_ind));
? ? ? ? ? ? number_feasible_ind=length(feasible_ind);
? ? ? ? ? ??
? ? ? ? ? ? if ?number_feasible_ind > miss_size, ??
? ? ? ? ? ? ? ? % sort feasible individuals based on crowdind distance?
? ? ? ? ? ? ? ? % select the best miss_size of them and add them to parent
? ? ? ? ? ? ? ? % pop
? ? ? ? ? ? ? ? [~, distID] = sort(pop(feasible_ind,n_crowd), 'descend');
? ? ? ? ? ? ? ? parentID = [parentID feasible_ind(distID(1:miss_size))]; ? ? ??
? ? ? ? ? ? elseif number_feasible_ind == miss_size,
? ? ? ? ? ? ? ? parentID = [parentID feasible_ind];?
? ? ? ? ? ? else % where number_feasible_ind < miss_size,
? ? ? ? ? ? ? ? % sort based on the constraint violation,
? ? ? ? ? ? ? ? [~, consviolationID] = sort(pop(front_array,n_consviol), 'descend');
? ? ? ? ? ? ? ? parentID = [parentID front_array(consviolationID(1:miss_size))];
? ? ? ? ? ? end
? ? ? ? end
? ? end
end
new_pops = pop(parentID,:);
end


function pop = Rank_and_Crowding_Distance_Calculation(pop, nobj, ncon, nreal, nbin)
global INF
N = size(pop,1);
P = [pop (1:N)'];
obj_max = max(pop(:,1:nobj));
obj_min = min(pop(:,1:nobj));
r = 1;
while N ~= 0
? ? % NON-DOMINATION SORTING
? ? p = simple_sort(N,P,nobj,ncon,nreal,nbin);
? ? n_p = size(p,2);
? ? globID = P(p,end);
? ? % ASSIGN THE RANKS OF INDIVIDUALS
? ? pop(globID,nobj+ncon+nreal+nbin+2) = r;
? ? % COMPUTE THE CROWDING DISTANCE
? ? if n_p == 1
? ? ? ? pop(globID,end) = INF;
? ? elseif n_p == 2
? ? ? ? pop(globID(1),end) = INF;
? ? ? ? pop(globID(2),end) = INF;
? ? else
? ? ? ? d = zeros(n_p,1);
? ? ? ? for i=1:nobj
? ? ? ? ? ? [~, m_ID] = sort(pop(globID,i));
? ? ? ? ? ? m_ID = globID(m_ID);
? ? ? ? ? ? d(1) = INF; d(end) = INF;
? ? ? ? ? ? for j=2:n_p-1
? ? ? ? ? ? ? ? d(j,1) = d(j,1) + abs((pop(m_ID(j+1),i)-pop(m_ID(j-1),i))) / (obj_max(1,i)-obj_min(1,i));
? ? ? ? ? ? end
? ? ? ? end
? ? ? ? pop(m_ID,end) = d;
? ? end
? ? r = r+1;
? ? N = N - n_p;
? ? P(p,:) = [];
end
%--------------------------------------------------------------------------------------------
function p = simple_sort(N,P,nobj,ncon,nreal,nbin)
p = [];
j_dom_i = 0;
for i=1:N
? ? for j=1:N
? ? ? ? if j ~= i
? ? ? ? ? ? j_dom_i = DominanceChecking(P(j,:), P(i,:), nobj, ncon, nreal, nbin);?
? ? ? ? ? ? % 1: j dominates i; -1: i dominates j; 0: both are non-dominated.
? ? ? ? ? ? if j_dom_i == 1
? ? ? ? ? ? ? ? break
? ? ? ? ? ? end
? ? ? ? end
? ? end
? ? if j_dom_i ~= 1
? ? ? ? p=[p i];
? ? end
? ? j_dom_i = 0;
end
?

3 運(yùn)行結(jié)果

4 參考文獻(xiàn)

[1] Das A K ,? Nikum A K ,? Krishnan S V , et al. Multi-objective Bonobo Optimizer (MOBO): an intelligent heuristic for multi-criteria optimization[J]. Knowledge and Information Systems, 2020, 62(6).

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

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

總結(jié)

以上是生活随笔為你收集整理的【智能优化算法-倭黑猩猩算法】基于倭黑猩猩优化算法求解多目标优化问题附matlab代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。