310实验室(七)OptimizationTemplateLibrary
利用泛型编程思想,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, 相对应的变量)。
310实验室(七)OptimizationTemplateLibrary的更多相关文章
- 310实验室 Linux 软件安装常见问题
电脑装好Linux系统后,系统默认安装软件不齐,需要自己根据自己的需要安装一些列工具软件,在linux系统中,用的最多的就是Synaptic Package Manager,什么是Synaptic?新 ...
- 310实验室(六)CMake学习心得
树形结构方式布局. OTL 中每一个文件中的CMakeLists.txt 有不同的作用:按查看文件的先后顺便进行分层理解, 根文件即第一次 中的.txt是 启用 CMAKE_MODULE_PATH模板 ...
- 310实验室OTL问题(2)
1.PyOptimization代码学习心得 (1).该部分由三个分块组成(按完成的相应的任务).第一部分,运行函数. 以optimization.py为入口程序,其思路是:首先获取路径,然后,初始化 ...
- 310实验室OTL问题----将写好的C++文件转换成Python文件,并将数据可视化
如图:文件夹 第一处:optimizer文件夹下的:optimizer.h文件中添加你所写代码的头文件 #include <OTL/Optimizer/Reference-NSGA-II/Re ...
- 310实验室OTL问题
1.首先是下载OTL文件包,网址是:github.com/O-T-L,可以直接点击网页上的下载链接,也可以使用unlix命令,git clone https://github.com/O-T-L/OT ...
- HTML5学习总结——canvas绘制象棋(canvas绘图)
一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...
- 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...
- 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]
家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...
- 从零开始学习jQuery (七) jQuery动画-让页面动起来!
一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 开发人员一直痛疼做动画. 但是有了jQuery你 ...
随机推荐
- php 不依赖数据实现删除图片,核心代码
<?php $file = "ueditor\php\upload\image\*\*.png"; foreach (glob("$file") as $ ...
- 选择列表中的列……无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
今天用SQL Server尝试实现一个SQL语句的时候,报了如标题所示的错误,通过在百度里面搜索,并亲自动手实现,终于发现问题所在,现在把它记录下来. 语句如下: select [OrderID],[ ...
- 【转载】C# 快速高效率复制对象另一种方式 表达式树
1.需求 在代码中经常会遇到需要把对象复制一遍,或者把属性名相同的值复制一遍. 比如: public class Student { public int Id { get; set; } publi ...
- window设置TortoiseGit连接git不用每次输入用户名和密码
1. 在Windows中添加一个HOME环境变量,值为%USERPROFILE%,如下图: 2. 在“开始>运行(快捷键:win+r)”中打开%Home%,然后在目录下新建一个名为“_netrc ...
- java导出word文件
java导出word文件 test5.ftl文件生存方法, 第一步:用word新建test5.doc,填写完整模板,将需导出数据用${}代替 第二步:将test5.doc另存为test5.xml 第三 ...
- Python学习笔记(二)——高级特性
知识点 切片 切片 取一个list或tuple的部分元素. 原理:调用__getitem__,__setitem__,__delitem__和slice函数. 根据官方的帮助文档(https://do ...
- mysql压力测试工具Mysqlslap
mysql 性能测试工具:The MySQL Benchmark Suite(不支持多CPU而且不是压力工具) 压力测试工具: MySQL super-smack:需要找能连接外网的机器,能连接外网的 ...
- 如何用MathType快速输入公式
我们在写论文的时候,如果涉及到数学公式的话,我们一般都会使用MathType软件,但同时对于一些新手来说不太用使用此款软件,输入公式时就会很慢,今天教大家如何利用MathType快速输入公式. 具体方 ...
- 了解 Go 1.9 的类型别名
http://colobu.com/2017/06/26/learn-go-type-aliases/
- Apache Commons工具集简介