These are the official rules for the MiniZinc Challenge 2017.
Version 2.1.5.
These rules were last updated on 2 June 2017.
The MiniZinc Challenge 2017 will test solvers on problems written in MiniZinc 2.1.5.
Let name be the name of the solver system in what follows.
An entrant in the challenge is a constraint solver that is installed in a virtual
machine (VM) provided by the organizers. The download link will be provided after
registration.
Constraint solvers that have several variants, for example that can alternatively
use copying or trailing, may submit one entry per variant although the organizers
reserve the right to reject such variations if they not sufficiently interesting,
(e.g. multiple copies of the same solver with differing parameters).
Each entrant must provide a gzipped tarball containing the following:
A text file named CLASSES specifying which competition CLASS(es) the entry is to be entered in.
A text file named DESCRIPTION, that contains a short
(1-2 pages) description of the system.
This should include a list of all authors of the
system and their present institutional affiliations.
It should also describe any algorithms or data structures that are not standardly used in such
systems.
System descriptions will be posted on the MiniZinc Challenge 2017 website.
The provided VM with the installed solver can be run by the provided scripts inside the VM as FlatZinc or MiniZinc solver, i.e.,
fzn-exec [<options>] file.fzn
The argument file.fzn is the name of a FlatZinc 2.1.5 model instance to evaluate.exec [<options>] -G <mznlibdir> file.mzn [<data.dzn>]
The arguments file.mzn and data.dzn are names of a MiniZinc 2.1.5 model and data file, respectively. The argument -G <mznlibdir> points to the location of your solver's MiniZinc library directory containing the redefinition or global constraints files.Execution of solvers must not require root access.
Any solver-specific definitions of the global constraints in the MiniZinc library in
the VM directory /home/user/entry_data/mzn-lib.
This directory may also contain a file named redefinitions.mzn that contains
redefinitions of FlatZinc built-ins required by the solver.
The gzipped tar-ball must be made accessible for download for the organizer and the submitter
must send an email to the organizer describing how to download the modified VM.
The organizers will make reasonable efforts to run each system, including communication with the submitters of the system in case of difficulties. Nevertheless, the organizers reserve the right to reject an entrant if its process proves overly difficult.
The results will be announced at CP2017. Entrants are encouraged to physically attend CP2017, but are not required to in order to participate or win.
There will be at most five competition CLASSES depending on how many solvers are entered in each of them:
The CLASSES file included in the entry must specify which competition CLASS(es) the entry is to be entered in.
The problem format will be MiniZinc 2.1.5.
There will be some restrictions on the problems tested in MiniZinc challenge.
array[1..3] of set of 1..3: a = [{1,2}, {3}, {1,3}];
var 1..3: i;
constraint card(a[i]) > 1;
var 0..100: x;
var 0..100: y;
constraint x + y < 144;
constraint symmetry_breaking_constraint(x <= y);
and redundant constraints in a predicate "redundant_constraint", e.g.,
array[1..4] of var 0..20: start;
array[1..4] of int: duration = [3, 4, 6, 7];
array[1..4] of int: usage = [6, 3, 5, 3];
constraint cumulative(start, duration, usage, 10);
constraint redundant_constraint(start[1] + dur[1] <= start[3] \/ start[3] + dur[3] <= start[1]);
var 1..5: x;
var 1..5: y;
var 1..5: z;
constraint x <= y /\ y <= z;
solve :: int_search([x, y, z], input_order, indomain_min, complete)
satisfy;
is correct but not
solve :: int_search([x,z], input_order, indomain_min, complete)
satisfy;
even though most FD solvers would know the second was satisfiable.
var 1..5: x;
var 1..10: objective;
constraint x > 1 -> objective > 7;
constraint x = 1 -> objective < 3;
solve :: int_search([x, objective], first_fail, indomain_min, complete)
maximize objective;
will first label x = 1
and find maximum value objective = 2
eventually on
backtracking to the choice x = 1
, then setting x >= 2
in most FD
solvers will have domains for x :: 2..5
and objective :: 8..10
and this time objective
will be selected as the next variable to label.
A full specification of the available choices is given in the
FlatZinc 1.6 specification.
Output from entries must conform to the FlatZinc 1.6 specification. For optimization problems, if the time limit is exceeded before the final solution is printed then the last complete approximate solution printed will be considered to be the solution for that entry. Note that is important that entries flush the output stream after printing each approximate solution.
During the MiniZinc Challenge 2017 all VMs will run on machines with the following specification:
Except in the Parallel search, Local search, and Open class, only a single core of one processor will be used for each entrant.
The benchmarks for MiniZinc Challenge 2017 (as well as for the qualification rounds) will be selected by the judges to try to examine some of the breadth of characteristics of FD solvers:
To obtain benchmarks of suitable difficulty we will select only such instances that can be solved by at least one of the participating solvers in a sensible time-frame. For the qualification rounds no such restriction applies.
In order to collect good benchmarks each entrant is
strongly encouraged to submit
one or two MiniZinc 2.1.5 models, making use of only the global constraints
included in the MiniZinc 2.1.5 library, as well as some (preferably 20)
instance files for each model.
The instances should range from easy (about a minute)
to hard (about 15 minutes) if possible.
Note that the model must conform to the problem format restrictions above.
Submitted benchmarks must be placed in the public domain.
There will be an initial submission round, which will provide the organizers with an opportunity to provide feedback on entries' compatibility with the competition hardware, compliance with the FlatZinc specification and any other matters that may arise. Submission in the initial round is not required in order to qualify for the final round, but it is strongly encouraged.
The challenge will require solvers to process 100 MiniZinc models
with a run-time limit of 20 minutes (process time) per problem.
NOTE that the MiniZinc to FlatZinc/XML-FlatZinc time
will be included in this time.
Each solver s is run on problem p and the following information is collected.
The scoring calculations will be done once for each run class: FD search, Free search, Parallel search, Open class, and Local search. Note that if too few solvers are entered in a class then the challenge won't be run for that class.
The organizers may well run entrants in the FD search class on a series of smaller problems to test that they indeed are following the given search strategy. These problems will not accrue points, but may disqualify an entry from the FD search class.
The solvers will be ranked on total points awarded. There will be prizes for the solvers with the highest scores in each of the run classes: FD search, Free search, Parallel search, Open class, and Local search. The organizers may also award prizes to the best solvers on a particular category of problems. Note that if too few solvers are entered in a class then the challenge won't be run for that class and no prizes will be awarded for that class.
The organizers reserve the right to enter their own systems--or other systems of interest--to the competition, but these will not be eligible for prizes, but still will modify the scoring results. In addition, the organizers reserve the right not to run the challenge on classes with insufficient number of solver entrants.
Return to the MiniZinc Challenge 2017 home page.