nb_generations  = 100
  size_population = 100
#  size_population = len(authors_features.keys())
  population = tw.init_population_mask(size_population, len(base_vector), mask_chromosome, 500)
  fitness_population = [float(f) for f in run_chromosomes(population, cmd, history)]

  history = make_history(population, fitness_population)

  for i in xrange(nb_generations) :
#    print 'select'
    selected = tw.selection(population, fitness_population)
    #mutate
    mutants = []
    for chromosome in selected :
      if random.randint(0,1) == 1 :
        mutants.append(tw.mutate(chromosome, 500))

    current = selected + mutants

    #lobotomize
    lobos = []
    for chromosome in current :
      if random.randint(0,1) == 0 :
        lobos.append(tw.lobotomize(chromosome))

    #trisofy
    trisos = []
    for chromosome in current :
      if random.randint(0,1) == 0 :
        trisos.append(tw.trisofy(chromosome))
  size_population = 10
  population = tw.init_population(size_population, len(base_vector))

  fitness_population = [float(f) for f in run_chromosomes(population,cmd)]

#  for chromosome in population :
#    fitness_population.append(run_chromosome(chromosome, cmd))#   tw.fitness(chromosome, base_vector, authors_features, authors_test))

  print fitness_population
  for i in xrange(nb_generations) :
    selected = tw.selection(population, fitness_population)
    #mutate
    mutants = []
    for chromosome in selected :
      if random.randint(0,1) == 1 :
        mutants.append(tw.mutate(chromosome))
    #lobotomize
    lobos = []
    for chromosome in selected :
      if random.randint(0,1) == 1 :
        lobos.append(tw.lobotomize(chromosome))

    #crossover 
    crossed = []
    for chromosome1, chromosome2 in itertools.combinations(selected, 2) :
      if random.randint(0,10) == 1 :
        crossed.append(tw.crossover(chromosome1, chromosome2))
    
    population = mutants + crossed + selected + lobos
#    fitness_population = []
    fitness_population = [float(f) for f in run_chromosomes(population,cmd)]
Example #3
0
    #crossover
    crossed = []
    for chromosome1, chromosome2 in itertools.combinations(selected, 2):
        if random.randint(0, 10) == 1:
            offspring1, offspring2 = tw.crossover2(chromosome1, chromosome2)
            crossed.append(offspring1)
            crossed.append(offspring2)
#      crossed.append(tw.crossover(chromosome1, chromosome2))

    current = selected + crossed

    #mutate
    mutants = []
    for chromosome in current:
        if random.randint(0, 1) == 1:
            mutants.append(tw.mutate(chromosome))

    #lobotomize
#  lobos = []
#  for chromosome in current :
#    if random.randint(0,1) == 1 :
#      lobos.append(tw.lobotomize(chromosome))

#trisofy
#  trisos = []
#  for chromosome in current :
#    if random.randint(0,1) == 1 :
#      trisos.append(tw.trisofy(chromosome))

    population = selected + crossed + mutants  # + lobos + trisos
    #  population = selected + mutants + crossed
    population = tw.init_population_mask(size_population, len(base_vector),
                                         mask_chromosome, 500)
    fitness_population = [
        float(f) for f in run_chromosomes(population, cmd, history)
    ]

    history = make_history(population, fitness_population)

    for i in xrange(nb_generations):
        #    print 'select'
        selected = tw.selection(population, fitness_population)
        #mutate
        mutants = []
        for chromosome in selected:
            if random.randint(0, 1) == 1:
                mutants.append(tw.mutate(chromosome, 500))

        current = selected + mutants

        #lobotomize
        lobos = []
        for chromosome in current:
            if random.randint(0, 1) == 0:
                lobos.append(tw.lobotomize(chromosome))

        #trisofy
        trisos = []
        for chromosome in current:
            if random.randint(0, 1) == 0:
                trisos.append(tw.trisofy(chromosome))