将NSGA-II用于求解9个多目标测试函数(ZDT1、ZDT2、ZDT3、ZDT4、ZDT6、Kursawe、Poloni、Viennet2、Viennet3)以及1个工程应用(盘式制动器设计)上实验,并采用IGD、GD、HV、SP进行指标评价。 close all; clear ; clc; % TestProblem测试问题说明: %一共10个多目标测试函数,详情如下: %1-5:ZDT1、ZDT2、ZDT3...
%% 计算目标函数值 functionvalue=zeros(size(newpopulation,1),2); %合并后种群的各目标函数值,这里的问题是ZDT1 functionvalue(:,1)=newpopulation(:,1); %计算第一维目标函数值 g=1+9*sum(newpopulation(:,2:poplength),2)./(poplength-1); functionvalue(:,2)=g.*(1-(newpopulation(:,1)./g...
/* Test problem ZDT4 # of real variables = 10 # of bin variables = 0 # of objectives = 2 # of constraints = 0 */ #ifdef zdt4 void test_problem (double *xreal, double *xbin, int **gene, double *obj, double *constr) { double f1, f2, g, h; int i; f1 = xreal[0]; g...
1#实现zdt.py2importnumpy as np3fromnsga2import*4importmatplotlib.pyplot as plt5fromzdt_funcsimport*678#画图9defdraw(P: object) ->object:10fortinP:11#每level12x = [p.f[0]forpinP]13y = [p.f[1]forpinP]14#plt.clf()15plt.xlabel("f0")16plt.ylabel("f1")17plt.scatter(x, y, s=...
最后附上用NSGA-II求解ZDT1函数的MATLAB代码,ZDT1函数如下: 源代码解析 01 | 主函数Main NSGA2 主函数Main_NSGA2,运行主函数的时候,命令行窗口会出现Test problem index :,这时需要输入1~14中的任意一个数字,意思就是选择14个测试函数中的任意一个函数。
下面这个图片能很好的说明NSGA-II的实现过程 最后附上用NSGA-II求解ZDT1函数的MATLAB代码,ZDT1函数如下: 关于怎么进行NSGA-II多目标优化算法的分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
%一共46个多目标测试函数,详情如下: %1-5:ZDT1、ZDT2、ZDT3、ZDT4、ZDT6 %6-12:DZDT1-DZ...
NSGA2算法代码理解: 设置200个个体,目标函数为2个,决策变量的个数为30,首先初始化得到一个每个个体位于0~1之间的决策变量,利用ZDT1函数求得目标值,保存在数组中。 寻找非支配排序,在这200个个体中,选中一个个体,将这个个体和其余个体的目标函数值比较,如果没有一个个体可以支配他,那么就将其加入到非支配集合中...
1#实现zdt.py2importnumpy as np3fromnsga2import*4importmatplotlib.pyplot as plt5fromzdt_funcsimport*678#画图9defdraw(P: object) ->object:10fortinP:11#每level12x = [p.f[0]forpinP]13y = [p.f[1]forpinP]14#plt.clf()15plt.xlabel("f0")16plt.ylabel("f1")17plt.scatter(x, y, s...
NSGA2算法代码理解: 设置200个个体,目标函数为2个,决策变量的个数为30,首先初始化得到一个每个个体位于0~1之间的决策变量,利用ZDT1函数求得目标值,保存在数组中。 寻找非支配排序,在这200个个体中,选中一个个体,将这个个体和其余个体的目标函数值比较,如果没有一个个体可以支配他,那么就将其加入到非支配集合中...