CEC2013(MATLAB):萤火虫算法(FA)求解CEC2013的28个函数

作品简介

一、萤火虫算法(FA)简介

萤火虫算法(Firefly Algorithm,FA)是Yang等人于2009年提出的一种仿生优化算法。

参考文献:田梦楚, 薄煜明, 陈志敏, et al. 萤火虫算法智能优化粒子滤波[J]. 自动化学报, 2016, 42(001):89-97.

二、CEC2013简介

在CEC 2013 Special Session on Real-Parameter Optimization中共有28个测试函数,其维度可选择为10/30/50/100。每个测试函数的详细信息如下表所示:

参考文献:

[1] Liang J J , Qu B Y , Suganthan P N ,et al.Problem Definitions and Evaluation Criteria for the CEC 2013 Special Session on Real-Parameter Optimization[J]. 2013.

三、萤火虫算法求解CEC2013

代码中测试不同的函数修改的值即可,每个函数的维度可选择为10/30/50/100,种群大小和最大迭代次数均可根据需要修改。

(1)部分代码

%  Firefly Algorithm (FA) 
clc;
clear;
close all;
nVar =10;      %维度
func_num=5; %测试函数索引
[Fun_Name,VarMin,VarMax,opt_f,err] = get_fun_info_CEC2013(func_num,nVar);
fob=str2func('cec13_0');
CostFunction=@(x)Fun(x,fob,func_num,opt_f);
%% Problem Definition
VarSize=[1 nVar];       % Decision Variables Matrix Size
%% Firefly Algorithm Parameters
MaxIt=100;         % Maximum Number of Iterations
nPop=50;            % Number of Fireflies (Swarm Size)
gamma=1;            % Light Absorption Coefficient
beta0=2;            % Attraction Coefficient Base Value
alpha=0.2;          % Mutation Coefficient
alpha_damp=0.98;    % Mutation Coefficient Damping Ratio

(2)部分结果(以F1,F5和F10为例)

四、完整MATLAB代码

文件夹内包含该算法求解CEC2013的完整MATLAB代码,并通过CEC2013的参考文献,点击fa.m即可运行。


创作时间: