def crossover(ga_first, ga_second): genom_list = [] # setting of two-point crossover. cross_first = random.randint(0, GENOM_LENGTH) cross_second = random.randint(cross_first, GENOM_LENGTH) one = ga_first.getGenom() second = ga_second.getGenom() # crossover. progeny_one = one[:cross_first] + second[cross_first:cross_second] + one[ cross_second:] progeny_second = second[:cross_first] + one[ cross_first:cross_second] + second[cross_second:] genom_list.append(ga.Gene(progeny_one, 0)) genom_list.append(ga.Gene(progeny_second, 0)) return genom_list
def create_genom(int_length, df_gene): lst_gene = [] for _ in range(int_length): lst_gene.append(random.randint(0, len(df_gene.index) - 1)) return ga.Gene(lst_gene, 0)