Это проблема, которую я могу легко решить не функциональным способом.Поиск кратчайшего пути между двумя точками на сетке, используя Haskell
Но решение этого вопроса в Haskell дает мне большие проблемы. Разумеется, я неопытна, когда речь заходит о функциональном программировании.
Проблема:
У меня есть 2D поле, разделенный на прямоугольники одинакового размера. Простая сетка. Некоторые прямоугольники являются пустым пространством (и могут быть пропущены), а другие непроходимы. Учитывая начальный прямоугольник A и прямоугольник назначения B, как бы рассчитать кратчайший путь между ними? Движение возможно только по вертикали и по горизонтали, по шагам - один прямоугольник большой.
Как я мог бы выполнить это в Haskell? Фрагменты кода, безусловно, приветствуются, но также, безусловно, не обязательно. И ссылки на дополнительные ресурсы также очень приветствуются!
Спасибо!
Это определенно звучит алгоритм Дейкстры или, по крайней мере, его вариация. – MatrixFrog
Звучит как алгоритм A *. (Я не могу правильно разместить ссылку на Википедию). – CiscoIPPhone