@Alex00qqw

Алгоритм поиска кратчайшего пути через все вершины?

Мусоровоз должен собрать отходы из всех точек сбора и вернуться в гараж из которого вышел. Нужно найти самый короткий путь через все заданные точки. Подскажите пожалуйста какой алгоритм можно использовать? Возможно ли решить задачу с помощью нейронных сетей? Натравить НС на данные которые у нас есть. У нас есть история посещения точек водителями. Соответственно мы можем предугадать маршрут
  • Вопрос задан
  • 540 просмотров
Решения вопроса 1
@Alex00qqw Автор вопроса
Решение нашел (приближенное) с помощью двух подходов
1) Муравьиный алгоритм, вполне рабочее решение https://www.baeldungtest.com/java-ant-colony-optim...
2) Использовать Google OR-Tools https://developers.google.com/optimization/routing/tsp

Сначала удалось решить задачу способом 1 но сейчас в рабочем коде используем 2
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
trapwalker
@trapwalker
Программист, энтузиаст
Это NP-полная задача. При достаточном количестве мусорных баков эффективно и быстро решить её просто нельзя.
Важно понимать какое вам нужно решение: достаточно хорошее или оптимальное. Возможно, что для поиска оптимального решения вам просто не хватит ресурсов.
Оптимальный маршрут ищется перебором иногда с разными оптимизациями, которые, впрочем, не сильно помогут в произвольном случае.
Субоптимальные ищутся, к примеру, генетическими алгоритмами.

Эта задача называется задачей коммивояжера:
Задача коммивояжёра относится к числу трансвычислительных: уже при относительно небольшом числе городов (66 и более) она не может быть решена методом перебора вариантов никакими теоретически мыслимыми компьютерами за время, меньшее нескольких миллиардов лет.
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
Во всех картографических сервисах есть API матрица расстояний, это как раз то что вам нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы