目标优化机械臂轨迹,不知道NSGA-II算法改进后到底有没有效果,需要用测试函数进行验证,附matlab代码
参考多目标优化NSGA-II的实现(MATLAB完整代码)_nsga2 matlab_羽丶千落的博客-CSDN博客
目录
1.复制所有matlab代码
复制后列表如下
2.查看plotPareto.m
按照plotPareto.m里的“前沿数据/ZDT1.txt”创建文件夹,在上图中创建文件夹“前沿数据”,ZDT1.txt如何下载请看这篇博客,复制并保存到前沿数据文件夹中
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中就可以了,具体代码参考如下
进行比较,其他5个测试函数zdt也是如此