this repo has no description
at develop 978 B view raw
1include "fzn_alternative.mzn"; 2include "fzn_alternative_reif.mzn"; 3 4/** @group globals.scheduling 5Alternative constraint for optional tasks. Task (\a s0,\a d0) spans the 6optional tasks (\a s[\p i],\a d[\p i]) in the array arguments 7and at most one can occur 8*/ 9predicate alternative(var opt int: s0, var int: d0, 10 array[int] of var opt int: s, 11 array[int] of var int: d) = 12 assert(index_set(s) = index_set(d), 13 "alternative: index sets of third and fourth argument must be identical", 14 fzn_alternative(s0, d0, s, d) 15 ); 16 17predicate alternative_reif(var opt int: s0, var int: d0, 18 array[int] of var opt int: s, 19 array[int] of var int: d, var bool: b) = 20 assert(index_set(s) = index_set(d), 21 "alternative: index sets of third and fourth argument must be identical", 22 fzn_alternative_reif(s0, d0, s, d, b) 23 );