⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 moga2.h

📁 moga2
💻 H
字号:
#include <iostream.h>#include <stdio.h>#include <stdlib.h>#include <math.h>#include <fstream.h>#include <string.h>#include <malloc.h>#include <time.h>#include <sys/timeb.h>/*clase que em permite la generacion, y manipulacion de una generacion*/class Individuo{ public:  double sumaValores;  double *aptObj;  double *aptObjEsc;  int *genotipo;  double apt;  double valEsp;  long rank;  long loc;};class MallaAdap{  int posPARETO,tamPARETO;  Individuo *PARETO;  long *hipercubo;  long hipercubosUtilizadosVar;  int nObjs;  int nDivs;  long lMalla;  double *tamDiv;  double *inicioMalla;  int iTot;  double restPobNRem;  bool restPobNRemb;  bool restableceMemoriaVar;  int bits;  int sndElit;  long NG; public:  MallaAdap(int,int,int);  void gPARETO(Individuo *ind);  int dominaAPareto(Individuo *ind);  void eliminaDominados(int *dominados);  void copiaxxx(Individuo *ind,Individuo *ind2);  int Domina(Individuo *ind1, Individuo *ind2);  virtual int restricciones(int *){return 0;};  void copia(int *,int *, int);  void copia(double *,double *, int);  int *inicializa();  void actualizaLoc();  void inicializaDivisiones();  long cualLoc(Individuo *ind);  void FunPARETO(Individuo *ind);  int masPoblado(long mPoblado,long r);  long hipercubosUtilizados();  long buscaMasPoblado();  long buscaIndConLoc(long mp);   void ImprimeValores();};class Representacion{ protected:  int nGenes;  int *presicion;//y su presicion  int bits;//numero de "bits" que se necesita.  int *bitsXgene;  double *lSup;//Liminte superior  double *lInf;//limite infierior  int Cantidad;  int base;//base la cual me indica si sequiere una representacion binaria o numerica public://constructur  Representacion(int b,int ngenes,double *linf, double *lsup, int *pres, int iguales=1);  ~Representacion();  int retBits();//retorna el numero de bits que se utilizan  int retBits(int i);//retorna el numero de bits por cada gen  double decodifica (int gen,int *num);//decodifica un gen en su fenotipo  int * genera();//genera un genotipo aleatorio  int * inicializa();//genera un genotipo aleatorio  void copia(int*,int*,int);  void copia(double*,double*,int);  int muta(int *,float);//muta un genotipo y regresa el numero de mutaciones  void cruza(int *, int *,int,int);//cruza dos genotipos  void cruza(int *, int *,int);//cruza dos genotipos  void imprime(double *num,int n);//imprime el genotipo  void imprime(int *num,int n);//imprime el genotipo  int *gray_A_binario(int *g);//calculo de codigo Gray a binario};class MOGAII:public Representacion{  double sumaValores;  Individuo *poblacion;  Individuo *poblacionNueva;  int *cadMasApto,M;  double Pc,Pm;  int Gmax;  int *arrordenado;  int q;  int nObjs;  int nGenes;  long NMayor;  double sigmaShare;  MallaAdap *malla;public:  MOGAII(int gmax,int m, double pc, double pm,int ngenes,int nobjs,double *linf, double *lsup, int *pres,int _q);  virtual int restricciones(int *){return 0;};  int Domina(Individuo *,Individuo *);  void AsignarJerarquia();  void AsignarAptitudLineal();  void  CalculoSigmaShare();  void AsignarAptitudCompartida();  void EscalarApt();  void EvaluarPoblacion();  void evalua(int *,double *);  void calculoSigmaShare();  void Seleccion();  void CruzaYMutacion();  void Algoritmo();  void GenerarPoblacionAleatoria();  void NuevaGeneracion();  void NuevaPoblacion();  void ImprimeValores();};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -