Я новичок в MiniZinc и пытаюсь смоделировать то, что, по моему мнению, должно быть простым ограничением, однако я действительно изо всех сил пытаюсь понять синтаксис, и просмотр различной документации оставил меня более смущенным.
В основном я хочу ограничить определенные наборы переменных определенными наборами связанных с ними доменов, которые в моем случае просто 0..1. Вот неработающий пример того, чего я хочу добиться:
set of int: DOMAIN = 0..1;
var DOMAIN: x11;
var DOMAIN: x12;
var DOMAIN: x13;
var DOMAIN: x21;
var DOMAIN: x22;
var DOMAIN: x23;
% obviously these constraint don't work but this is the gist is what i'm going for
constraint [x11, x12, x13] = [1, 0, 1] \/ [1, 0, 0] \/ [0, 1, 0];
constraint [x11, x21] = [1,0] \/ [1,1];
% ... etc (ultimately every variable will appear in 2 constraints and this situation
% represents a grid of 1's and 0's)
(Тогда я просто хочу использовать solve satisfy;
, чтобы просто присвоить переменным 0..1 так, чтобы все ограничения были выполнены)
Прошу прощения за неряшливое объяснение, но, как вы можете сказать, я явно новичок в этом. Если бы кто-нибудь мог помочь мне сформулировать эти ограничения, я был бы очень признателен - я полагаю, что сильно упростил синтаксис, не уверен, будут ли задействованы ограничения таблицы?