首先,如果我的方法过于愚蠢或过于简单,我深表歉意,我是一名非常努力进入编程领域的经济学家,因此我缺乏一些特定的技能。无论如何,我有以下代码:
population = [[[0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1], [1], [0]],
[[0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [3], [1]],
[[0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0], [4], [2]],
[[1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0], [3], [3]]]
def ProbabilityList(population):
fitness = chromosome[2] for chromosome in population
manipulated_fitness = fitness + 1
total_weight=sum(manipulated_fitness)
relative_fitness= [chromosome[1]/total_weight for chromosome in population]
probabilities= [sum(relative_fitness) for i in range(len(relative_fitness))]
return (probabilities)
人口的逻辑是[[[individual1],[fitness][counter]],[individual3],[fitness][counter]], and so on...
计数器只是一个数字,所以我可以订购个人。
所以在这种情况下我需要的是根据总适应度创建一个选择概率列表。我还需要在基本适应度上加 1,因为将来该值可能为零,我不能使用确定性选择方法(也就是说,没有个人可以有 0 概率)
有人知道像这样处理它的正确方法吗?