2013-09-01 2 views
0

Я пытаюсь найти способ в neo4j найти N (const) число путей между двумя узлами.Neo4j найти первые n-кратчайшие пути

С большим графом:

PathFinder<Path> finder = GraphAlgoFactory.allSimplePaths(
         Traversal.expanderForTypes(Relationship.KNOWS), 20); 
Iterable<Path> paths = finder.findAllPaths(startNode, endNode); 

Возвращает путь к гораздо дорожкам (на самом деле я должен был убить процесс потому что это было держать на возвращении возможных путей).

Моя первая идея (аннотация), чтобы найти п-кратчайшие пути, как это:

  1. Найти кратчайший путь с GraphAlgoFactory.shortestPath(...)
  2. искать дополнительные пути с GraphAlgoFactory.pathsWithLength() приращения в каждой итерации 1, начиная с длиной == длина пути + 1 от 1.
  3. Итер до достижения максимальной длины (глубины) или максимального количества хитов.

Но, может быть, я пытаюсь изобрести колесо еще раз? Есть ли такой alhorithm с Neo4j? Я не могу найти

+0

Вы решили эту проблему? – Stefan

ответ

0

Я думаю, что этот алгоритм может быть чем-то, что вы можете развить сами и внести свой вклад в пакет graph-algo, возможно, как изменение allSimplePaths?

Смежные вопросы