【发布时间】:2020-03-07 12:28:06
【问题描述】:
我正在研究基于锦标赛选择的遗传算法,并且需要同时运行多个群体。我的问题是我有一本包含个人随机值的字典,但是当我循环检查这些值时,它们是相同的。
有什么方法可以刷新字典以改变随机值?
我的字典:
individuals = {
'a': [random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4)],
'b': [random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4)],
'c': [random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4)],
'd': [random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4)],
'e': [random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4)],
'f': [random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4)],
'g': [random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4)],
'h': [random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4)],
'i': [random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4),random.randint(-4,4)]
}
我的循环:
def run_generation():
global random_individuals, fitness_scores
for k in range(tournamentSize):
randchoice = random.sample(list(individuals), 1)[0] #update individual list so values are different??!
randchoice = individuals.get(randchoice)
random_individuals.append(randchoice)
目前,我只是在每次形成新人口时重新定义字典(只是复制粘贴字典),但这似乎不经济,一旦人口增长就会变得迟缓。
【问题讨论】:
标签: python python-3.x function dictionary