资源简介
标准遗传算法优化支持向量机的参数,用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
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论