博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
310实验室(七)OptimizationTemplateLibrary
阅读量:6889 次
发布时间:2019-06-27

本文共 1295 字,大约阅读时间需要 4 分钟。

利用泛型编程思想,C++模板。

首先定义变量或者重新typedef variables:

  模板中的变量:_TRandom、double  _TReal、_TProblem::TDecision _TDecision

  类    变    量:DTLZ<_TReal> _TProblem(测试问题)、SimulatedBinaryCrossover<_TReal,TRandom &> _TCrossover(交叉)、PolynomialMutation<_TReal,_TRandom &> _TMutation(变异) ClassName(_TReal,_TDecision,_TRandom &) _TOptimizer

 

  初始化测试问题:如 DTLZ2<_TReal>(nObjectives)--->DTLZ2(const size_t nObjectives, const size_t distDecisions =10)--->Tsuper(nObjectives, TBoundary(nObjectives-1+distDecisions, std::make_pair<TReal, TReal>(0,1)))。(这里设置TBoundary时,是初始化nObjectives-1+distDecisions 个(0,1)组?)

  初始化种群决策变量:initial = PopulationUniformReal(random, problem.GetBoundary(), 100)--->initial[i]= dist(random), where dist is std::uniform_real_distribution<_TReal>dist(boundary[i].first, boundary[i].second) ,boundary[i].first 到 boundary[i].second的均匀分布函数。

  初始化交叉类变量: _crossover( random, 1, problem.GetBoundary(), 20)。 CoupleCoupleCrossoverAdapter<_TReal, _TDecision, _TRandom &> crossover(_crossover, random)--->WithcoupleCoupleCrossover<TReal, TDecision>(crossover), WithRandom<TRandom>(random)。

  初始化变异类变量: mutation(random, 1/(_TReal)problem.GetBoundary().size(), problem.GetBoundary(), 20)。

  初始化具体类对象变量: optimizer(random, problem, initial, crossover, mutation, 相对应的变量)。

 

转载于:https://www.cnblogs.com/hoojjack/p/4474241.html

你可能感兴趣的文章
Java构造方法(构造函数)
查看>>
从mongodb移除分片
查看>>
手把手教你 MongoDB 的安装与详细使用(一)
查看>>
jedis实现分布式锁(悲观锁)
查看>>
判断数据是否是序列化数据
查看>>
jpa级联删除(CascadeType.REMOVE)
查看>>
深入理解Java虚拟机(二)
查看>>
解决大并发场景下数据重复插入
查看>>
由于卫星信号源参数变化引起的一起网络故障
查看>>
一次Oracle DG错误警示(生产库)
查看>>
关于linux克隆机无法正常获取IP
查看>>
Android工程gen目录无法生成的解决办法汇总
查看>>
HTTP请求状态及jQuery AJAX请求异常处理
查看>>
rem自适应布局的回顾总结
查看>>
第一章 学习shiro
查看>>
ISA部署防火墙策略的十六条守则
查看>>
利用Windows AD搭建KMS服务器
查看>>
java项目命名规则
查看>>
Understanding Spark Caching
查看>>
抓取服务器硬件信息脚本
查看>>