Esempio n. 1
0
  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)
Esempio n. 2
0
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