資源簡介
標準遺傳算法優化支持向量機的參數,用matlab實現的,簡單易學,適合初學matlab和GA算法的童鞋們。

代碼片段和文件信息
//頭文件: Chrom.hpp
//目的: 為染色體提供基類
//語言: VC++?6.0
//時間: 1999年6月~2000年1月
//作者: 劉康
//環境: Win32
//////////////////////////////////////////////////////////////////////
#include?
#include?
#include?
#include?“chrom.hpp“
//染色體初始化種子初始化
unsigned?Chromosome::Seed?=?0;
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
//構造函數
Chromosome::Chromosome()
{
GeneLen?=?0;
Gene?=?NULL;
geneStr?=?NULL;
}
Chromosome::Chromosome(int?l)
{
GeneLen?=?l;
geneStr?=?new?char[GeneLen+1];
Init();
}
Chromosome::Chromosome(const?Chromosome?&c)
{
ChromNum?=?c.ChromNum;
GeneLen?=?c.GeneLen;
Gene?=?new?OneChmType[ChromNum];
geneStr?=?new?char[GeneLen+1];
for(int?i=0;?i Gene[i]?=?c.Gene[i];
}
//析構函數
Chromosome::~Chromosome()
{
if(Gene)?delete?[]Gene;
if(geneStr)?delete[]geneStr;
}
/////////////////////////////////////////////////////////////////////
//私有函數
/////////////////////////////////////////////////////////////////////
//染色體初始化
void?Chromosome::Init()
{
ChromNum?=?GeneLen/(sizeof(OneChmType)*8)+1;
Gene?=?new?OneChmType[ChromNum];
for(int?i=0;?i if(!Seed)?Seed?=?(unsigned)time(NULL);
srand(Seed);
Seed?=?Seed+(unsigned)time(NULL);
for(i=0;?i {
int?cNum?=?i/(sizeof(OneChmType)*8);
if(rand()>=RAND_MAX/2)?
{
Gene[cNum]?<<=?1;
Gene[cNum]?|=?0x1;
}
else?Gene[cNum]?<<=?1;
}
}
/////////////////////////////////////////////////////////////////////
//公有函數
/////////////////////////////////////////////////////////////////////
//設置染色體長度
void?Chromosome::SetLen(int?l)
{
if(Gene)?delete?[]Gene;
GeneLen?=?l;
if(geneStr)?delete?[]geneStr;
geneStr?=?new?char[GeneLen+1];
Init();
}
//返回字符串形式基因
const?char*?Chromosome::GetGeneStr()
{
for(int?i=0;?i {
int?cNum?=?i/(sizeof(OneChmType)*8);
int?bit?=?i-cNum*(sizeof(OneChmType)*8);
__int64?tmp?=?0x1;
tmp?<<=?bit;
if(Gene[cNum]?&?tmp)?geneStr[GeneLen-1-i]?=?‘1‘;
else?geneStr[GeneLen-1-i]?=?‘0‘;
}
geneStr[GeneLen]?=?‘\0‘;
return?geneStr;
}
//返回i1位到i2位的整型值包含i1i2位
unsigned?__int64?Chromosome::GetInt(int?i1?int?i2)
{
if((i2-i1)<0?||?(i2-i1)>=64?||?i1<1)?return?-1;
unsigned?__int64?tmp=0;
for(int?i=i2-1;?i>=i1-1;?i--)
{
int?cNum?=?i/(sizeof(OneChmType)*8); //i位所在組
int?bits?=?i-cNum*(sizeof(OneChmType)*8); //組內偏移
OneChmType?bit?=?(0x1< if(Gene[cNum]&bit)
{
tmp?<<=?1;
tmp?|=?0x1;
}
else
tmp?<<=?1;
}
return?tmp;
}
//=號重載函數
Chromosome&?Chromosome::operator?=?(const?Chromosome?&c)
{
if(Gene)?delete?[]Gene;
GeneLen?=?c.GeneLen;
ChromNum?=?c.ChromNum;
Gene?=?new?OneChmType[ChromNum];
for(int?i=0;?i return?*this;
}
//==號重載
bool?Chromosome::operator?==
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6596??2000-10-06?01:48??798923ga-vc\GA-VC\chrom.cpp
?????文件????????999??1999-07-20?10:46??798923ga-vc\GA-VC\GenDup.cpp
?????文件???????1058??1996-02-04?16:59??798923ga-vc\GA-VC\GenLinear.cpp
?????文件???????3055??2000-10-10?13:29??798923ga-vc\GA-VC\GenMSrch.cpp
?????文件????????761??2000-01-31?10:50??798923ga-vc\GA-VC\GenSteady.cpp
?????文件???????1795??2001-03-19?08:51??798923ga-vc\GA-VC\GenVacuum.cpp
?????文件???????1014??1999-07-20?11:25??798923ga-vc\GA-VC\LinearDup.cpp
?????文件????????941??2000-10-09?21:46??798923ga-vc\GA-VC\LinearSteady.cpp
?????文件???????1764??1996-02-11?16:01??798923ga-vc\GA-VC\chrom.hpp
?????文件????????748??2000-01-29?17:27??798923ga-vc\GA-VC\GenDup.hpp
?????文件???????4096??2001-03-19?12:18??798923ga-vc\GA-VC\Genetic.hpp
?????文件????????850??2000-01-29?17:25??798923ga-vc\GA-VC\GenLinear.hpp
?????文件????????876??2000-10-09?22:29??798923ga-vc\GA-VC\GenMSrch.hpp
?????文件????????749??1996-02-03?21:39??798923ga-vc\GA-VC\GenSteady.hpp
?????文件???????1423??2001-03-19?08:50??798923ga-vc\GA-VC\GenVacuum.hpp
?????文件????????755??2000-01-29?17:27??798923ga-vc\GA-VC\LinearDup.hpp
?????文件????????778??1996-02-03?21:39??798923ga-vc\GA-VC\LinearSteady.hpp
?????文件???????7843??2003-12-05?13:59??798923ga-vc\GA-VC\Genetic1.cpp.txt
????..A.SH.?????10240??2004-10-09?00:07??798923ga-vc\GA-VC\Thumbs.db
?????目錄??????????0??2011-03-06?08:20??798923ga-vc\GA-VC
?????目錄??????????0??2011-03-06?08:20??798923ga-vc
-----------?---------??----------?-----??----
????????????????46559????????????????????22
評論
共有 條評論