温馨提示:本文翻译自stackoverflow.com,查看原文请点击:optimization - TSP in R, with given distances
optimization r traveling-salesman

optimization - 给定距离下R中的TSP

发布于 2020-07-05 01:19:06

一个由5个节点组成的简单距离表,我想对其应用TSP。在Excel中打开时看起来像这样。

在此处输入图片说明

library(TSP)

distances <- read.csv(file="c:\\distances.csv", header=TRUE, sep=",")
distances <- as.dist(distances)

tsp <- TSP(distances)
tour <- solve_TSP(tsp)
tour

它在as.dist()行上警告我:

Warning messages:
1: In storage.mode(m) <- "numeric" : NAs introduced by coercion
2: In as.dist.default(distances) : non-square matrix

也是resolve_TSP()行:

Error in .solve_TSP(x, method, control, ...) : NAs not allowed!

我该如何纠正它们?谢谢。

查看更多

提问者
Mark K
被浏览
20
Monk 2019-08-16 21:08

您需要将第一列设置为行标签(当前将它们作为列)。下面的代码有效。

# Import distance matrix
library(readr)
distances <- read_csv("C:/distances.csv")

# Rename row labels
row.names(distances) <- distances$X1
distances$X1 <- NULL

# Run the TSP
distances <- as.dist(distances)
tsp <- TSP(distances)
tour <- solve_TSP(tsp)
tour