Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.40 KB | None | 0 0
  1.     def chromosomeCrossover(self):
  2.         pair1 = [self.chromosomeChoosing(), self.chromosomeChoosing()]
  3.         pair2 = [self.chromosomeChoosing(), self.chromosomeChoosing()]
  4.  
  5.         crossoverRate = 0.7
  6.         crossover = random.uniform(0, 1)
  7.  
  8.         offspring1 = []
  9.         offspring2 = []
  10.         offspring3 = []
  11.         offspring4 = []
  12.         offspring5 = []
  13.         c = Chromosome(self.mazeX, self.mazeY)
  14.  
  15.         i = 0
  16.         if crossover <= crossoverRate:
  17.             x = c.moves // 2
  18.             i = 0
  19.  
  20.             while i < x:
  21.                 offspring1.append(pair1[0][i])
  22.                 offspring2.append(pair1[1][i])
  23.                 i += 1
  24.  
  25.             i = c.moves // 2
  26.  
  27.             while i < c.moves:
  28.                 offspring1.append(pair1[1][i])
  29.                 offspring2.append(pair1[0][i])
  30.                 i += 1
  31.         else:
  32.             while i < c.moves:
  33.                 offspring1.append(pair1[0][i])
  34.                 offspring2.append(pair1[1][i])
  35.                 i += 1
  36.  
  37.         crossover = random.uniform(0, 1)
  38.  
  39.         i = 0
  40.         if crossover <= crossoverRate:
  41.             x = c.moves // 2
  42.             i = 0
  43.  
  44.             while i < x:
  45.                 offspring3.append(pair2[0][i])
  46.                 offspring4.append(pair2[1][i])
  47.                 offspring5.append(pair1[0][i])
  48.                 i += 1
  49.  
  50.             i = c.moves // 2
  51.  
  52.             while i < c.moves:
  53.                 offspring3.append(pair2[1][i])
  54.                 offspring4.append(pair2[0][i])
  55.                 offspring5.append(pair2[1][i])
  56.                 i += 1
  57.         else:
  58.             while i < c.moves:
  59.                 offspring3.append(pair2[0][i])
  60.                 offspring4.append(pair2[1][i])
  61.                 offspring5.append(pair2[0][i])
  62.                 i += 1
  63.  
  64.         self.population.clear()
  65.  
  66.  
  67.  
  68.         c1 = GenerationalChromosome(offspring1, self.mazeX, self.mazeY)
  69.         c2 = GenerationalChromosome(offspring2, self.mazeX, self.mazeY)
  70.         c3 = GenerationalChromosome(offspring3, self.mazeX, self.mazeY)
  71.         c4 = GenerationalChromosome(offspring4, self.mazeX, self.mazeY)
  72.         c5 = GenerationalChromosome(offspring5, self.mazeX, self.mazeY)
  73.  
  74.         self.population.append(c1)
  75.         self.population.append(c2)
  76.         self.population.append(c3)
  77.         self.population.append(c4)
  78.         self.population.append(c5)
  79.  
  80.         self.chromosomeMutation()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement