Я стартер в neo4j, и я хочу знать, если можно найти лучшие пути, используя neo4j, где у меня есть стоимость, но я хочу первый лучший путь и второй лучший путь и т. д.Как найти наилучшие пути GraphAlgoFactory (первый лучший, второй лучший и т. Д.)
Если у меня есть 3 возможных пути, мне нужно получить все 3 в порядке по стоимости, если у меня есть 100 возможных путей, мне тоже нужно ограничить результаты (например, 10 лучших результатов).
Это возможно в neo4j?
PS: в моих тестах я использовал образец Java-ASTAR-маршрутизации: https://github.com/neo4j-examples/java-astar-routing
Спасибо и извините за мой бедный английский;),
Вы можете использовать Dijkstra или A * и использовать finder.getAllPaths(), которые затем упорядочиваются по стоимости/весу. –
@MichaelHunger Я думаю, что finder.getAllPaths() возвращает все наилучшие пути, он вернет более одного результата, если эти пути имеют одинаковую цену. Мне нужно первое, второе и так далее ... –
Итак, итератор через (ленивый) результат итератора и возвращай один (если много) из лучшего балла, один (если много) из второго лучшего результата ... и так далее. Dijkstra и AStar возвращают объекты WeightedPath, у которых есть аксессор стоимости. –