• 大小: 13KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: C/C++
  • 标签: C++  遗传算法  

资源简介

C++源代码,完美下载 可以直接运行 有解释

资源截图

代码片段和文件信息

/********************************************************************/
/*             基于基本遗传算法的函数最优化   SGA.C                 */
/*     A Function Optimizer using Simple Genetic Algorithm          */
/* developed from the Pascal SGA code presented by David E.Goldberg */
/*              华南理工大学电子与信息学院   苏勇          2004年4月*/
/********************************************************************/
#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()      /* 遗传算法初始化 */
{
    /* 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4235  2005-11-08 00:57  遗传算法基本算法\ga.dsp

     文件        527  2005-11-08 00:57  遗传算法基本算法\ga.dsw

     文件      33792  2005-11-08 00:57  遗传算法基本算法\ga.ncb

     文件      48640  2005-11-08 00:57  遗传算法基本算法\ga.opt

     文件       2153  2005-11-08 00:57  遗传算法基本算法\ga.plg

     文件      17937  2005-11-08 00:57  遗传算法基本算法\sga.c

     目录          0  2011-03-23 19:16  遗传算法基本算法

----------- ---------  ---------- -----  ----

               107284                    7


评论

共有 条评论