Public paste
Undefined
By: Guest | Date: Aug 3 2011 13:19 | Format: C# | Expires: never | Size: 589 B | Hits: 1188

  1. void crossover(float* ind1, float* ind2,  float seed)
  2. {              
  3.                 //n-Point-Crossover
  4.                
  5.                 int last =0;                           
  6.                 int crosspoints[CROSS_COUNT+1];
  7.                 if(CROSS_COUNT%2!=0)
  8.             crosspoints[CROSS_COUNT]=CHROMOSOME_SIZE;
  9.                
  10.                 float new_seed=seed;
  11.                
  12.                 for(int i=0;i<CROSS_COUNT;i++)
  13.                 {
  14.                     last=(int)last + randomrange(1,CHROMOSOME_SIZE-(CROSS_COUNT-i)-last,new_seed);
  15.                     new_seed = random(new_seed);
  16.                     crosspoints[i]=last;
  17.                 }
  18.                
  19.                 for(int i=1;i<CROSS_COUNT+1;i++)
  20.                 {                                              
  21.                         if((i-1)%2==0)                         
  22.                                 swap(ind1,ind2,crosspoints[i-1],crosspoints[i]);
  23.                                
  24.                 }
  25. }
  26.