- 論壇徽章:
- 0
|
下面是我寫的一個(gè)遺傳算法的類,類的結(jié)構(gòu)總是出錯(cuò),我分不清哪個(gè)該公有,哪個(gè)該私有?
#include <stdlib.h> //求函數(shù)在(-4,4)的最大值??應(yīng)該是[-4,4)
#include <math.h>
#include <time.h>
#include <string.h>
//#include "GA2Dlg.h"
const int POPSIZE=10;//population size
const double Pc=0.8; //crossover probability
const double Pm=0.005;//mutation probability
const double G=0.8; //generation gap
const int LENGTH=22; // 一個(gè)變量的長(zhǎng)度
const int Maxgeneration=20;
const int N=2; // 函數(shù)變量個(gè)數(shù);
struct indivaual
{char chrom[N*LENGTH];
double value;
double fitness;
};
class GA
{
void decode(struct indivaual *p);
void Reproduction(); //復(fù)制 生成matingpool
void Crossover();
void Mutation(); //基因突變
double value[POPSIZE][N]; //變量值
public:
struct indivaual population[POPSIZE];
struct indivaual matingpool[POPSIZE];
GA();
void GenerateInitialPopulation();
void Function(struct indivaual *p);
void Fitness(struct indivaual *p);
void GenerateNextpopulation();
void Order(struct indivaual *q); //排序
void OutputTextReport(CListBox& m_list,int generation);
virtual ~GA();
}; |
|