2014-04-23 7 views
0

J'ai la latitude et la longitude de 50 nœuds ou plus. Ce n'est pas connecté les uns aux autres. Nous considérerons un noeud comme début et fin à la fois.Pour trouver le plus court chemin

J'ai besoin de trouver le chemin le plus court à travers ce nœud qui commence à 'start', se termine au même point de départ et traverse tous les nœuds.

Note: Sans utiliser google maps api

+0

Est-ce une distance approximative entre les points suffisant? La distance pour chaque paire de nœuds est-elle explicitement donnée? – Codor

+0

Pourriez-vous donner votre avis? Le graphique est-il dirigé? Si c'est le cas, le chemin le plus court ne peut pas traverser tous les nœuds. – Dany

+0

@DineshAppavoo Il n'est ni connecté ni dirigé. Je dois trouver une solution pour le plus court chemin possible. –

Répondre

0

Le problème que vous décrivez est le Euclidean TSP, qui est NP-dur.

Pour les très petites entrées, vous pouvez le faire en utilisant la force brute. Pour des entrées plus importantes, un algorithme d'approximation peut être utilisé (tel que celui mentionné dans le lien, ce qui garantit une 2-approximation).

+0

Pourriez-vous s'il vous plaît coller un morceau de code ici pour référence? Parce que j'utilise le TSP mais il ne donne pas le résultat précis. J'ai besoin de trouver un enfant Gauche/Droite pour un nœud afin qu'il connecte le graphique et obtienne un résultat sur cette base. –

0

Cependant, vous ne disposez pas de données d'échantillons ici, je pense que cela peut fonctionner:

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

Pouvez-vous s'il vous plaît élaborer en détail? –

+0

Oui, le fichier de noms inclut tous vos noeuds. Ensuite, vous avez un graphique (par exemple ici ARACNE_graph). Ainsi, vous souhaitez rechercher les chemins les plus courts à partir des nœuds dans les noms de fichiers vers le même nœud (noms [i], noms [i]). – Sadegh

+0

Je reçois votre idée en détail! –

Questions connexes