У меня есть сетка с полями x. Эта сетка должна быть заполнена таким же количеством sqaures (позволяет называть их "фермами" ) размером 2x2 (поэтому каждая ферма имеет 4 поля по размеру). Каждая ферма должна быть подключена к определенному полю ( "корень" ) через "дороги".
Я написал своего рода алгоритм грубой силы, который пробует каждую комбинацию ферм и дорог. Каждый раз, когда ферма помещается в сетку, алгоритм проверяет, имеет ли ферму соединение с корнем, используя алгоритм A *. Он работает очень хорошо на небольших сетках, но на больших сетках он слишком трудоемкий.
Вот небольшая уже решена решетка
http://www.tmk-stgeorgen.at/algo/small.png
Синие квадраты - это фермы, красные квадраты - это свободное пространство или "дороги", а заполненный красный квадрат - это корневое поле, которому каждая ферма нуждается в соединении.
Мне нужно решить эту сетку:
http://www.tmk-stgeorgen.at/algo/grid.png
Есть ли быстрый алгоритм, который я могу использовать?