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.
2021-06-16 11:22:45 +10:00
2021-06-15 16:32:27 +10:00
2021-06-15 16:32:27 +10:00
2021-06-15 16:32:27 +10:00
2021-06-15 16:32:27 +10:00
2021-06-15 17:11:20 +10:00
2021-06-16 10:22:47 +10:00
2021-06-16 10:22:47 +10:00
2021-06-15 17:11:20 +10:00
2021-06-16 10:22:06 +10:00
2021-06-15 16:32:27 +10:00
2021-06-16 11:22:45 +10:00
2021-06-16 10:23:14 +10:00
2021-06-16 10:23:14 +10:00
2021-06-16 10:23:14 +10:00
2021-06-16 10:23:14 +10:00
2021-06-16 10:23:14 +10:00
2021-06-16 10:23:14 +10:00
2021-06-16 10:23:14 +10:00

Restart Based Meta-Search Experiments

This repository contains benchmarks of restart based meta-search presented in

Dekker J.J., de la Banda M.G., Schutt A., Stuckey P.J., Tack G. (2018) Solver-Independent Large Neighbourhood Search. In: Hooker J. (eds) Principles and Practice of Constraint Programming. CP 2018. Lecture Notes in Computer Science, vol 11008. Springer, Cham. https://doi.org/10.1007/978-3-319-98334-9_6

and included in Jip J. Dekker's PhD Thesis.

These experiments concern the usage of propagation engine adjustments that capture some of the context of the current search space. This context can later be accessed by special propagators to enforce properties that are interesting for meta-search. Such as:

  • The last value a variable has taken
  • The last solution a variable has taken
  • A random value, to be assigned by a variable

These benchmarks tests the effectiveness of this approach. The experiments are conducted on the gbac, rcpsp-wet and steelmillslab problems from the MiniZinc challenge. Each model is given two neighbourhoods for an round-robin LNS approach.

Setup

The script setup.sh contains initial configuration of the experiments:

  • The amount of time given for the test (120 sec)
  • The amount of repeats for randomised search (10)
  • It adds the correect version of MiniZinc to the PATH

The solver versions used are stored in the software/ folder as git sub-modules. The install.sh script can be used to compile the solvers and put them in the correct place.

Run

The experiments can be run as different parts:

  • Regular Gecode (base-line)
  • Regular Chuffed (base-line)
  • Restart Based Gecode (proposal)
  • Restart Based Chuffed (proposal)
  • Recording Gecode (data for replay)
  • Replaying Gecode (ideal-case, no-computation)

For each part there is a run_*.sh script that will run the experiments and put its results into the output folder. The run_all.sh script can be used to run them all in sequences.

Analyse

The scripts analyse_{gecode,chuffed}.py can be used to process the information gathered during the experiments. Each script is specific to that solver. It takes the output folder of one of the runs as an argument (e.g., output/gecode/gbac/original). The script produces a CSV format that can then be processed using software like Excel or Numbers.

Description
No description provided
Readme 16 MiB
Languages
C++ 98.3%
Python 0.3%
C 0.3%
Makefile 0.3%
Perl 0.3%
Other 0.4%