README - var-elim-idxs
This repository contains the source code of
var-elim-idxs, an implementation of a new approach to eliminate auxiliary variables in flattened constraint-based models through the automated and online generation of new propagators. For more information, feel free to contact Jean-Noël Monette. This implementation of
var-elim-idxs is based on Gecode and MiniZinc. Internally, it uses the indexical compiler, as well as the FlatZinc parser of the OscaR project.
experiments/cp2015 contains (almost) all things necessary for easily reproducing experiments.
To get started, follow these instructions:
- Clone this repository.
- Install Virtualbox and vagrant.
- In the
vagrant up. This will install a virtual machine with everything that is needed. Note that download and installation can take some time.
- Add the MiniZinc models that you want to solve in the
experiments/cp2015/datadirectory, in two levels of subdirectories. For instance, one can clone the MiniZinc-benchmark repository or download the instances from any or all of the MiniZinc Challenges. As an example, the instances from the MiniZinc Challenge 2014 are already downloaded.
- In the
vagrant ssh -c /test/run_nohup.shto run the experiments. Note that the current time limit of 10 minutes per instance yields potentially long runtimes, depending on the instances that have been added to the
- The results of the experiments are written as they are produced to a file
DATEis the date when the experiment starts and
TIMELIMITis the time limit per instance.
Some additional information:
- The virtual machine runs Ubuntu 14.04 LTS 32-bit.
experiments/cp2015/datadirectories are mounted inside the virtual machine as
- All the scripts are located in
experiments/cp2015/test. For instance, to modify the time limit, one needs to change
- The virtual machine can be stopped with
vagrant haltor destroyed with
vagrant destroy. In the first case, a subsequent
vagrant upwill simply boot the still existing virtual machine. In the second case,
vagrant upneeds to reinstall the virtual machine.
experiments/cp2015 contains the following files:
- The particular jar files of
var-elim-idxs, the indexical compiler, and the OscaR parser that have been used in our experiments.
- All the scripts to run the experiments.
- A c++ source file and its header used to extend slightly the API of the Gecode-FlatZinc interpreter.
The source code and the bash scripts inside this repository are copyright Jean-Noël Monette and released under the modified 3-clauses BSD license (see the LICENSE file). You are most welcome to reuse any part of this code (according to the terms of the license) and I would be happy to hear from you if you do. The jar of the OscaR parser is distributed under the terms of the LGPL version 3, and the jar of the indexical compiler under the terms of the modified 3-clauses BSD license.
For any help or feedback, please contact Jean-Noël Monette. I will be happy to hear from you.