CEC2013 (MATLAB): 遺伝的アルゴリズム (GA) は CEC2013 の 28 関数を解決します

1. 遺伝的アルゴリズム GA

遺伝的アルゴリズム (GA) は、生物学的システムのコンピューター シミュレーション研究に端を発し、自然選択と遺伝において発生する複製、交叉、突然変異をシミュレートする確率的グローバル検索最適化手法です。任意の初期集団 (Population) から開始して、ランダム選択を通じて、交叉および突然変異の操作により、環境により適した個体のグループが生成され、そのグループが探索空間内のより優れた領域に進化し、世代を超えて再生産および進化し続けます。環境に最も適した個人(Individual)の集団に収束し、問題に対する質の高い解決策を導き出します。

2. cec2013の紹介

CEC 2013 の実パラメータ最適化特別セッションには 28 のテスト関数があり、その次元は 10/30/50/100 として選択できます。各テスト関数の詳細を次の表に示します。

参考文献:

[1] Liang JJ 、Qu BY 、Suganthan PN ら、実パラメータ最適化に関する CEC 2013 特別セッションの問題定義と評価基準[J]。2013年。

3. GA は CEC2013 を解決します

コード内のさまざまな関数をテストし、Function_name の値を変更します。各関数の次元 dimは 10/30/50/100 として選択できます。母集団サイズ SearchAgents_no と最大反復数 Max_iteration は、必要に応じて変更できます。

(1) 部分コード

%%
close all
clear 
clc
Function_name=1; %测试函数可以选择 1-28
dim=10;%维度可以选择 10/30/50/100
SearchAgents_no=100; % 种群大小(可以自己修改)
Max_iteration=1000; % 最大迭代次数(可以自己修改)
[Fun_Name,lb,ub,opt_f,err] = get_fun_info_CEC2013(Function_name,dim);
fob=str2func('cec13_0');
fobj=@(x)Fun(x,fob,Function_name,opt_f);
[fMin,bestX,curve]=GA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
figure
plot(curve,'Color','r','linewidth',2.5)
title(Fun_Name)
xlabel('Iteration');
ylabel('Best score obtained so far');
grid on
legend('GA')
display(['The best solution obtained by GA is : ', num2str(bestX)]);
display(['The best optimal value of the objective funciton found by GA is : ', num2str(fMin)]);

(2) 部分的な結果 (F1、F5、F10 を例として取り上げます)

4. 完全な MATLAB コード

おすすめ

転載: blog.csdn.net/weixin_46204734/article/details/132202629