2014-10-10 3 views
0

Как узнать пути в neo4j, которые будут охватывать все выбранные узлы.Найти пути, охватывающие все узлы в neo4j

Это будет использоваться для решения tsp. найти путь, который охватывает весь данный набор городов, позже будет сортироваться на основе общего расстояния, покрываемого дорожкой.

+1

Проверьте этот родственный вопрос - вы могли бы рассмотреть возможность использования алгоритма MST, чтобы найти путь, который затрагивает все; вот что они делают. http://stackoverflow.com/questions/25609717/how-to-use-neo4j-for-finding-minimum-spanning-tree – FrobberOfBits

ответ

0

Вы можете найти все пути между двумя узлами, как это.

match p=(:startNode)-->(:endNode) 
return p; 

или вы можете попробовать, как

match p=(:startNode)-->(:endNode) 
return nodes(p) as node, relationships(p) as rels 

Вы можете получить все пути, как этот

match p =()-->() 
return p 
limit 100 // Apply limit according to nodes 
+0

Найдите путь, который охватывает все узлы. Один путь, который будет охватывать все узлы. Я пытаюсь решить tsp, используя neo4j. – Ferventum

+0

@Ferventum Отредактировано. Это то, что вам нужно? –

+0

Я хочу решить проблему коммивояжера, найдя гамильтоновские пути в данных. Для этого мне нужно найти ** пути, которые охватывают все узлы ** – Ferventum