route-engine-rs
Легковесная библиотека для поиска маршрутов в ориентированном графе с расширяемыми стратегиями и бизнес-ограничениями.
Что внутри
graph— базовый графGraph<N, E>иNodeId.algorithms— Dijkstra:shortest_path(...)shortest_path_with_constraint(...)
strategies— как считать стоимость пути:ByCost(1 критерий)ByTwoCosts(2 критерия, лексикографический приоритет)
constraints— правила прохождения ребер:PathConstraintAllowAll
errors— ошибки библиотеки.
Быстрый старт
Запуск примера:
Как расширять
-
Добавить новую стратегию: реализовать
PathStrategy<E>и определитьState+Key. -
Добавить новое бизнес-правило: реализовать
PathConstraint<N, E>и проверять ребро черезEdgeContext. -
Запустить поиск:
- без ограничений:
shortest_path(...) - с ограничениями:
shortest_path_with_constraint(...)
Тесты