我一直在尝试使用R中的TSP包解决TSP问题。我创建了一个大的对称距离矩阵,沿着前导对角线有0个条目。我希望能够将第一个城市指定为nearest_insertion
等方法的起始城市。我已成功使用"nn"
方法并使用以下代码指定了起始城市:
tsp1=TSP(distance_matrix)
solve_TSP(tsp1,method="nn",control=list(start=1))
然而,control=list(start=1))
参数对"nearest_insertion"
方法不起作用。相反,我收到错误消息:
x [is.na(x)]中的错误< - Inf: INTEGER()只能应用于'整数'而不是' double`
对于样本数据,我一直在使用以下距离矩阵:
distance_matrix=matrix(c(0,1,2,1,0,5,2,5,0),3,3)
如何指定第一个城市作为"nearest_insertion"
方法的起始城市?
答案 0 :(得分:5)
我知道它有点晚了,但我遇到了同样的问题,那就是你需要做的事情:
solve_TSP(prova, method = "nearest_insertion", start=3L)
这将3声明为整数,与as.integer(3)
相同,但避免函数调用。
这也适用于其他方法。