10.39.1 Notes
- Domain variables
- Only variables with finite integer domains are supported. This includes
boolean variables which are considered finite integer domain variables
with the domain
0..1
. Domain variables declared to be of type
var int
are initially given the finite integer domain
inf..sup
, and are given maximally wide bounded domains before any
search is performed on them, as well as before certain constraints that
demand bounded domains are posted on them.
- Ground set values
- Although set variables are not supported, ground set values
are. For example, the MiniZinc global constraint
sum_pred/4
takes as second argument an array of such ground set values.
- Solve annotations
-
- The solve annotations currently recognized are
bool_search
,
int_search
, labelling_ff
, and seq_search
.
- The FlatZinc specification describes several exploration
strategies. Currently, the only recognized exploration strategies are
complete
and fail
.
- Variables not included in any solve or
var_is_introduced
annotation are labeled with a default first-fail domain splitting
heuristic. This corresponds to labeling/2
of
library(clpfd)
with the option list [ff,bisect]
.
- The choice method
indomain_random
as described in the
FlatZinc specification uses random_member/2
of
library(random)
. The random generator of SICStus is initialized
using the same seed on each start up, meaning that the same sequence
will be tried for indomain_random
on each start up. This
behavior can be changed by setting a different random seed using
setrand/1
of library(random)
.
- Constraint annotations
- Constraint annotations of the form
domain
, bounds
, and
value
are recognized in relevant
FlatZinc-to-library(clpfd)
constraint translations. Any other
constraint annotation is ignored.
- Variable annotations
- The following variable annotations are recognized.
Any other variable annotation is ignored:
output_var
since release 4.2- the variable may be written on the current output stream.
output_array
since release 4.2- the variable array may be written on the current output stream.
var_is_introduced
- the variable will not be considered in any
default labeling (such as when the search annotations don't include all variables)
Send feedback on this subject.