如何在R中使用TSP包指定起始城市

4

我一直试图使用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()只能应用于“integer”,而不是“double”

对于示例数据,我一直在使用以下距离矩阵:

distance_matrix = matrix(c(0,1,2,1,0,5,2,5,0),3,3)

如何将第一个城市指定为“nearest_insertion”方法的起始城市?

1个回答

6

我知道有点晚了,但我也遇到了同样的问题,以下是解决方法:

solve_TSP(prova, method = "nearest_insertion", start=3L)

这将声明3为整数,与as.integer(3)相同,但避免了函数调用。
其他方法也适用于此。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接