C 语言遗传算法代码
以下为遗传算法的源代码,计算一元代函数的代码和二元函数的
代码 以+++++++++++++++++++++++++++++++++++++为分割 线分
割开来,请 自行选择适合的代码,使用时请略看完代码的注释,在
要更改的地方更改为自己需要的代码。
+++++++++++++++++++++++++++++++一 元 函 数 代 码
++++++++++++++++++++++++++++
#include
#include
#include
#include
#define POPSIZE 1000
#define maximization 1
#define minimization 2
#define cmax 100
#define cmin 0
#define length1 20
#define chromlength length1 //染色体长度
//注意,你是求最大值还是求最小值
int functionmode=minimization;
//变量的上下限的修改开始
float min_x1=-2;//变量的下界
float max_x1=-1;//变量的上界
//变量的上下限的修改结束
int popsize; //种群大小
int maxgeneration; //最大世代数
double pc; //交叉率
double pm; //变异率
struct individual
{
char chrom[chromlength+1];
double value;
double fitness; //适应度
};
int generation; //世代数
int best_index;
int worst_index;
struct individual bestindividual; //最佳个体
struct individual worstindividual; //最差个体
struct individual currentbest;
struct individual population[POPSIZE];
//函数声明
void generateinitialpopulation();
void generatenextpopulation();
void evaluatepopulation();
long decodechromosome(char *,int,int);
void calculateobjectvalue();
void calculatefitnessvalue();
void findbestandworstindividual();
void performevolution();
void selectoperator();
void crossoveroperator();
void mutationoperator();
void input();
void outputtextreport();
void generateinitialpopulation( ) //种群初始化
{
int i,j;
for (i=0;i
{
for(j=0;j