def test_randomMutateWorks(self): """ check that mutate produces different results """ results = [] for i in range(100): results.append(mutate.mutate(self.a)) lists = [] for r in results: if r not in lists: lists.append(r) self.assertTrue(len(lists)>3)
def breedAnotherGeneration(prevGen, participants): """ generates new set of potential solutions. """ prevGen = reverseList(sorted(prevGen)) newGen = [] c = 2 for i in range((len(prevGen)-1)/c): g = (prevGen[i][0],prevGen[i][1],prevGen[i][2]) #i1 = g[2].index(min(g[2])) #i2 = random.randint(0,len(participants)-1) #g = smartMutate(g[1],i1,i2) for j in range(c): b = list(g[1]) if random.random()>0.85: b = mutate(b) a = crossover(b,list(prevGen[i+1][1]),participants) newGen.append(a) newGen.append(prevGen[0][1]) return newGen