В моем задании у меня есть сетка MxN
, например
М = 5, N = 8
KKKK....
.###...X
.XX#...X
...#....
........
K - начальная точка, X - конечная точка, # - препятствие
Мне нужно найти наименьшее количество ходов для переноса посылок из начальной точки в конечную.
Мы можем нести только 1 пакет за раз, и мы не можем двигаться по диагонали.
Ответ для этого примера - 20.
Мое предложение состояло бы в том, чтобы реализовать алгоритм A * и запускать его для каждой возможности (рассчитать наименьшее число ходов от каждой из начальных точек к каждой из конечных точек) и выбрать наименьший из них, учитывая тот факт, что 1 пакет охватывает 1 конечную точку.
Есть ли лучший способ реализовать это?