資源簡介
文中對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? {
if(i? gene[i]?=?functiontype[rand()%(functiontypeLen)];
}
else{
gene[i]?=?tailtype[rand()%(tailtypeLen)];
}
}
//output?the?initialization?gene
cout<<“initial:“;
for(i?=?0;?i? {
cout< }
cout<
}
void?Gene::geneDecode()
{
int?nCount?=?1;
for(int?i?=0;?i? 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? 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個文件信息
評論
共有 條評論