ZDT1、ZDT2、DTLZ1测试函数也写好了,附有实验效果图,希望对大家学习有帮助!! void generateLamda(int M)//产生N 个权重向量 weight vector //lamdaM 为 N*M矩阵(N个lamda,每个lamda有m维) { //动态生成二维数组 lamdaMat=new double *[N+3];//注意,int*[10]表示一个有10个元素的指针数组 for(int i=1; i<=N+1; i++) { lamdaMat[i]=new double[M+1]; } belta=new double *[N+3];//注意,int*[10]表示一个有10个元素的指针数组 for(int x=1; x<=N+1; x++) { belta[x]=new double[M+1]; } // 2目标 if(M==2) { double *array1=new double[N+3]; for(int i=0; i<=N+1; i++) array1[i]=i*1.0/N; for(int i=1; i<=N+1; i++)//////////////////////////////// { lamdaMat[i][1]=array1[i-1]; lamdaMat[i][2]=1-array1[i-1];//保证M个分量之和为1 } ////////////////////////////////////////////////////////////
2019-12-21 20:37:52 756KB MOEAD
1
对应论文RM-MEDA: A regularity model based multiobjective estimation of distribution algorithm,张青富老师的源代码,很规范,值得学习。
2019-12-21 18:55:35 77KB 多目标算法 C++ 进化计算
1