当前位置: 首页 > news >正文

CEC2013(MATLAB):遗传算法(Genetic Algorithm,GA)求解CEC2013的28个函数

一、遗传算法GA

遗传算法(Genetic Algorithm,GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索优化方法,它模拟了自然选择和遗传中发生的复制、交叉(crossover)和变异(mutation)等现象,从任一初始种群(Population)出发,通过随机选择、交叉和变异操作,产生一群更适合环境的个体,使群体进化到搜索空间中越来越好的区域,这样一代一代不断繁衍进化,最后收敛到一群最适应环境的个体(Individual),从而求得问题的优质解。

二、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.

三、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为例)

四、完整MATLAB代码

http://www.lryc.cn/news/119771.html

相关文章:

  • Linux tar包安装 Prometheus 和 Grafana
  • 新一代分布式融合存储,数据场景All In One
  • CGroupAndroid实践篇】三、Android CGroup控制组初始化
  • lscpu的各个参数是什么意思?
  • Linux学习————redis服务
  • 【C++手撕系列】——设计日期类实现日期计算器
  • FFmpeg常见命令行(四):FFmpeg流媒体
  • ftp访问ubuntu文件系统
  • 网络防御(6)
  • 【Nginx15】Nginx学习:HTTP核心模块(十二)内嵌变量
  • 2023年中国HPV宫颈癌疫苗需求量、竞争格局、市场规模及行业细分产品规模分析[图]
  • 基于LMK2572的FPGA逻辑实现
  • 数据通信——VRRP
  • 第二章:CSS基础进阶-part2:CSS过渡与动画
  • 华为OD真题---玩牌高手--带答案
  • 案例14 Spring MVC文件上传案例
  • 如何用Python实现多线程
  • Chrome浏览器导出插件并安装到其他电脑浏览器上的解决方案
  • 对话即数据分析,网易数帆ChatBI做到了
  • 简单记录牛客top101算法题(初级题C语言实现)BM17 二分查找 BM21 旋转数组的最小数字 BM23 二叉树的前序遍历
  • 日常BUG——Java使用Bigdecimal类型报错
  • 为Windows Terminal设置背景图片
  • 【Spring】-Spring中Bean对象的存取
  • 机器人CPP编程基础-03变量类型Variables Types
  • 或许有用的开源项目平台——物联网、区块链、商城、CMS、客服系统、低代码、可视化、ERP等
  • 火车头采集伪原创插件【php源码】
  • 【数学】CF1514 C
  • SqlServer基础之(触发器)
  • 数据结构刷题训练:队列实现栈
  • (统计学习方法|李航)第四章 朴素贝叶斯算法——贝叶斯估计