Skip to content

Releases: d-krupke/cpsat-autotune

v0.5.0

29 Aug 18:37
Compare
Choose a tag to compare

Added useful parameters for no-overlap constraints. Allowing to filter parameters based on the models to tune for.

v0.4.0

17 Aug 18:04
Compare
Choose a tag to compare

Better tuning and additional metrics to also get a chance of tuning for larger models in reasonable time.

v0.2.0

17 Aug 10:20
Compare
Choose a tag to compare

Added a CLI to the tool and better output:

  • Instead of metric score, it now tells exactly what it is that has been compared.
  • In the CLI, it tries to estimate the runtime.

v0.1.1

16 Aug 21:22
Compare
Choose a tag to compare

Removing an older part of the code that seems to be incompatible with py311 on Windows.

v0.1.0

16 Aug 16:51
Compare
Choose a tag to compare

This version is the first version that could potentially be used by others. The interface still needs some improvements but I get some useful results.

v0.0.3

16 Aug 15:11
Compare
Choose a tag to compare
v0.0.3 Pre-release
Pre-release

This version gives already quite expressive results. Still needs a lot of work to be used in production.

Sample output:

============================================================
                 OPTIMIZED PARAMETERS
============================================================

1. max_presolve_iterations: 1
   Contribution: 9.71%
   Default Value: 3
   Description:
       	Sets the maximum number of iterations that the presolve phase will execute.
		Presolve simplifies the problem by eliminating redundant constraints and variables before the main search begins.
		More iterations can lead to a more simplified problem but at the cost of longer presolve times.

2. cp_model_probing_level: 0
   Contribution: 51.99%
   Default Value: 2
   Description:
       	Defines the intensity of probing during presolve, where variables are temporarily fixed to infer more information about the problem.
		Higher levels of probing can result in a more simplified problem but require more computation time during presolve.

3. binary_minimization_algorithm: 2
   Contribution: 24.42%
   Default Value: 1
   Description:
       	Specifies the algorithm used for binary clause minimization during conflict analysis. The options are:
		- `0` NO_BINARY_MINIMIZATION.
		- `1` BINARY_MINIMIZATION_FIRST
		- `2` BINARY_MINIMIZATION_WITH_REACHABILITY
		- `3` EXPERIMENTAL_BINARY_MINIMIZATION
		- `4` BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION

4. max_all_diff_cut_size: 32
   Contribution: 13.88%
   Default Value: 64
   Description:
       	Limits the size of "all different" constraints used when generating cuts.
		All-different constraints ensure that a set of variables takes distinct values. This parameter controls the balance between reducing the search space and the computational cost of generating cuts.
------------------------------------------------------------
Default Metric Value: 1.5331676
Optimized Metric Value: 0.544175
------------------------------------------------------------

============================================================
*** WARNING ***
============================================================
The optimized parameters listed above were obtained based on a sampling approach and may not fully capture the complexities of the entire problem space. While statistical reasoning has been applied, these results should be considered as a suggestion for further evaluation rather than definitive settings.
It is strongly recommended to validate these parameters in larger, more comprehensive experiments before adopting them in critical applications.
============================================================

v0.0.0.1

14 Aug 16:53
Compare
Choose a tag to compare
v0.0.0.1 Pre-release
Pre-release

This is the first release of the cpsat-autotune tool, primarily to reserve the name on PyPI. This is a very early version and still has issues. Actually, it is still in the experimental phase but due to its nature, I need feedback which requires a simple way to share the tool. Do not rely on this tool.