Прямо сейчас у меня есть этот лабиринт:
![maze](https://i.stack.imgur.com/uCInP.png)
Узлы, отмеченные S и E , представляют начало и конец этого лабиринта.
Узлы, окрашенные в оранжевый цвет, представляют собой препятствия, которые на данный момент не могут быть обойдены.
Моя цель - позволить алгоритму A * обойти x количество препятствий и добраться до конца как можно быстрее.
Мой алгоритм A * в настоящее время перемещается по нему следующим образом:
.
Но я хочу, чтобы он двигался так, если я позволю обойти 1 препятствие:
и вот так, если я позволю обойти 2 препятствия:
![this](https://i.stack.imgur.com/Me1B5.png)
Как я могу изменить алгоритм A * для достижения этой цели? Может быть, есть альтернативный алгоритм, который мог бы помочь мне с этой проблемой?