资源简介
NSGA II代码实现集合包含实例、讲解及 网络模型与多目标遗传算法书记(python、C、C++、matlab)
应用数学译丛 网络模型与多目标遗传算法_(日)玄光男,林林著;梁承姬,于歆杰译_北京:清华大学出版社_2017.03_248_14182156
代码片段和文件信息
/*
程序功能:实现nsga2算法,测试函数为ZDT1ZDT2ZDT3ZDT4ZDT6DTLZ1DTLZ2
说明:遗传算子为二进制竞赛选择,模拟二进制交叉和多项式变异
作者:(晓风)
email: 18821709267@163.com
参考论文:
A fast and Elitist Multiobjective Genetic Algorithm:NSGA-Ⅱ
Kalyanmoy DebAssociate Member IEEE Amrit Pratap Sameer Agarwal and T.Meyarivan
IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION
最初建立时间:2018.10.12
最近修改时间:2018.10.19
*/
/*
算法使用说明:
1.本算法为NSGA2,实验采用的测试函数为ZDT1ZDT2ZDT3ZDT4ZDT6DTLZ1DTLZ2,要选择哪个函数请修改第123行。
2.文件输出路径请修改中127行的a数组,格式必须与a保持相同,第125行设置路径中的实验次数(做几次实验就设到几,比如设置十次实验就1-10,最大实验次数为10,增加最大实验次数还需修改213行之后,增加与上述相同的随机种子选项即可)。
3.采用新的测试函数请修改input.h(13行开始是函数的约束条件)和func.h(41行开始是函数编写的部分)两个文件。
4.本算法默认采用实数编码,但迭代过程中进行了二进制编码,二进制编码采用了两种交叉类型,单点交叉和均匀交叉,选择那个修改input.h的11行。如果要使用二进制编码,请将func.h中的33-38行注释变成代码,29-32行加上注释,即得到二进制编码的结果。
5.本实验可修改的参数(input.h中)有popsize(种群大小),gener(迭代次数),pcross(交叉概率),di(SBX交叉参数),dim(多项式变异参数),pmut_r(实数编码的变异概率),pmut_b(二进制编码的变异概率)
6.实验的最大种群数为500,最大染色体长度为300,最大变量数目为30,最大函数数目为10,pi定义为3.1415926
7.实验输出结果有三个文件:1)output.txt 包含参数设置,每代的自变量值(实数编码,二进制编码),函数值,等级和拥挤度。2)fun.txt包含最后一代输出的函数值 3)time.txt包含程序运行时间
8.本实验没有实现约束问题,得再次算法的基础上进行修改。
*/
#include
#include
#include
#include
#include
#define square(x) ((x)*(x))
#define maxpop 500//最大种群数
#define maxchrom 300/*最大染色体长度*/
#define maxvar 30 //最大变量数目
#define maxfun 10 //最大函数数目
#define PI 3.1415926
int gener//迭代数目
nvarnchrom//变量数目,染色体数目(二进制)
vlen[maxvar]//储存每个变量的位的个数的数组(二进制)
optype//交叉类型:1为单点交叉和2为均匀交叉(二进制)
nfunc//函数数目
nmut//变异的个数
ncross;//交叉的次数
float seed//随机种子
pcross//交叉概率
pmut_bpmut_r//变异概率
lim_b[maxvar][2]lim_r[maxvar][2]//数组中变量的限制
di//交叉的分布指数
dim;//变异的分布指数
static int popsize//种群数目
chrom;//染色体总长度
double coef[maxvar];//解码使用的变量
/*个体*/
typedef struct
{
int genes[maxchrom]//二进制染色体
rank //个体等级
flag; //等级标志
float xreal[maxvar]//实变量的集合
xbin[maxvar];//染色体解码之后的集合
float fitness[maxfun]//适应度函数
crowd; //拥挤距离
}individual;
/*种群*/
typedef struct
{
int maxrank;//当前种群的最大等级
int rankno[maxpop];//个体的等级
individual ind[maxpop]//个体的集合
*ind_str;
}population;
#include “input.h“ /*输入条件*/
#include “random.h“ /*随机数量的算子*/
#include “realinit.h“ /*随机初始化种群*/
#include “init.h“ /*随机初始化种群*/
#include “decode.h“ /*解码二进制串*/
#include “ranking.h“ /*产生pareto前端*/
#include “func.h“ /*函数设置*/
#include “select.h“ /*二进制锦标赛*/
#include “bincross.h“ /*二进制交叉*/
#include “uniformxr.h“ /*均匀交叉*/
#include “realcross.h“ /*实数交叉*/
#include “binmut.h“ /*二进制变异*/
#include “realmut.h“ /*实数变异*/
#include “keepaliven.h“ /*精英选择和共享机制*/
#include “report.h“ /*打印输出报告*/
population old_pop
new_pop
mate_pop
*old_pop_ptr
*new_pop_ptr
*mate_pop_ptr;
//定义种群结构
//计算程序运行时间
clock_t st
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9288 2019-03-22 22:13 NSGA II\nsga2 C++版\NSGA2算法源代码C++.txt
文件 251 2019-03-22 22:18 NSGA II\nsga2 C++版\算法说明.txt
文件 1753 2018-10-17 16:09 NSGA II\nsga2 C语言版\bincross.h
文件 676 2018-10-17 09:52 NSGA II\nsga2 C语言版\binmut.h
文件 853 2018-10-15 11:58 NSGA II\nsga2 C语言版\decode.h
文件 3378 2018-10-19 20:52 NSGA II\nsga2 C语言版\func.h
文件 512 2018-10-15 11:57 NSGA II\nsga2 C语言版\init.h
文件 4844 2018-10-19 20:52 NSGA II\nsga2 C语言版\input.h
文件 10579 2018-10-18 12:34 NSGA II\nsga2 C语言版\keepaliven.h
文件 11692 2018-10-23 16:31 NSGA II\nsga2 C语言版\nsga2.cpp
文件 199694 2018-10-19 20:48 NSGA II\nsga2 C语言版\nsga2.exe
文件 1519 2018-10-15 11:00 NSGA II\nsga2 C语言版\random.h
文件 4378 2018-10-15 21:25 NSGA II\nsga2 C语言版\ranking.h
文件 3919 2018-10-17 09:29 NSGA II\nsga2 C语言版\realcross.h
文件 370 2018-10-15 11:57 NSGA II\nsga2 C语言版\realinit.h
文件 1650 2018-10-17 15:42 NSGA II\nsga2 C语言版\realmut.h
文件 2826 2018-10-18 19:46 NSGA II\nsga2 C语言版\report.h
文件 3309 2018-10-16 20:18 NSGA II\nsga2 C语言版\select.h
文件 1383 2018-10-19 20:45 NSGA II\nsga2 C语言版\uniformxr.h
文件 121 2019-03-22 22:01 NSGA II\nsga2 C语言版\算法说明.txt
文件 1273 2017-05-27 17:03 NSGA II\nsga2 matlab\crowding_distance.m
文件 970 2017-05-27 17:03 NSGA II\nsga2 matlab\evaluate_ob
文件 3509 2017-05-27 17:03 NSGA II\nsga2 matlab\genetic_operator.m
文件 5128 2017-05-27 17:03 NSGA II\nsga2 matlab\html\crowding_distance.html
文件 10289 2017-05-27 17:03 NSGA II\nsga2 matlab\html\genetic_operator.html
文件 4434 2017-05-27 17:03 NSGA II\nsga2 matlab\html\initialize_variables.html
文件 11714 2017-05-27 17:03 NSGA II\nsga2 matlab\html\non_domination_sort_mod.html
文件 13753 2017-05-27 17:03 NSGA II\nsga2 matlab\html\nsga_2.html
文件 6346 2017-05-27 17:03 NSGA II\nsga2 matlab\html\replace_chromosome.html
文件 6186 2017-05-27 17:03 NSGA II\nsga2 matlab\html\tournament_selection.html
............此处省略39个文件信息
- 上一篇:C++游戏编程入门 中文版 第4版 高清
- 下一篇:C/C++ 程序员 面试宝典
相关资源
- c++ primer plus 高清pdf+ 源码
- Matlab安装MinGW-w64 C/C++ 编译器
- linux系统C语言AVI格式音视频封装应用
- 未来教育二级C语言VIP版
- C++_MFC的CButtonST含使用说明书及多个
- OPC UA C++写的服务器和客户端 linux下的
- Visual C++数字图像模式识别技术详解
- c++ primer plus 中文第六版 超清电子文字
- PC版SoulKight
-
C++ ATL控件与ja
vasc ript交互 - C++ UNO牌游戏 - version 1.0
- Mastering Unreal Engine 4.X英文
- 51单片机自学笔记6寸pdf
- Dev-Cpp+5.4.2+MinGW+4.7.2
- MFC-High_Speed Charting绘制动态曲线
- 提高C++性能的编程技术 中文 PDF 非扫
- 《Effective C++中文版》&《Essential C++中
- 计算机基础知识思维导图.zip
- UeLogViewer的安装
- C++运用opencv进行二维多张全景图拼接
-
C++与ja
vasc ript交互 - The Art of Scientific Computing第二版、第三
- Effective C++:改善程序与设计的55个具
- 高仿的Win7扫雷程序
- 基于RFID的MFC考勤管理系统
- MFC 象棋 完备功能 含有AI
- Visual C++游戏开发技术与书与随书光盘
- 计算机考研资料
- MFC入门教程完整整合版
- 人力资源管理系统visual c++6.0 +SQL Ser
评论
共有 条评论