📄 gapop1.h
字号:
// gapop1.h: interface for the gapop1 class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GAPOP1_H__4E8E6F67_9068_41FA_A431_57A0B97832E7__INCLUDED_)
#define AFX_GAPOP1_H__4E8E6F67_9068_41FA_A431_57A0B97832E7__INCLUDED_
#include "gareal.h"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
struct gaopt
{
int opt1;
int opt2;
};
class gapop1
{
public:
void settestf(int fn){testf=fn;}
void (*pobj1)(gareal &ga1);
void setpobj1(void (*pf)){pobj1=(void (*)(gareal &ga1))pf;}
void (*pobj)(gareal *ga1,int n);
void setpobj(void (*pf)){pobj=(void (*)(gareal *ga1,int n))pf;}
int nrun(int w);
void repoprun();
void rlast();
void wlast();
void avigen();
gareal& newinv();
void newinv(gareal & g1);
void objfunc(gareal *ga1,int n);
int compare(gareal&g1,gareal * pg,int n);
int compare(gareal & g1,gareal & g2);
int compare(gareal *g1, gareal *g2);
void realtobin(double vh,double vl,double v,int n,char *cbin);
double bintoreal(double vh,double vl,int n,char* cbin);
void sgapop();
// void popcopy(gareal &p1,gareal &p2);
void output();
void poprun();
// void mutation(double p1,double& r1);
double gauss(int n);
double mutation(double p1, double hb,double lb);
void mutation(gareal& p1, gareal& r1);
void mutation(gareal& p1,int mi, gareal& r1);
void mutation(gareal& p1);
void cross(double p1,double p2, double& r1,double& r2);
void cross(gareal& p1, gareal& p2, gareal& r1, gareal& r2);
void cross(gareal& p1, gareal& p2);
// double fitnessfunc();
void objfunc(gareal & ga1);
void init();
void init1();
void initpop(int pops,int maxg,double pc,double pm,int grn,double *hb,double *lb);
void initpop(int pops,int maxg,double pc,double pm,int grn,double hb,double lb);
void initgareal(int grn,double *hb,double *lb);
void initgareal(int grn,double hb,double lb);
void Pophlb(double *hb1,double *lb1);
void Pophlb(double hb1,double lb1);
double Poplb(int n);
void Poplb(int n,double lb1);
double Pophb(int n);
void Pophb(int n,double hb1);
int Garealn();
void Garealn(int grn);
double poprand();
void poprandn(int n,int ns,int *popn);
void popsort(double *s1,int n,int *r1);
void popsort(int n,int *s1);
int Bestgen();
int Popsize();
void Popsize(int pops);
int Maxgen();
void Maxgen(int mgn);
int Curgen();
void Curgen(int cgn);
double Pcross();
void Pcross(double pc);
double Pmutation();
void Pmutation(double pm);
gaopt getcrossopt() {return crossopt;}
gaopt getmutopt(){return mutopt;}
void setcrossopt(gaopt copt);
void setmutopt(gaopt mopt);
void setcrossopt(int t1,int t2);
void setmutopt(int t1,int t2);
gapop1();
gapop1(int pops,int maxg,double pc,double pm,int grn,double *hb,double *lb);
gapop1(int pops,int maxg,double pc,double pm,int grn,double hb,double lb);
gapop1(int pops,int maxg,double pc,double pm);
virtual ~gapop1();
gareal bestgareal,curbestgareal,avigareal;
long na;
int objopt1;
private:
double pcross,pmutation; //交叉率,变异率
gaopt crossopt,mutopt;
double maxfit,minfit; //最佳适应值,平均适应值,最小适应值
int ncross,nmutation; //交叉对数,变异个数
double *pophb,*poplb; //变量上下限
int garealn;//个体的变量个数
int popsize,curgen,maxgen,bestgen; //种群数,当前代数,最大代数,最佳代
gareal *garealpop;//
int testf;
// int *nc,*nm;//
};
#endif // !defined(AFX_GAPOP1_H__4E8E6F67_9068_41FA_A431_57A0B97832E7__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -