资源简介
将简单遗传算法SGA的单点交叉改进为了多点交叉

代码片段和文件信息
/********************************************************************/
/* 基于基本遗传算法的函数最优化任意随机交叉父体 SGAM.C */
/* A Function Optimizer using Simple Genetic Algorithm */
/* developed from the Pascal SGA code presented by David E.Goldberg */
/********************************************************************/
#include
#include
/* 全局变量 */
struct individual /* 个体*/
{
unsigned *chrom; /* 染色体 */
double fitness; /* 个体适应度*/
double varible; /* 个体对应的变量值*/
int xsite; /* 交叉位置 */
int parent[2]; /* 父个体 */
int *utility; /* 特定数据指针变量 */
};
struct bestever /* 最佳个体*/
{
unsigned *chrom; /* 最佳个体染色体*/
double fitness; /* 最佳个体适应度 */
double varible; /* 最佳个体对应的变量值 */
int generation; /* 最佳个体生成代 */
};
struct individual *oldpop; /* 当前代种群 */
struct individual *newpop; /* 新一代种群 */
struct bestever bestfit; /* 最佳个体 */
double sumfitness; /* 种群中个体适应度累计 */
double max; /* 种群中个体最大适应度 */
double avg; /* 种群中个体平均适应度 */
double min; /* 种群中个体最小适应度 */
float pcross; /* 交叉概率 */
float pmutation; /* 变异概率 */
int popsize; /* 种群大小 */
int lchrom; /* 染色体长度*/
int chromsize; /* 存储一染色体所需字节数 */
int gen; /* 当前世代数 */
int maxgen; /* 最大世代数 */
int run; /* 当前运行次数 */
int maxruns; /* 总运行次数 */
int printstrings; /* 输出染色体编码的判断,0 -- 不输出 1 -- 输出 */
int nmutation; /* 当前代变异发生次数 */
int ncross; /* 当前代交叉发生次数 */
/* 随机数发生器使用的静态变量 */
static double oldrand[55];
static int jrand;
static double rndx2;
static int rndcalcflag;
/* 输出文件指针 */
FILE *outfp ;
/* 函数定义 */
void advance_random();
int flip(float);rnd(int int);
void randomize();
double randomnormaldeviate();
float randomperc()rndreal(floatfloat);
void warmup_random(float);
void initialize()initdata()initpop();
void initreport()generation()initmalloc();
void freeall()nomemory(char *)report();
void writepop()writechrom(unsigned *);
void preselect();
void statistics(struct individual *);
void title()repchar (FILE *char *int);
void skip(FILE *int);
int select();
void objfunc(struct individual *);
int crossover (unsigned * unsigned * unsigned * unsigned *);
void mutation(unsigned *);
void initialize() /* 遗传算法初始化 */
{
/* 键盘输入遗传算法参数 */
initdata();
/* 确定染色体的字节长度 */
chrom
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 20182 2004-11-04 20:13 遗传算法多点交叉算法.c
----------- --------- ---------- ----- ----
20182 1
- 上一篇:非常精美的几千个LabVIEW按钮图标
- 下一篇:labview精美控件
相关资源
- QGA 量子遗传算法
- 基于遗传算法的排课系统
- 遗传算法的M文件
- 遗传算法PPT(Genetic_Algorithms.ppt)
- 遗传算法的堆石料非线性本构模型参
- 遗传算法越野小车unity5.5
- 车间布局遗传算法
- 遗传算法论文11篇
- 基于遗传算法的立体车库车位调度研
- 遗传算法解决TSP旅行商问题程序开源
- 基于GA-ELM的瓦斯涌出量预测
- 5种多旅行商问题(MTSP)的遗传算法
- 人工智能和遗传算法的结合推荐必读
- 遗传算法0-1背包问题论文
- 改进的k_均值聚类排挤小生境遗传算法
- 基于遗传优化的无刷直流电机模糊控
- GA+ICP代码
- 计算智能大作业合集
- 遗传算法与工程优化_玄光男_程润伟
- NSGA和NSGAII算法
- 群体智能.ppt
- Qt写的遗传算法加画图程序
- 遗传算法优化支持向量机算法
- 遗传算法原理及应用--选择交叉变异算
- 使用神经网络与遗传算法的小游戏
- 遗传算法的适应度函数构造
- 车间调度遗传算法程序
- 遗传算法及其代码实现
- 遗传算法的基本理论与应用
- 遗传算法原理及应用
评论
共有 条评论