Задать вопрос
@Alex00qqw

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

Мусоровоз должен собрать отходы из всех точек сбора и вернуться в гараж из которого вышел. Нужно найти самый короткий путь через все заданные точки. Подскажите пожалуйста какой алгоритм можно использовать? Возможно ли решить задачу с помощью нейронных сетей? Натравить НС на данные которые у нас есть. У нас есть история посещения точек водителями. Соответственно мы можем предугадать маршрут
  • Вопрос задан
  • 574 просмотра
Подписаться 2 Простой 12 комментариев
Решения вопроса 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 матрица расстояний, это как раз то что вам нужно.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы