K-алгоритм кратчайшего (альтернативного) пути, реализации java
не могли бы вы порекомендовать любую библиотеку java, которая реализует K-кратчайший алгоритм -> поиск альтернативных способов, а не единственный самый короткий в направленном мультиграфе ?
Я нашел только JGraphT, но на самом деле есть ошибка (которую я отправил), но это займет много времени, чтобы исправить это, я думаю, есть ли какие-либо другие доступные реализации ? Кроме JGraphT я нашел только небольшие проекты для одного человека:/
или будет трудно изменить Disjktra кратчайший путь АЛГ показать альтернативные пути ?
спасибо
3 ответов
2 Возможных Варианта:
1. Theclass KshortestPath
с пакет Маскопт является хорошим вариантом для реализации Java K-кратчайших путей.
2. Вы также можете попробовать это изcode.google.com
Кажется, это усилия одного человека, но хорошо, что алгоритм общий: рейтинг Йена - подробности здесь.(http://www.ohloh.net/p/k-shortest-paths)
Примечание: Поиск кратчайший путь между всеми парами узлов в данном графе-это другая задача. См. этот вопрос SO на Дейкстры и Флойда-Warshall.
также обратите внимание, что k-shortest paths
для богатых графов, как правило, небольшие вариации (Dijkstra) кратчайшего пути - альтернативные пути между вершинами на кратчайшем пути с несколько более высокими затратами.
Я знаю, что OP попросил реализации Java, но если у людей есть выбор, а R-вариант, то kBestShortestPaths
пакета от CRAN-очень хороший вариант.
надеюсь, что это поможет.
Поиск K-кратчайших путей связан, но не является той же самой проблемой, что и альтернативные пути. Хорошие альтернативные пути более сложны. прочитать где другие подобные подходы изложены:
- k-кратчайший путь
- Парето-оптимальности
- метод плато
- неустойка подход
метод плато немного проиллюстрирован здесь.
Если возможно для вас тогда читайте по-немецки эта лекция хороший:
- например, оптимизация времени или расстояния = > проблема: интересные альтернативы отсутствуют
- dijunct пути => та же проблема
- k-кратчайший путь = > проблема: реальная альтернатива, вероятно, не находится под первыми 1000 путями
Страница 5
Итак, интуиция говорит нам: альтернатива должна иметь почти одинаковое расстояние или время. но должно быть значительным отличающийся. Итак, первая идея: найти путь, который минимизирует длину и сходство. Проблема: могут быть местные объезды.
Страница 6
мы введем 3-й критерий: местные optimumality: каждый фрагмент должен быть кратчайший путь.
был аналогичный запрос раньше, но ищет все пути в StackOverflow. найти все пути в графе с DFS
надеюсь, это поможет, на него ответили, но не с точным решением, а больше руководства