Circulations and Flows in Learning Constraint Solvers

Nicholas Downing, Thibaut Feydy, Peter J. Stuckey

We give here the models (*.mzn) and instances (*.dzn) and all necessary support files to duplicate the experiments from the paper.

At top level: The files task_*_pre.txt give the command lines to the flattener (mzn2fzn version 1.6) and remaining task_*.txt the command lines to the solvers. These task files are generated by scripts/task_*.sh. There are also inst_*.txt and cols_*.txt which give the labels to each row and column of the tables in the paper and assist in the generation of the task files.

In the directories for each experiment, being car_sequence, etp, nurse_nina, personnel, social_golfer, there is a *.mzn.template file which contains the basic model annotated with optional sections to enable features like the circulation propagator or the decompositions of model constraints. The script m.sh generates all the *-*.mzn versions of these. The script n.sh generates all the *.dzn files for the given experiment, which are processed into Minizinc format from various sources. The *.mzn and *.dzn files are available directly from here, we just include the generator scripts for explanatory purposes.

The mzn directory contains some additional Minizinc files defining decompositions we use other than from the Minizinc library.

Support scripts for the NICTA cluster are seen in scripts/job.sh and scripts/sub.sh. We post process the results with some slight customizations for each experiment using scripts/data_*.sh which does the following:

For the comparison with Palm we checked out the code from svn://svn.code.sf.net/p/choco/code/trunk/choco-old_version/src/main/java revision 1194 (it is removed in later revisions after an effort at integration with a more recent Choco version — which does not compile), and applied the changes in palm.patch. These were quite extensive and involved adding missing code, fixing bugs, instrumenting for time and failure count, and adding graceful termination checks. See social_golfer/SocialGolfer.java for the driver we created to invoke this modified Choco package.

The comparisons with Chuffed and JaCoP were much easier as they are more modern and support a Minizinc front end, we just changed a few compile time constants in JaCoP to control their explicit arc testing algorithm.

all files in .tar.bz2 format
car_sequence/60_01_74.dzn
car_sequence/60_02_74.dzn
car_sequence/60_03_74.dzn
car_sequence/60_04_74.dzn
car_sequence/60_05_74.dzn
car_sequence/60_06_74.dzn
car_sequence/60_07_74.dzn
car_sequence/60_08_74.dzn
car_sequence/60_09_74.dzn
car_sequence/60_10_74.dzn
car_sequence/65_01_76.dzn
car_sequence/65_02_76.dzn
car_sequence/65_03_76.dzn
car_sequence/65_04_76.dzn
car_sequence/65_05_76.dzn
car_sequence/65_06_76.dzn
car_sequence/65_07_76.dzn
car_sequence/65_08_76.dzn
car_sequence/65_09_76.dzn
car_sequence/65_10_76.dzn
car_sequence/70_01_78.dzn
car_sequence/70_02_78.dzn
car_sequence/70_03_78.dzn
car_sequence/70_04_78.dzn
car_sequence/70_05_78.dzn
car_sequence/70_06_78.dzn
car_sequence/70_07_78.dzn
car_sequence/70_08_78.dzn
car_sequence/70_09_78.dzn
car_sequence/70_10_78.dzn
car_sequence/75_01_80.dzn
car_sequence/75_02_80.dzn
car_sequence/75_03_80.dzn
car_sequence/75_04_80.dzn
car_sequence/75_05_80.dzn
car_sequence/75_06_80.dzn
car_sequence/75_07_80.dzn
car_sequence/75_08_80.dzn
car_sequence/75_09_80.dzn
car_sequence/75_10_80.dzn
car_sequence/80_01_82.dzn
car_sequence/80_02_82.dzn
car_sequence/80_03_82.dzn
car_sequence/80_04_82.dzn
car_sequence/80_05_82.dzn
car_sequence/80_06_82.dzn
car_sequence/80_07_82.dzn
car_sequence/80_08_82.dzn
car_sequence/80_09_82.dzn
car_sequence/80_10_82.dzn
car_sequence/85_01_84.dzn
car_sequence/85_02_84.dzn
car_sequence/85_03_84.dzn
car_sequence/85_04_84.dzn
car_sequence/85_05_84.dzn
car_sequence/85_06_84.dzn
car_sequence/85_07_84.dzn
car_sequence/85_08_84.dzn
car_sequence/85_09_84.dzn
car_sequence/85_10_84.dzn
car_sequence/90_01_86.dzn
car_sequence/90_02_86.dzn
car_sequence/90_03_86.dzn
car_sequence/90_04_86.dzn
car_sequence/90_05_86.dzn
car_sequence/90_06_86.dzn
car_sequence/90_07_86.dzn
car_sequence/90_08_86.dzn
car_sequence/90_09_86.dzn
car_sequence/90_10_86.dzn
car_sequence/car_sequence-gcc_c-gsc.mzn
car_sequence/car_sequence-gcc_c-seq_c.mzn
car_sequence/car_sequence-gcc_c-seq_dps.mzn
car_sequence/car_sequence-gcc_c-seq_lin.mzn
car_sequence/car_sequence-gcc_lin-gsc.mzn
car_sequence/car_sequence-gcc_lin-seq_c.mzn
car_sequence/car_sequence-gcc_lin-seq_dps.mzn
car_sequence/car_sequence-gcc_lin-seq_lin.mzn
car_sequence/car_sequence.mzn.template
car_sequence/car_sequence.py
car_sequence/data/10_93.txt
car_sequence/data/16_81.txt
car_sequence/data/19_71.txt
car_sequence/data/21_90.txt
car_sequence/data/26_82.txt
car_sequence/data/36_92.txt
car_sequence/data/41_66.txt
car_sequence/data/4_72.txt
car_sequence/data/60_01.txt
car_sequence/data/60_02.txt
car_sequence/data/60_03.txt
car_sequence/data/60_04.txt
car_sequence/data/60_05.txt
car_sequence/data/60_06.txt
car_sequence/data/60_07.txt
car_sequence/data/60_08.txt
car_sequence/data/60_09.txt
car_sequence/data/60_10.txt
car_sequence/data/65_01.txt
car_sequence/data/65_02.txt
car_sequence/data/65_03.txt
car_sequence/data/65_04.txt
car_sequence/data/65_05.txt
car_sequence/data/65_06.txt
car_sequence/data/65_07.txt
car_sequence/data/65_08.txt
car_sequence/data/65_09.txt
car_sequence/data/65_10.txt
car_sequence/data/6_76.txt
car_sequence/data/70_01.txt
car_sequence/data/70_02.txt
car_sequence/data/70_03.txt
car_sequence/data/70_04.txt
car_sequence/data/70_05.txt
car_sequence/data/70_06.txt
car_sequence/data/70_07.txt
car_sequence/data/70_08.txt
car_sequence/data/70_09.txt
car_sequence/data/70_10.txt
car_sequence/data/75_01.txt
car_sequence/data/75_02.txt
car_sequence/data/75_03.txt
car_sequence/data/75_04.txt
car_sequence/data/75_05.txt
car_sequence/data/75_06.txt
car_sequence/data/75_07.txt
car_sequence/data/75_08.txt
car_sequence/data/75_09.txt
car_sequence/data/75_10.txt
car_sequence/data/80_01.txt
car_sequence/data/80_02.txt
car_sequence/data/80_03.txt
car_sequence/data/80_04.txt
car_sequence/data/80_05.txt
car_sequence/data/80_06.txt
car_sequence/data/80_07.txt
car_sequence/data/80_08.txt
car_sequence/data/80_09.txt
car_sequence/data/80_10.txt
car_sequence/data/85_01.txt
car_sequence/data/85_02.txt
car_sequence/data/85_03.txt
car_sequence/data/85_04.txt
car_sequence/data/85_05.txt
car_sequence/data/85_06.txt
car_sequence/data/85_07.txt
car_sequence/data/85_08.txt
car_sequence/data/85_09.txt
car_sequence/data/85_10.txt
car_sequence/data/90_01.txt
car_sequence/data/90_02.txt
car_sequence/data/90_03.txt
car_sequence/data/90_04.txt
car_sequence/data/90_05.txt
car_sequence/data/90_06.txt
car_sequence/data/90_07.txt
car_sequence/data/90_08.txt
car_sequence/data/90_09.txt
car_sequence/data/90_10.txt
car_sequence/data.py
car_sequence/data.txt
car_sequence/m.sh
car_sequence/n.sh
cols_car_sequence.txt
cols_etp.txt
cols_nurse_nina.txt
cols_personnel.txt
cols_social_golfer.txt
data_car_sequence.txt
data_etp.txt
data_nurse_nina.txt
data_personnel.txt
data_social_golfer.txt
etp/96_10_10.dzn
etp/96_10_1.dzn
etp/96_10_2.dzn
etp/96_10_3.dzn
etp/96_10_4.dzn
etp/96_10_5.dzn
etp/96_10_6.dzn
etp/96_10_7.dzn
etp/96_10_8.dzn
etp/96_10_9.dzn
etp/96_15_10.dzn
etp/96_15_1.dzn
etp/96_15_2.dzn
etp/96_15_3.dzn
etp/96_15_4.dzn
etp/96_15_5.dzn
etp/96_15_6.dzn
etp/96_15_7.dzn
etp/96_15_8.dzn
etp/96_15_9.dzn
etp/96_20_10.dzn
etp/96_20_1.dzn
etp/96_20_2.dzn
etp/96_20_3.dzn
etp/96_20_4.dzn
etp/96_20_5.dzn
etp/96_20_6.dzn
etp/96_20_7.dzn
etp/96_20_8.dzn
etp/96_20_9.dzn
etp/96_5_10.dzn
etp/96_5_1.dzn
etp/96_5_2.dzn
etp/96_5_3.dzn
etp/96_5_4.dzn
etp/96_5_5.dzn
etp/96_5_6.dzn
etp/96_5_7.dzn
etp/96_5_8.dzn
etp/96_5_9.dzn
etp/etp.mzn.template
etp/etp.py
etp/etp-sp_evmdd-gcc_lin-chuffed.mzn
etp/etp-sp_evmdd-gcc_lin.mzn
etp/etp-sp_evmdd-gcc_mf-chuffed.mzn
etp/etp-sp_evmdd-gcc_mf.mzn
etp/etp-sp_mcf-gcc_lin-chuffed.mzn
etp/etp-sp_mcf-gcc_lin.mzn
etp/etp-sp_mcf-gcc_mf-chuffed.mzn
etp/etp-sp_mcf-gcc_mf.mzn
etp/etp-sp_reg-gcc_lin-chuffed.mzn
etp/etp-sp_reg-gcc_lin.mzn
etp/etp-sp_reg-gcc_mf-chuffed.mzn
etp/etp-sp_reg-gcc_mf.mzn
etp/gen2.py
etp/gen.py
etp/m.sh
etp/n.sh
inst_car_sequence.txt
inst_etp.txt
inst_nurse_nina.txt
inst_personnel.txt
inst_social_golfer.txt
mzn/circulation_lin.mzn
mzn/circulation_mcf.mzn
mzn/min_cost_flow_c.mzn
mzn/min_cost_flow_lin.mzn
mzn/soft_alldifferent_lin.mzn
mzn/soft_alldifferent_mcf.mzn
mzn/soft_alldifferent_mf.mzn
nurse_nina/28_10.dzn
nurse_nina/28_11.dzn
nurse_nina/28_12.dzn
nurse_nina/28_13.dzn
nurse_nina/28_14.dzn
nurse_nina/28_15.dzn
nurse_nina/28_16.dzn
nurse_nina/28_17.dzn
nurse_nina/28_18.dzn
nurse_nina/28_19.dzn
nurse_nina/28_1.dzn
nurse_nina/28_20.dzn
nurse_nina/28_21.dzn
nurse_nina/28_22.dzn
nurse_nina/28_23.dzn
nurse_nina/28_24.dzn
nurse_nina/28_25.dzn
nurse_nina/28_26.dzn
nurse_nina/28_27.dzn
nurse_nina/28_28.dzn
nurse_nina/28_29.dzn
nurse_nina/28_2.dzn
nurse_nina/28_30.dzn
nurse_nina/28_31.dzn
nurse_nina/28_32.dzn
nurse_nina/28_33.dzn
nurse_nina/28_34.dzn
nurse_nina/28_35.dzn
nurse_nina/28_36.dzn
nurse_nina/28_37.dzn
nurse_nina/28_38.dzn
nurse_nina/28_39.dzn
nurse_nina/28_3.dzn
nurse_nina/28_40.dzn
nurse_nina/28_41.dzn
nurse_nina/28_42.dzn
nurse_nina/28_43.dzn
nurse_nina/28_44.dzn
nurse_nina/28_45.dzn
nurse_nina/28_46.dzn
nurse_nina/28_47.dzn
nurse_nina/28_48.dzn
nurse_nina/28_49.dzn
nurse_nina/28_4.dzn
nurse_nina/28_50.dzn
nurse_nina/28_5.dzn
nurse_nina/28_6.dzn
nurse_nina/28_7.dzn
nurse_nina/28_8.dzn
nurse_nina/28_9.dzn
nurse_nina/m.sh
nurse_nina/N30.zip
nurse_nina/n.sh
nurse_nina/nurse_nina-model_1-gcc_c-seq_c.mzn
nurse_nina/nurse_nina-model_1-gcc_c-seq_dps.mzn
nurse_nina/nurse_nina-model_1-gcc_c-seq_lin.mzn
nurse_nina/nurse_nina-model_1-gcc_c-seq_reg.mzn
nurse_nina/nurse_nina-model_1-gcc_lin-seq_c.mzn
nurse_nina/nurse_nina-model_1-gcc_lin-seq_dps.mzn
nurse_nina/nurse_nina-model_1-gcc_lin-seq_lin.mzn
nurse_nina/nurse_nina-model_1-gcc_lin-seq_reg.mzn
nurse_nina/nurse_nina-model_2-gcc_c-seq_c.mzn
nurse_nina/nurse_nina-model_2-gcc_c-seq_dps.mzn
nurse_nina/nurse_nina-model_2-gcc_c-seq_lin.mzn
nurse_nina/nurse_nina-model_2-gcc_c-seq_reg.mzn
nurse_nina/nurse_nina-model_2-gcc_lin-seq_c.mzn
nurse_nina/nurse_nina-model_2-gcc_lin-seq_dps.mzn
nurse_nina/nurse_nina-model_2-gcc_lin-seq_lin.mzn
nurse_nina/nurse_nina-model_2-gcc_lin-seq_reg.mzn
nurse_nina/nurse_nina.mzn.template
nurse_nina/nurse_nina.py
palm.patch
personnel/18_3_10.dzn
personnel/18_3_1.dzn
personnel/18_3_2.dzn
personnel/18_3_3.dzn
personnel/18_3_4.dzn
personnel/18_3_5.dzn
personnel/18_3_6.dzn
personnel/18_3_7.dzn
personnel/18_3_8.dzn
personnel/18_3_9.dzn
personnel/18_4_10.dzn
personnel/18_4_1.dzn
personnel/18_4_2.dzn
personnel/18_4_3.dzn
personnel/18_4_4.dzn
personnel/18_4_5.dzn
personnel/18_4_6.dzn
personnel/18_4_7.dzn
personnel/18_4_8.dzn
personnel/18_4_9.dzn
personnel/18_5_10.dzn
personnel/18_5_1.dzn
personnel/18_5_2.dzn
personnel/18_5_3.dzn
personnel/18_5_4.dzn
personnel/18_5_5.dzn
personnel/18_5_6.dzn
personnel/18_5_7.dzn
personnel/18_5_8.dzn
personnel/18_5_9.dzn
personnel/18_6_10.dzn
personnel/18_6_1.dzn
personnel/18_6_2.dzn
personnel/18_6_3.dzn
personnel/18_6_4.dzn
personnel/18_6_5.dzn
personnel/18_6_6.dzn
personnel/18_6_7.dzn
personnel/18_6_8.dzn
personnel/18_6_9.dzn
personnel/20_3_10.dzn
personnel/20_3_1.dzn
personnel/20_3_2.dzn
personnel/20_3_3.dzn
personnel/20_3_4.dzn
personnel/20_3_5.dzn
personnel/20_3_6.dzn
personnel/20_3_7.dzn
personnel/20_3_8.dzn
personnel/20_3_9.dzn
personnel/20_4_10.dzn
personnel/20_4_1.dzn
personnel/20_4_2.dzn
personnel/20_4_3.dzn
personnel/20_4_4.dzn
personnel/20_4_5.dzn
personnel/20_4_6.dzn
personnel/20_4_7.dzn
personnel/20_4_8.dzn
personnel/20_4_9.dzn
personnel/20_5_10.dzn
personnel/20_5_1.dzn
personnel/20_5_2.dzn
personnel/20_5_3.dzn
personnel/20_5_4.dzn
personnel/20_5_5.dzn
personnel/20_5_6.dzn
personnel/20_5_7.dzn
personnel/20_5_8.dzn
personnel/20_5_9.dzn
personnel/20_6_10.dzn
personnel/20_6_1.dzn
personnel/20_6_2.dzn
personnel/20_6_3.dzn
personnel/20_6_4.dzn
personnel/20_6_5.dzn
personnel/20_6_6.dzn
personnel/20_6_7.dzn
personnel/20_6_8.dzn
personnel/20_6_9.dzn
personnel/24_3_10.dzn
personnel/24_3_1.dzn
personnel/24_3_2.dzn
personnel/24_3_3.dzn
personnel/24_3_4.dzn
personnel/24_3_5.dzn
personnel/24_3_6.dzn
personnel/24_3_7.dzn
personnel/24_3_8.dzn
personnel/24_3_9.dzn
personnel/24_4_10.dzn
personnel/24_4_1.dzn
personnel/24_4_2.dzn
personnel/24_4_3.dzn
personnel/24_4_4.dzn
personnel/24_4_5.dzn
personnel/24_4_6.dzn
personnel/24_4_7.dzn
personnel/24_4_8.dzn
personnel/24_4_9.dzn
personnel/24_5_10.dzn
personnel/24_5_1.dzn
personnel/24_5_2.dzn
personnel/24_5_3.dzn
personnel/24_5_4.dzn
personnel/24_5_5.dzn
personnel/24_5_6.dzn
personnel/24_5_7.dzn
personnel/24_5_8.dzn
personnel/24_5_9.dzn
personnel/24_6_10.dzn
personnel/24_6_1.dzn
personnel/24_6_2.dzn
personnel/24_6_3.dzn
personnel/24_6_4.dzn
personnel/24_6_5.dzn
personnel/24_6_6.dzn
personnel/24_6_7.dzn
personnel/24_6_8.dzn
personnel/24_6_9.dzn
personnel/24_7_10.dzn
personnel/24_7_1.dzn
personnel/24_7_2.dzn
personnel/24_7_3.dzn
personnel/24_7_4.dzn
personnel/24_7_5.dzn
personnel/24_7_6.dzn
personnel/24_7_7.dzn
personnel/24_7_8.dzn
personnel/24_7_9.dzn
personnel/24_8_10.dzn
personnel/24_8_1.dzn
personnel/24_8_2.dzn
personnel/24_8_3.dzn
personnel/24_8_4.dzn
personnel/24_8_5.dzn
personnel/24_8_6.dzn
personnel/24_8_7.dzn
personnel/24_8_8.dzn
personnel/24_8_9.dzn
personnel/m.sh
personnel/n.sh
personnel/personnel-first_fail-indomain_split.mzn
personnel/personnel-first_fail-value_prop.mzn
personnel/personnel-input_order-indomain_split.mzn
personnel/personnel-input_order-value_prop.mzn
personnel/personnel.mzn.template
personnel/personnel.py
scripts/csv_to_tex.sed
scripts/data_car_sequence.sh
scripts/data_etp.sh
scripts/data_nurse_nina.sh
scripts/data_personnel.sh
scripts/data.py
scripts/data_social_golfer.sh
scripts/job.sh
scripts/sub.sh
scripts/summary.py
scripts/task_car_sequence.sh
scripts/task_etp.sh
scripts/task_nurse_nina.sh
scripts/task_personnel.sh
scripts/task_social_golfer.sh
social_golfer/m.sh
social_golfer/n.sh
social_golfer/social_golfer-activity.mzn
social_golfer/social_golfer-first_fail.mzn
social_golfer/social_golfer-input_order.mzn
social_golfer/SocialGolfer.java
social_golfer/social_golfer.mzn.template
task_car_sequence_pre.txt
task_car_sequence.txt
task_etp_pre.txt
task_etp.txt
task_nurse_nina_pre.txt
task_nurse_nina.txt
task_personnel_pre.txt
task_personnel.txt
task_social_golfer_pre.txt
task_social_golfer.txt