Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. bool upgrade = false;
  2.         for(int nl = 0; nl < this->chromosome.size(); ++nl) //for each
  3.         {
  4.             for(int m = 0; m < world->getNeighbor(0).size(); ++m)
  5.             {
  6.                 int ml = chromsome_indexes[world->getNeighbor(nl)[m]];
  7.  
  8.                 int nr;
  9.                 int mr;
  10.                 if(nl == chromosome.size()-1)
  11.                 {nr = 0;}
  12.                 else
  13.                 {nr = nl + 1;}
  14.  
  15.                 if(ml == chromosome.size()-1)
  16.                 {mr = 0;}
  17.                 else
  18.                 {mr = ml + 1;}
  19.  
  20.                 if(nl == ml || nl == mr || nr == ml || nr == mr)
  21.                     continue;
  22.  
  23.                 int nlc = chromosome[nl];
  24.                 int nrc = chromosome[nr];
  25.                 int mlc = chromosome[ml];
  26.                 int mrc = chromosome[mr];
  27.  
  28.                 if(world->getDistance(nlc, nrc) + world->getDistance(mrc, mlc) >  world->getDistance(nlc, mrc) + world->getDistance(nrc, mrc))
  29.                 {
  30.  
  31.                     upgrade = true;
  32.                     int i = nr;
  33.                     int j = mr
  34.  
  35.                     while(i < j) //turn a part of the graph.
  36.                     {
  37.                         //std::cerr << "yay";
  38.                         int tmp = chromosome[i];
  39.                         chromosome[i] = chromosome[j];
  40.                         chromosome[j] = tmp; //swaps index i and j in chromosome
  41.                         chromsome_indexes[chromosome[i]] = i;
  42.                         chromsome_indexes[chromosome[j]] = j;
  43.                         ++i;
  44.                         --j;
  45.                     }
  46.                 }
  47.             }
  48.         }
  49.         //createChromosomeIndexes();
  50.         return upgrade;
  51.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement