Mythaar:
私はトーナメント選択し、一度に複数の集団を実行する必要性に基づいて、遺伝的アルゴリズムに取り組んでいます。私の問題は、私は個人向けのランダムな値を持つ辞書を持っているということですが、私は、彼らが同じで、これらの値をチェックするループを作るとき。
ランダムな値が変更されているので、辞書を更新する方法はありますか?
私の辞書:
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)
現在、私は辞書を毎回再定義しています私は(ちょうどコピー貼り付け辞書を)新しい集団を形成するが、それは不経済ようで、人口が大きくなる一度低迷だろう。
Lenik:
あなたは簡単に単純なリストの内包表記を使用して、その場で自分の辞書を生成することがあります。
individuals = { i : [random.randint(-4,4) for _ in range(6)] for i in 'abcdefghi' }