目标优化机械臂轨迹,不知道NSGA-II算法改进后到底有没有效果,需要用测试函数进行验证,附matlab代码
参考多目标优化NSGA-II的实现(MATLAB完整代码)_nsga2 matlab_羽丶千落的博客-CSDN博客
目录
1.复制所有matlab代码
2.查看plotPareto.m
3.运行nsga2.test.m
4.出结果
5.改进初始种群NSGA-II算法matlab代码
1.复制所有matlab代码
复制后列表如下
2.查看plotPareto.m
按照plotPareto.m里的“前沿数据/ZDT1.txt”创建文件夹,在上图中创建文件夹“前沿数据”,ZDT1.txt如何下载请看这篇博客,复制并保存到前沿数据文件夹中
测试函数-ZDT函数.txt版本免费下载_邸笠佘司的博客-CSDN博客多目标优化问题中,改进NSGA-II算法需要测试函数ZDT函数来查看改进的效果如何,大多博客下载需要积分,在这附上免费网址,大家自行下载。包含ZD1-ZDT6,测试函数-ZDT函数.txt版本免费下载https://blog.csdn.net/m0_68738477/article/details/131574219?spm=1001.2014.3001.5501
3.运行nsga2.test.m
直接运行nsga2.test.m会导致,五个测试函数的图像没有一一保存
所以最好在测试函数zdt1时,将剩下的测试函数注释掉,如下所示
将nsga2.test.m中的case1,使用ctrl+R整行注释掉
4.出结果
5.改进初始种群NSGA-II算法matlab代码
如图所示,这是每个.m的文件的含义
nsga2_test:测试函数,用于保存测试数据
nsga2_main:主函数,,用于运行NSGA2算法的框架
get_variable_bounds:获取种群范围
init_pop:种群初始化
sort_pop:种群排序
select_parent:选择父代
myga:进行遗传算法,杂交变异
combined_pop:子代和原始种群进行合并
select_pop:选择新一代种群
calculate_gd:计算GD
calculate_sp:计算SP
calculate_pop:计算种群
改进的方法有许多,每个.m都可以进行改进,我是在init_pop:种群初始化方向上进行改进,具体如何改进就不说了,将代码复制到原来的init_pop.m中就可以了,具体代码参考如下
NSGA-II改进之种群初始化_羽丶千落的博客-CSDN博客原NSGA-II的算法在初始化种群的时候采用的是随机生成。随机代表着不确定,且随机生成的种群在整个空间上表现为不均匀;为消除随机初始化带来的不确定,和种群在空间上分布不均匀问题,由此引出新的初始化种群方式:佳点集生成种群_种群初始化https://blog.csdn.net/weixin_44034444/article/details/129102116?spm=1001.2014.3001.5502改进后运行后的图像如下
进行比较,其他5个测试函数zdt也是如此