2014-04-23 167 views
0

我有50节点或更多的经度和纬度。它没有互相连接。我们会将一个节点视为开始和结束两个节点。寻找最短路径

我需要找到从'start'开始的这些节点的最短路径,结束于同一个开始点并通过所有节点。

注:没有使用谷歌地图API

+0

请问点之间的大概距离是否足够呢?明确给出每对节点的距离? – Codor

+0

你能否介绍一下这个问题?该图是否定向?如果是这样,最短路径不能通过所有的节点。 – Dany

+0

@DineshAppavoo它既没有连接也没有指示。我需要获得最短路径的解决方案。 –

回答

0

您所描述的问题是Euclidean TSP,这是NP难问题。

对于非常小的输入,你可以使用蛮力来做到这一点。对于较大的输入,可以使用近似算法(例如链接中提到的保证2逼近的算法)。

+0

您能否在这里粘贴一些代码以供参考?因为我正在使用TSP,但没有给出准确的结果。我需要找到节点的左/右子节点,以便它将连接图并在此基础上获得结果。 –

0

但是你没有样本数据在这里,我想这可能工作:

names<-#read your nodes 
rest<-list() 
A<-list() 
n=1 
for (i in 1:50){ 
    A<-get.all.shortest.paths(aracne_graph, names[i], names[i], mode = c("all"), weights=NULL) 
    rest[[n]]<-A$res 
    n<-n+1 
    } 
} 
+0

请详细说明一下吗? –

+0

是的,名称文件包含所有节点。然后你有一个图表(例如这里ARACNE_graph)。因此,您想要搜索文件名中节点到同一节点的最短路径(名称[i],名称[i])。 – Sadegh

+0

我详细了解您的想法! –