Как запрограммировать двумерную задачу CSP с ограничением Python
Мне нужно использовать
python-constraint
для решения проблемы с укладкой. У меня есть 2 разных типа контейнеров (стандартный S и охлаждаемый R) и два возможных направления. Контейнеры должны быть размещены, как показано в следующей таблице, которая
N N N N
N N N N
X E E X
X X X X
Информация о контейнерах - это список кортежей, в которых
(idx, standard|energized, destination)
, В качестве примера:
containers = [(1,S,1), (2,R,2), ...]
Где N - нормальное положение, а E - под напряжением, X - неиспользуемое положение.
Я пытался использовать
python-constrain
раздача контейнеров на корабле. Сначала мои переменные
problem = constraint.Problem()
problem.addVariables(range(1,len(containers)+1), containers)
И затем мне нужно закодировать мою задачу, чтобы назначить коинтейнеры на позицию на корабле, но пока безуспешно, так как я не знаю, как кодировать сетку и назначать их каждому контейнеру. N-queens не работает с этой проблемой.
Какие-либо предложения.