0

我是 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,

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

Onfor gene1, gene2 in zip(individual[0:-1], individual[1:]) 哪个意味着价值观0:11:个人?

4

1 回答 1

1

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

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

于 2019-11-06T10:28:30.933 回答