/***********************************************************
* *
* *
* *
***********************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#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();