【问题标题】:DEAP: Genetic algorithm - eval functionDEAP:遗传算法 - 评估函数
【发布时间】:2019-12-26 01:08:50
【问题描述】:

我是 Python 和 DEAP 的初学者,我正在尝试从以下位置了解 TSP 的评估函数:https://github.com/DEAP/deap/blob/master/examples/ga/tsp.py

def evalTSP(individual):
    distance = distance_map[individual[-1]][individual[0]]
    for gene1, gene2 in zip(individual[0:-1], individual[1:]):
        distance += distance_map[gene1][gene2]
    return distance,

开启distance = distance_map[individual[-1]][individual[0]] [individual[-1]][individual[0]] 表示之前和当前个人位置之间的差异?

开启for gene1, gene2 in zip(individual[0:-1], individual[1:]) 0:11: 的值是指个人的值吗?

【问题讨论】:

  • 这实际上是两个不同的问题,每个问题在现场都有答案。

标签: python-3.x genetic-algorithm deap


【解决方案1】:

每个individual 都表示为arrayindividual[-1]individual[0] 分别指个体的最后一个和第一个基因(即阵列中的元素)。所以distance_map[individual[-1]][individual[0]] 是存储在距离矩阵中的这两个基因之间的距离。

individual[0:-1] 返回一个包含individual 的所有基因的数组,除了最后一个。 individual[1:] 返回一个包含individual 的所有基因的数组,除了第一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-25
    • 2023-01-09
    • 2015-11-10
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    相关资源
    最近更新 更多