资源简介
基础的遗传算法的代码,是用vs2010编写的c++代码,有简单注释.zip
代码片段和文件信息
#include
#include
#include
//#include
#include
#include
using namespace std;
#define Maxpop 100
#define Maxstring 32
typedef struct{
//声明结构体类型
char chrom[Maxstring];
//染色体数组
float xfitness;
int parent1parent2xsite;
}pp;
pp *oldpop*newpop*p1;
int popsizelchromgenMaxgennmutationncrossjcrossMaxppMinppjrand;
float pcrosspmutationsumfitness MaxMinavgseedrj[Maxpop]oldrand[Maxpop];
double coef;
float objfunc(float);//目标函数
int select();//选择策略
int flip(float);
int crossover(char *char *int);//交叉
char mutation();//变异
void generation();//遗传运算
void initialize();//初始化
void report();//报告
void initpop();//初始化种群
void initdata();//初始化数据
void initreport();//初始化报告
double decode(char *);//译码
float random1();//随机
void randomize1();
void pause();//终止
void test(char x)
{
cout< }
float objfunc(float x1)
//compute object fitness;
{
float y;
y=3.14*x1;
y=sin(2.0*y);
return y*y;
}
void statistic(pp *pop)
//statistic the fitness of population
{
int j;
sumfitness=pop[0].fitness;
Max=pop[0].fitness;
Min=pop[0].fitness;
Maxpp=0;
Minpp=0;
for(j=1;j sumfitness=sumfitness+pop[j].fitness;
if(pop[j].fitness>Max){
Max=pop[j].fitness;
Maxpp=j;
}
if(pop[j].fitness Min=pop[j].fitness;
Minpp=j;
}
}//end for
avg=sumfitness/(float)popsize;
}
void generation()
//update a generation;
{
int jmate1mate2;
j=0;
do{
mate1=select();
mate2=select();
crossover(oldpop[mate1].chromoldpop[mate2].chromj);
newpop[j].x=(float)decode(newpop[j].chrom);
newpop[j].fitness=objfunc(newpop[j].x);
newpop[j].parent1=mate1;
newpop[j].parent2=mate2;
newpop[j].xsite=jcross;//recode the cross point;
newpop[j+1].x=(float)decode(newpop[j+1].chrom);
newpop[j+1].fitness=objfunc(newpop[j+1].x);
newpop[j+1].parent1=mate1;
newpop[j+1].parent2=mate2;
newpop[j+1].xsite=jcross;
j=j+2;
}while(j }
void initdata()
//input control parameters
{
int chj;
cout<<“*********SGA DATA ENTRY AND INITIALIZATION******* “;
cout<<“Enter population size:“;
cin>>popsize;
// cout<<“Enter chromosome length:“;
// cin>>lchrom;
lchrom = 32;
cout<<“Enter Max generations“;
cin>>Maxgen;
cout<<“Enter crossover probability:“;
cin>>pcross;
cout<<“Enter mutation probability:“;
cin>>pmutation;
//randomize1();
nmutation=0;
ncross=0;
}
void initreport()
{
cout<<“Population size:“< // cout<<“Chromosome length:“< cout<<“Maximum # of generation:“< cout<<“Crossover probability:“< cout<<“Mutation probability:“< cout<<“----------------------------------------------------- “;
cout<<“Initial Population Maximum Fitness:“< cout<<“Initial Population Average Fitness:“< cout<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-01-14 09:12 GA\
目录 0 2015-09-18 16:48 GA\Debug\
文件 51200 2015-05-25 08:54 GA\Debug\GA.exe
文件 421176 2015-05-25 08:54 GA\Debug\GA.ilk
文件 658432 2015-05-25 08:54 GA\Debug\GA.pdb
目录 0 2015-09-18 16:48 GA\GA\
目录 0 2015-09-18 16:48 GA\GA\Debug\
文件 9120 2015-05-25 08:54 GA\GA\Debug\CL.read.1.tlog
文件 194 2015-05-25 08:54 GA\GA\Debug\CL.write.1.tlog
文件 1187 2015-04-10 14:53 GA\GA\Debug\GA.Build.CppClean.log
文件 406 2015-05-25 08:54 GA\GA\Debug\GA.exe.em
文件 472 2015-05-25 08:54 GA\GA\Debug\GA.exe.em
文件 381 2015-05-25 08:54 GA\GA\Debug\GA.exe.intermediate.manifest
文件 48 2015-05-25 08:54 GA\GA\Debug\GA.lastbuildstate
文件 3832 2015-05-25 08:54 GA\GA\Debug\GA.log
文件 194 2015-04-10 14:53 GA\GA\Debug\GA_manifest.rc
文件 91123 2015-05-25 08:54 GA\GA\Debug\SGA.obj
文件 526 2015-05-25 08:54 GA\GA\Debug\cl.command.1.tlog
文件 2 2015-05-25 08:54 GA\GA\Debug\li
文件 2 2015-05-25 08:54 GA\GA\Debug\li
文件 2 2015-05-25 08:54 GA\GA\Debug\li
文件 2 2015-05-25 08:54 GA\GA\Debug\li
文件 2 2015-05-25 08:54 GA\GA\Debug\li
文件 2 2015-05-25 08:54 GA\GA\Debug\li
文件 1210 2015-05-25 08:54 GA\GA\Debug\li
文件 2716 2015-05-25 08:54 GA\GA\Debug\li
文件 452 2015-05-25 08:54 GA\GA\Debug\li
文件 308 2015-05-25 08:54 GA\GA\Debug\mt.command.1.tlog
文件 206 2015-05-25 08:54 GA\GA\Debug\mt.read.1.tlog
文件 206 2015-05-25 08:54 GA\GA\Debug\mt.write.1.tlog
文件 386 2015-05-25 08:54 GA\GA\Debug\rc.command.1.tlog
............此处省略14个文件信息
- 上一篇:基于MFC的科学计算器
- 下一篇:获取U盘VIDPID盘符物理序列号源码可运行
相关资源
- 遗传算法解决背包问题(C++版本)
- 用遗传算法实现语音识别--基于mfcc参
- 用遗传算法解决车辆优化调度问题
- 遗传算法解八数码问题
- 遗传算法解决0-1背包问题
- C/C++使用遗传算法解决车辆路径问题
- NSGA II代码实现集合包含、讲解及 网络
- 遗传算法c++代码.rar
- 基于遗传算法的MFC矩形排样UI
- C++遗传算法 解决01背包问题 注释全
- 遗传算法解决TSP问题C++版
- 遗传算法求函数最大值,C++实现
- 遗传算法c++代码,车间调度
- 遗传算法C++
- 遗传算法C++实现若干
- c++遗传算法,用bitset实现
- 5个遗传算法C语言源码
- 基于遗传算法的最短路径选择问题
- 遗传算法求解中国旅行商问题C语言
- 模拟退火遗传算法的C++程序
- c++利用遗传算法求解函数优化问题
- xcs 基于遗传算法的自动学习分类器系
- 标准遗传算法c语言程序
- 遗传算法求函数最值(C语言实现)
- 遗传算法C语言实现
- 遗传算法解决01背包问题
- 遗传算法求解混合流水车间调度问题
- 遗传算法实现Rosenbrock函数的求解过程
- 遗传算法解决TSP问题 旅行商问题 程序
- 基于遗传算法的人工生命模拟 AL_GA.
评论
共有 条评论