Я работаю над генетическим c алгоритмом, основанным на выборе турнира, и мне нужно запустить несколько групп одновременно. Моя проблема в том, что у меня есть словарь со случайными значениями для отдельных лиц, но когда я проверяю эти значения на все oop, они совпадают.
Есть ли способ обновить sh словарь, чтобы случайные значения изменены?
Мой словарь:
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)]
}
Мой л oop:
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)
В настоящее время я просто переопределяю словарь каждый раз Я формирую новое население (просто копирую словарь), но это кажется неэкономичным и будет медленным sh, когда население увеличится.