1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
on-restart-benchmarks/share/minizinc/linear/redefinitions-2.0.2.mzn
Jip J. Dekker f2a1c4e389 Squashed 'software/mza/' content from commit f970a59b17
git-subtree-dir: software/mza
git-subtree-split: f970a59b177c13ca3dd8aaef8cc6681d83b7e813
2021-07-11 16:34:30 +10:00

30 lines
1.2 KiB
MiniZinc

% This file contains redefinitions of standard builtins for version 2.0.2
% that can be overridden by solvers.
predicate symmetry_breaking_constraint(var bool: b) =
(b) %:: MIP_lazy %:: MIP_cut %% MIP_cut wrong in CPLEX 12.6.3
%% Symm breaking as lazy is 1% better in Gurobi 6.5.2 on the Challenges 2012-2015
%% But caused a bug in 7.5.1 - switched off
%% true %% TO omit all symmetry_breaking_constraint's
;
%% Make sure no feasible solutions are cut off:
predicate redundant_constraint(var bool: b) =
(b) %:: MIP_cut
% true %% To omit all redundant_constraint's
;
%% Linearized element: just call without shifting
predicate array_var_bool_element_nonshifted(var int: idx, array[int] of var bool: x, var bool: c) =
array_var_bool_element(idx,x,c);
predicate array_var_int_element_nonshifted(var int: idx, array[int] of var int: x, var int: c) =
array_var_int_element(idx,x,c);
predicate array_var_float_element_nonshifted(var int: idx, array[int] of var float: x, var float: c) =
array_var_float_element(idx,x,c);
predicate array_var_set_element_nonshifted(var int: idx, array[int] of var set of int: x, var set of int: c) =
array_var_set_element(idx,x,c);