www.pudn.com > ga_model.rar > ga.cpp


/*********************************************************** 
*                                                          * 
*                                                          *         
*                                                          * 
***********************************************************/ 
 
#include 
#include 
#include 
#include 
 
#define  POPSIZE    500               
#define  maximization  1 
#define  minimization  2 
 
#define  length    10                    
#define  chromlength  length        //染色体长度 
 
////////////////////////////////////////////////////////// 
/*                         变量声明                     */ 
//////////////////////////////////////////////////////////  
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; 
individual bestindividual;          //最好个体 
individual worstindividual;         //最差个体 
individual currentbest; 
individual population[POPSIZE]; 
 
////////////////////////////////////////////////////// 
/*                  函数声明                        */ 
////////////////////////////////////////////////////// 
void generateinitialpopulation(); 
void generatenexpopulation(); 
void evaluatepopulation(); 
long decodechaomosome( char *, int, int ); 
void calculateobjectvalue(); 
void calculatefitnessvalue(); 
void findbeststandworstindividual(); 
void performevolution(); 
void selectoperator(); 
void crossoveroperator(); 
void mutationoperator(); 
void input(); 
void output();