Я пытаюсь реализовать Java-реализацию генератора пути на графе с двунаправленными взвешенными ребрами. Задача состоит в том, чтобы предоставить пользователю маршрут на основе списка точек интереса (POI) и интересов пользователя. Интересы пользователя, расстояния и время в пути между всеми POI уже рассчитаны. С помощью этих данных мне удалось создать график с двунаправленными ребрами, где вес ребра - это время в пути между источником и узлом назначения.
Есть некоторые соответствующие пользовательские данные:
- промежуток времени, в течение которого он хочет путешествовать, то есть 30 июня с 16:00 до 30 июня в 20:00.
- начальная точка (координаты) поездки, из которой в качестве начальной точки поездки выбран ближайший POI.
Поскольку вес узлов - это время перемещения между POI, итоговая сумма веса пути не может превышать промежуток времени, определенный пользователем. Это будет условие остановки вместо узла назначения.
Интересы пользователя для POI определяются в диапазоне от 0 до 5. В идеале эта переменная также будет учитываться при расчете пути, поскольку пользователь хотел бы посетить POI с лучшим показателем.
Эта проблема была предложена в академическом контексте, и мои знания в этой области не так хороши. Если у вас есть предложение по алгоритму или любая другая идея, чтобы решить эту проблему в разумные сроки, я был бы признателен.