• 大小: 61KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: 其他
  • 标签:

资源简介

有关遗传编程的程序代码。程序结构采用树编码。

资源截图

代码片段和文件信息

//Programmed by NXH
#include//Delete this line if you are in Unix
#include
#include
#include
#include
#include
#include “gconst.h“
#include “random.h“
#include “term.h“
#include “stree.h“
#include “genetic.h“
#include “mulplex.h“
//#include “bdtree1.h“
//#include “symreg.h“
//#include “evenpg.h“
int generationgen=0;
//individual bestsofar;
individual *bestcurrent;
double *average;
//*****************************************************
//This Function initializes for the program           *
//*****************************************************
void Init()
{
 //Initialize global variables
 //Loading Elementary trees and Adjoining Table
  LoadTerm();
 //Initialize population
  poplen=1000;
  oldpop=new individual[poplen];assert(oldpop!=NULL);
  newpop=new individual[poplen];assert(newpop!=NULL);
 //Initialize Probabilities
  pcross=0.9;
  pmutate=0.1;
//Initializes satistics
  ncross=0;
  nmutate=0;
//Number of generations
  generation=101;
  bestcurrent=new individual[generation];assert(bestcurrent!=NULL);
  average=new double[generation];assert(average!=NULL);
//Some global variables
  SuccPredicate=FALSE;
//Set up fitness cases
  SetFitCase();
}
void ComputeFitness()
{
 int ij pos;
 individual t;
 double minsum=0;
 //First Compute Raw fitness
 for(i=0;i   oldpop[i].fitness=ComputeRF(oldpop[i]);
//local search
//  Greedy(100);
 //Second Compute standardized fitness
// for(i=0;i // oldpop[i].fitness=(double) NUMFITCASE-oldpop[i].fitness;
 //Find the best of the current population
   min=oldpop[0].fitness;
   pos=0;
   sum=0;
   for(i=1;i   {
    if (oldpop[i].fitness    {
      min=oldpop[i].fitness;
      pos=i;
    }
    sum+=oldpop[i].fitness;
    }
 //copy the best and average
   bestcurrent[gen]=CopyIndividual(oldpop[pos]TRUE);
   average[gen]=sum/poplen;

 //Third Compute Adjusted fitness
   AdjustFitness();
 //Finally Compute nomarlized fitness
   NormalizeFitness();
}
void Evolution()
{
 int ijlk;
 individual *temp;
 //Initialize a population
 RampedInit(60.5);
 gen=0;
 while((gen {
   ComputeFitness();

   cout<   l=0;
  while(l   {
    i=TourSelect(3);
    j=TourSelect(3);
   if(Flip(pcross))
   {
    if (SubTreeSwap(oldpop[i]oldpop[j]newpop[l]newpop[l+1]))
      ncross++;
    else
     {
      newpop[l]=CopyIndividual(oldpop[i]TRUE);
      newpop[l+1]=CopyIndividual(oldpop[j]TRUE);
     }
   }
    else
     {
      newpop[l]=CopyIndividual(oldpop[i]TRUE);
      newpop[l+1]=CopyIndividual(oldpop[j]TRUE);
     }
//mutation test
 if(Flip(pmutate))
  {
    ReplaceSubTree(newpop[l]15TRUE);
   //PointReplace(newpop[l]);
    nmutate++;
  }
  if(Flip(pmutate))
  {
   ReplaceSubTree(new

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2963  2008-11-11 13:47  multi.plg

     文件        533  2008-11-11 13:48  multi.dsw

     文件      48640  2008-11-11 13:48  multi.opt

     文件       4869  2007-04-11 07:52  multi.cpp

     文件       2248  2003-05-21 18:35  random.h

     文件       8004  2003-05-21 18:38  stree.h

     文件       4015  2006-03-23 10:23  symreg.h

     文件       1743  2003-05-21 18:22  term.h

     文件        803  2007-04-09 16:05  gconst.h

     文件      10507  2007-04-09 14:51  genetic.h

     文件      22998  2006-05-04 20:49  mg4test.dat

     文件      22998  2006-05-04 20:49  mg4train.dat

     文件      31998  2006-03-09 10:52  mg_test.dat

     文件      31998  2006-03-09 10:52  mg_train.dat

     文件       3333  2007-04-11 08:45  mulplex.h

     文件       3389  2008-11-11 13:47  multi.dsp

     文件      33792  2008-11-11 13:48  multi.ncb

     目录          0  2008-12-25 16:37  gp_code

     文件        803  2007-04-09 16:05  gp_code\gconst.h

     文件      10507  2007-04-09 14:51  gp_code\genetic.h

     文件      22998  2006-05-04 20:49  gp_code\mg4test.dat

     文件      22998  2006-05-04 20:49  gp_code\mg4train.dat

     文件      31998  2006-03-09 10:52  gp_code\mg_test.dat

     文件      31998  2006-03-09 10:52  gp_code\mg_train.dat

     文件       3333  2007-04-11 08:45  gp_code\mulplex.h

     文件       4869  2007-04-11 07:52  gp_code\multi.cpp

     文件       3389  2008-11-11 13:47  gp_code\multi.dsp

     文件        533  2008-11-11 13:48  gp_code\multi.dsw

     文件      41984  2008-12-25 16:19  gp_code\multi.ncb

     文件      54784  2008-12-25 16:19  gp_code\multi.opt

............此处省略8个文件信息

评论

共有 条评论

相关资源