Я хочу найти кратчайший путь в ориентированном ациклическом графе с neo4j. У меня есть график, который выглядит примерно так: A * поиск в neo4j
Я хочу найти путь, начиная с Root
до Layer 3
. На каждом уровне у меня есть другой набор свойств, и я могу рассчитать вес, используя эти свойства и пользовательский ввод. Мне нужно найти все кратчайшие пути с минимальным динамическим весом, используя A * или другой алгоритм поиска (возможно иметь несколько путей с равными весами). Возможно ли это с neo4j и cypher или гремлин?
Я не хочу использовать встроенную версию, потому что мой проект написан на python, поэтому я не могу использовать java-библиотеку, которая, как я знаю, может это сделать.
Если его DAG, не существует ли один путь между любыми двумя узлами? A * кажется излишним, однако он реализован; простая DFS (отсечение на желаемом уровне) будет выполнять эту работу. –
Можно ли использовать гремлин или (лучше) cypher? – Lazin
Я нашел это - http://docs.neo4j.org/chunked/snapshot/query-match.html#_shortest_path, это похоже на ответ на мой вопрос. – Lazin