Поиск пути - A * с наименьшим количеством поворотов
Можно ли изменить A *, чтобы вернуть кратчайший путьс наименьшим количеством оборотов?
Одна сложность: узлы больше не могут различаться только по их расположению, потому что их родительский узел важен при определении будущих поворотов, поэтому им также необходимо иметь направление, связанное с ними.
Но главная проблема, с которой я сталкиваюсь, состоит в том, как обработать число поворотов до частичной стоимости пути (г). Если я умножу g на количество пройденных поворотов (t), происходят странные вещи, например: более длинный путь с N витками в конце предпочтительнее более короткого пути с N витками в начале.
Другое менее оптимальное решение, которое я рассматриваю, заключается в следующем: после вычисления кратчайшего пути я мог бы выполнить вторую итерацию A * (с другой формулой стоимости пути), на этот раз ограниченную в диапазоне x / y кратчайшего пути, и вернуть путь с наименьшим количеством поворотов. Есть другие идеи?