资源简介
文中对GPED 有关的定义和性质作了详细地阐述,并通过实验对GPED 和基本GEP 解码方法进行了对比研究。最后,基于GPED,并从初始群体生成、选择策略、遗传算子等方面对GEP 作了改进,提出了一种新的算法GPEP,并将其应用于碎石桩复合地基承载力预测。结果表明GPEP 算法在预测精度和演化效率上都超过遗传神经网络、GP 等方法。
代码片段和文件信息
// Gene.cpp: implementation of the Gene class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “Gene.h“
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Gene::Gene()
{
}
Gene::~Gene()
{
}
void Gene::baseSetting(int gn int hl)
{
geneNum = gn;
headLen = hl;
functiontypeLen = sizeof(functiontype)/sizeof(char) - 1;
//printf(“ %d“ functiontypeLen);
tailtypeLen = sizeof(tailtype)/sizeof(char) - 1;
//printf(“ %d“ tailtypeLen);
tailLen = headLen + 1;
geneLen = headLen + tailLen;
gene = new char[geneLen];
}
void Gene::Initial()
{
int i;
srand((unsigned)time(NULL));
for(i = 0; i < geneLen; i++)
{
if(i < headLen){
gene[i] = functiontype[rand()%(functiontypeLen)];
}
else{
gene[i] = tailtype[rand()%(tailtypeLen)];
}
}
//output the initialization gene
cout<<“initial:“;
for(i = 0; i < geneLen; i++)
{
cout< }
cout<
}
void Gene::geneDecode()
{
int nCount = 1;
for(int i =0; i < geneLen && nCount != 0; i++){//complete scaning
if(gene[i] == ‘+‘ ||gene[i] == ‘-‘ ||gene[i] == ‘*‘ ||gene[i] == ‘/‘)nCount +=1;
else if(gene[i] == ‘Q‘ ||gene[i] == ‘S‘ ||gene[i] == ‘C‘ ||gene[i] == ‘T‘
||gene[i] == ‘L‘ ||gene[i] == ‘E‘ ||gene[i] == ‘~‘)nCount +=0;
else if(gene[i] == ‘a‘ ||gene[i] == ‘b‘ ||gene[i] == ‘c‘ ||gene[i] == ‘d‘||gene[i] == ‘e‘)
nCount += -1;
}
geneLenUse = i; //get the useful gene
}
void Gene::Result(const double Dc[]const double *tenvary)
{
double temp;
char string[35];
double number[34];
int iflagpositionbegin; //begin为Dc[]的下标指针
int outlength = 0;
char *output = new char[geneLenUse];
for(i = geneLenUse - 1; i >=0; i--){
output[geneLenUse - 1 - i] = gene[i];
}
outlength = geneLenUse;
output[outlength] = ‘\0‘;
cout<<“useful Length = “< cout<<“decode :“;
for(i = 0; i < outlength; i++){
cout< }
cout<
i = 0;
flag=0;
position=0;
begin=0;
while(output[position]!=‘\0‘&&output[position]!=‘\n‘&&position string[flag]=output[position];
if(string[flag]==‘a‘||string[flag]==‘b‘||string[flag]==‘c‘||string[flag]==‘d‘||string[flag]==‘e‘||string[flag]==‘f‘)
{
if(string[flag]==‘a‘){
number[flag]=tenvary[0];
flag++;
position++;
}
else if(string[flag]==‘b‘){
number[flag]=tenvary[1];
flag++;
position++;
}
else if(string[flag]==‘c‘){
number[flag]=tenvary[2];
flag++;
position++;
}
else if(string[flag]==‘d‘){
number[flag]=tenvary[3];
flag++;
position++;
}
else if(string[flag]==‘e‘){
number[flag]=tenvary[4];
flag++;
position++;
}
else if(string[flag]==‘f‘){
number[flag]=tenvary[5];
flag++;
position++;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 19930 2009-09-12 09:31 PGEP\Debug\Gene.obj
文件 0 2009-09-12 09:31 PGEP\Debug\Gene.sbr
文件 164864 2009-09-12 09:31 PGEP\Debug\PGEP.bsc
文件 253991 2009-09-12 09:31 PGEP\Debug\PGEP.exe
文件 341960 2009-09-12 09:31 PGEP\Debug\PGEP.ilk
文件 3536 2009-09-12 09:31 PGEP\Debug\PGEP.obj
文件 370840 2009-09-12 09:31 PGEP\Debug\PGEP.pch
文件 607232 2009-09-12 09:31 PGEP\Debug\PGEP.pdb
文件 0 2009-09-12 09:31 PGEP\Debug\PGEP.sbr
文件 2994 2009-09-12 09:31 PGEP\Debug\PGEPClass.obj
文件 0 2009-09-12 09:31 PGEP\Debug\PGEPClass.sbr
文件 2199 2009-09-12 09:31 PGEP\Debug\StdAfx.obj
文件 27711 2009-09-12 09:31 PGEP\Debug\StdAfx.sbr
文件 58368 2009-09-12 09:31 PGEP\Debug\vc60.idb
文件 69632 2009-09-12 09:31 PGEP\Debug\vc60.pdb
文件 5461 2009-09-12 09:27 PGEP\Gene.cpp
文件 922 2009-09-12 09:27 PGEP\Gene.h
文件 398 2009-10-10 15:45 PGEP\PGEP.cpp
文件 4760 2009-10-10 15:52 PGEP\PGEP.dsp
文件 533 2009-10-10 14:07 PGEP\PGEP.dsw
文件 66560 2009-09-12 09:31 PGEP\PGEP.ncb
文件 59904 2009-09-12 09:17 PGEP\PGEP.opt
文件 0 2009-09-12 09:31 PGEP\PGEP.plg
文件 425 2009-10-10 14:09 PGEP\PGEPClass.cpp
文件 528 2009-10-10 14:09 PGEP\PGEPClass.h
文件 1196 2009-10-10 14:07 PGEP\ReadMe.txt
文件 291 2009-10-10 15:55 PGEP\StdAfx.cpp
文件 880 2009-10-10 15:56 PGEP\StdAfx.h
目录 0 2009-10-13 12:52 PGEP\Debug
目录 0 2009-10-13 12:52 PGEP
............此处省略4个文件信息
相关资源
- 信息学奥赛一本通课后练习答案汇总
- 操作系统实验生产者与消费者实验报
- windows rpc基本使用Demo
- 基于QT实现2048小游戏
- Sony F828 Raw 文件格式解码
- Linux下基于原始套接字的嗅探器
- 二维多边形布尔运算,包括多边形绘
- libdca-0.0.5.tar.bz2
- 学生管理系统 根据数据结构的链表知
- StdAfx.h
- VC使用jmail.dll编写电子邮件发送和接受
- RS(255247)编码解码器Verilog源代码
- qt串口通信,实现发送和接收
- 中缀表达式转换成后缀表达式
- 机器狗源代码
- 用qt写的学生成绩管理系统
- 用qt写的签到程序
- 基于dspmp3解码
- xvid mpeg4 codec 编码解码器 v1.1.3 Final 汉
- MSComm_VS2010
- 日志库EasyLogging++共享功能演示工程
- 目录重定向源代码工程
- 图书信息管理系统设计
- KinectSDK2.0音频获取
- KinectSDK2.0骨骼帧与笑面男
- KinectSDK2.0深度帧获取
- HDB3解码Verilog程序源码,hdb3_decode.v
- 基于FPGA的IRIG-B的编码及解码
- 用PIC汇编写的,有接收和发送程序.
- mpeg2编码解码
评论
共有 条评论