I am solving a genetic algorithm problem in python 3. I have not finished the complete code yet. I check part of the code when I complete it.
I am currently stuck in an error:
TypeError: '<' is not supported between instances of "part" and "part"
Interestingly, this error is not always displayed. Sometimes the code runs smoothly and shows the desired result, but sometimes it shows this error.
What is the reason for this? Please help me. I am attaching a code and an error message. I am using PyCharm.
import random class part(): def __init__(self, number): self.number = number self.machine_sequence = [] def add_volume(self, volume): self.volume = volume def add_machine(self, machine_numbers): self.machine_sequence.append(machine_numbers) def create_initial_population(): part_family = [] for i in range(8): part_family.append(part(i)) part_population = [] for i in range(6): part_population.append(random.sample(part_family, len(part_family))) for i in part_population: for j in i: j.add_volume(random.randrange(100, 200)) return part_population def fitness(part_family): sum_of_boundary = [] for i in range(0, 8, 2): sum_of_boundary.append(sum(j.volume for j in part_family[i:i + 2])) fitness_value = 0 for i in range(len(sum_of_boundary) - 1): for j in range(i + 1, len(sum_of_boundary)): fitness_value = fitness_value + abs(sum_of_boundary[i] - sum_of_boundary[j]) return fitness_value def sort_population_by_fitness(population): pre_sorted = [[fitness(x),x] for x in population] sort = [x[1] for x in sorted(pre_sorted)] for i in sort: for j in i: print(j.volume, end = ' ') print() return sort def evolve(population): population = sort_population_by_fitness(population) return population population = create_initial_population() population = evolve(population)
error message: 
Output (which is randomly distributed each time): 
source share