TSP

时间:2019-11-26 02:31:36

标签: python nan traveling-salesman

我正在尝试使用Python构建基本的TSP解决方案,并且在尝试计算每个城市等级的总距离时遇到了一个问题。创建城市并将其存储为随机生成的二维列表;内部列表分别包含x和y值,外部列表包含内部列表。我有一个成功的距离公式,其中包含两个内部列表,并用以下公式找到它们之间的距离:

def distance(pt1, pt2):
    return np.sqrt((pt2[0]-pt1[0]) ^ 2 + (pt2[1]-pt1[1]) ^ 2)

在测试用例中一直返回正确的答案。但是,我还有一个函数可以接收一个列表(打算与外部列表一起使用),并使用上述函数作为辅助函数来计算所有点之间的总距离。该功能如下:

def distTotal(points):
    total = 0
    for i in range(0, numCities-1):
        total += distance(points[i], points[i+1])

    return total

其被调用的具体实例如下:

print(distTotal(cities))

其中“城市”是随机生成的二维列表。但是,在测试此功能时,每次都会返回“ nan”(“非数字”)。在调试中,似乎第一次尝试在distTotal函数中使用distance函数的时候是“ total”的值等于nan。

知道我在这里做错了什么吗?谢谢

1 个答案:

答案 0 :(得分:0)

^运算符是XOR运算符。改用电力运营商**

def distance(pt1, pt2):
    return np.sqrt((pt2[0]-pt1[0]) ** 2 + (pt2[1]-pt1[1]) ** 2)