私はpythonで遺伝的アルゴリズムの問題を解決しています。私は完全なコードをまだ完成させていません。私はコードを完成するたびにテストします。TypeError: '<'はインスタンス間でサポートされていませんPython
TypeError: '<' not supported between instances of 'part' and 'part'
興味深いのは、このエラーが常に表示されません。
は、現時点では私はというエラーで立ち往生しています。コードがスムーズに実行され、目的の出力が表示されることがありますが、時にはこのエラーが表示されることがあります。
この理由は何ですか?私を助けてください。私はコードとエラーメッセージを添付しています。私は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)
エラーメッセージ:(毎回ランダム化されている)が出力される
:比較するたび
私は(https://conemu.github.io/)[コピーすることができますコマンドプロンプト]あなたがダウンロードして使用することをお勧めすることはできますので、あなたの質問に不要なスクリーンショットを追加する必要はありません。 –