C++(泛型编程)学习笔记【2】

                   

 

关于一篇paper(CAEA) experiment code的源代码阅读分析:本文针对一篇关于多目标进化算法研究的论文的代码进行了分析,通过分析学习进化算法相应知识并且进一步学习和掌握C++的泛型编程风格以及利用C++进行实验验证的手段。


 程序结构:

头文件:common.h, dmoea.h,global.h,moeadind.h,nsga2alg.h,nsga2ind.h,random.h,recomb.h,scalarfunc.h,sngaalg.h,sngaind.h (total :11)

源文件:common.cpp,domea.cpp,global.cpp,moea.cpp,moeadind.cpp,nsga2alg.cpp,nsga2ind.cpp,random.cpp,sngaalg.cpp,sngaind.cpp (total : 10)

本code实现了三个算法NSGA-II、MOEA/D、CAEA(在本项目中与CAEA算法相对应的代码文件是snga),项目的头文件与cpp文件基本上是对应的,并且与三个算法也是对应的。

首先,我们介绍每个头文件及cpp文件的作用和主要内容。

sngaalg.h头文件中声明了算法CAEA(CSNGA)的类,sngaalg.cpp文件给出了CSNGA类的方法的定义;

sngaalg.h中声明的CSNGA类的主要成员:

{

int 型变量popsize,表示种群的大小;

最主要的成员函数是执行函数:void execute(int run, vector<double>& hvl, vector<double>& igd, double& totaltime,  double &unevolvetime);

vector <CSNGAInd>ps; //ps是用来存储测试问题的Pareto前沿的;

init_population();   //初始化种群:

 

 }

init_population();  初始化中需要:

{

初始化种群个体

初始化锚点、参考点、最小点、观察点、极值点、划分扇形区域填充个体

}

sngaind.h是CAEA算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值