Оптимизировать алгоритм поиска кратчайшего пути День добрый.
Возникла проблема с алгоритмом поиска пути. Реализовывал алгоритм Ли и многие другие. Проблем раньше не возникало в силу того, что карты игровые маленькие.
Сейчас возникла необходимость рассчитывать кратчайший путь у npc на довольно большой карте.
И вот две проблемы возникли:
1) Так как карта большая, то прогонка волнового алгоритма для каждого npc само по себе довольно затратна.
2) Пока что путь рассчитывается на каждом шаге по новой.
Поэтому, хочу попросить помощи в оптимизации алгоритма, чтобы как-то исключить эти проблемы. Или, по крайней мере, минимизировать как-то время вычисления.
p.s. нет необходимости в уже готовых исходниках и т.д., мне интересна именно теоретическая часть.

21 Авг 2019 в 06:14
166 +1
0
Ответы
1

Для оптимизации алгоритма поиска кратчайшего пути на большой карте можно использовать следующие подходы:

Кэширование результатов: сохраняйте информацию о найденных путях между узлами карты, чтобы не пересчитывать их каждый раз. Это поможет сократить время вычислений.

Дробление карты на секторы: разделите карту на небольшие секторы и рассчитывайте путь в пределах каждого сектора отдельно. Это уменьшит количество узлов, которые нужно обрабатывать во время поиска пути.

Использование алгоритмов с приоритетной очередью: используйте алгоритмы поиска пути с приоритетной очередью, такие как A* или Dijkstra с использованием кучи Фибоначчи. Они помогут быстрее находить кратчайший путь.

Параллельное вычисление: используйте многопоточность для распределения вычислений по нескольким ядрам процессора. Это поможет ускорить процесс поиска пути на большой карте.

Оптимизация структуры данных: выберите эффективные структуры данных для хранения информации о карте и пути. Например, для быстрого доступа к узлам карты используйте хэш-таблицы или квадродеревья.

Эти подходы помогут оптимизировать алгоритм поиска кратчайшего пути и уменьшить время вычислений на большой карте.

20 Апр в 13:21
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 89 779 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир