Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def chromosomeCrossover(self):
- pair1 = [self.chromosomeChoosing(), self.chromosomeChoosing()]
- pair2 = [self.chromosomeChoosing(), self.chromosomeChoosing()]
- crossoverRate = 0.7
- crossover = random.uniform(0, 1)
- offspring1 = []
- offspring2 = []
- offspring3 = []
- offspring4 = []
- offspring5 = []
- c = Chromosome(self.mazeX, self.mazeY)
- i = 0
- if crossover <= crossoverRate:
- x = c.moves // 2
- i = 0
- while i < x:
- offspring1.append(pair1[0][i])
- offspring2.append(pair1[1][i])
- i += 1
- i = c.moves // 2
- while i < c.moves:
- offspring1.append(pair1[1][i])
- offspring2.append(pair1[0][i])
- i += 1
- else:
- while i < c.moves:
- offspring1.append(pair1[0][i])
- offspring2.append(pair1[1][i])
- i += 1
- crossover = random.uniform(0, 1)
- i = 0
- if crossover <= crossoverRate:
- x = c.moves // 2
- i = 0
- while i < x:
- offspring3.append(pair2[0][i])
- offspring4.append(pair2[1][i])
- offspring5.append(pair1[0][i])
- i += 1
- i = c.moves // 2
- while i < c.moves:
- offspring3.append(pair2[1][i])
- offspring4.append(pair2[0][i])
- offspring5.append(pair2[1][i])
- i += 1
- else:
- while i < c.moves:
- offspring3.append(pair2[0][i])
- offspring4.append(pair2[1][i])
- offspring5.append(pair2[0][i])
- i += 1
- self.population.clear()
- c1 = GenerationalChromosome(offspring1, self.mazeX, self.mazeY)
- c2 = GenerationalChromosome(offspring2, self.mazeX, self.mazeY)
- c3 = GenerationalChromosome(offspring3, self.mazeX, self.mazeY)
- c4 = GenerationalChromosome(offspring4, self.mazeX, self.mazeY)
- c5 = GenerationalChromosome(offspring5, self.mazeX, self.mazeY)
- self.population.append(c1)
- self.population.append(c2)
- self.population.append(c3)
- self.population.append(c4)
- self.population.append(c5)
- self.chromosomeMutation()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement