【发布时间】:2018-04-28 09:07:58
【问题描述】:
我正在尝试在 python 中创建一个非常简单的“进化”算法。
我最初想创建一个大约 100 个具有四个数字属性 (a1-4) 的个体,使用一个函数从这些属性中获取分数,然后删除得分最差的 20 个个体。
这是我目前所拥有的
import random
population = 100
class Individual(object):
def __init__(self, a1, a2, a3, a4):
self.a1 = a1
self.a2 = a2
self.a3 = a3
self.a4 = a4
starting_population = list()
for i in range (population):
a1 = random.randint(1,10)
a2 = random.randint(1,10)
a3 = random.randint(1,10)
a4 = random.randint(1,10)
starting_population.append(Individual(a1,a2,a3,a4))
def fitness(x):
fitness = a1*a2/a3*a4
return fitness
我不知道如何将函数应用于人口列表的成员?
另外,我对 Python 很陌生,而且我确信我做的一些事情很糟糕,所以非常感谢任何提示!
谢谢
【问题讨论】:
-
注意
random.seed(somenumber)通常在随机调用之前调用。另外,您想要一个新的fitness列表,还是添加一个属性?
标签: python python-3.x list evolutionary-algorithm