Skip to content

Releases: chocoteam/choco-solver

5.0.0-beta.1

17 Feb 17:25
Compare
Choose a tag to compare

5.0.0-beta.1 - 17 Feb 2025

Major features:

This version introduces CP-SAT in Choco-solver which
replaces the previous explanation framework.
The Lazy Clause Generation (LCG) is a technique that allows the solver to generate clauses during search.
The current implementation is inspired by Chuffed
and "Lazy Clause Generation Reengineered" - Feydy, T., Stuckey, P.J. (2009).
This new version has necessitated a rather intrusive revision of the way propagators filter.

By default, LCG is not enabled. The following code shows how to enable it:

Model model = new Model(Settings.init().setLCG(true));

At this stage, this is a beta version.
First, only integer and boolean variables are supported.
Second, some constraints are explained with dedicated functions and
others are decomposed into explained ones.
More importantly, others are neither explained nor decomposed (for the moment).
In the latter case, an exception is raised to inform the user of the situation.

Other closed issues and pull requests:

See milestone 5.0.0

Contributors to this release:

v4.10.18

27 Jan 15:38
Compare
Choose a tag to compare

4.10.18 - 27 Jan 2025

Major features:

  • Fix unexpected behaviour when using neg() intvar in arithm #1115
  • Fix bin packing initial propagation (#1113)
  • Fixed an error in increasing constraint documentation and updated decreasing constraint documentation (#1103)

Full Changelog: v4.10.17...v4.10.18

v4.10.17

23 Sep 07:52
Compare
Choose a tag to compare

4.10.17 - 23 Sep 2024

Hotfix

  • Fix bug in PropHybridTable (#1102)

Full Changelog: v4.10.16...v4.10.17

v4.10.16

16 Sep 09:43
Compare
Choose a tag to compare

4.10.16 - 12 Sep 2024

Hotfix

  • Fix bug in IntAffineView (#1101)

Full Changelog: v4.10.15...v4.10.16

v4.10.15

09 Sep 13:50
Compare
Choose a tag to compare

4.10.15 - 09 Sep 2024

Major features:

  • Add PickOnDom and variants (see Search.pickOnDom)
  • Enhance MiniZinc output
  • Revamp scripts to solver flatzinc files
  • Fix bugs (see closed issues)

Other closed issues and pull requests:

See milestone 4.10.15

Contributors to this release:

Full Changelog: v4.10.14...v4.10.15

v4.10.14

02 Nov 16:32
Compare
Choose a tag to compare

4.10.14 - 02 Nov 2023

Major features:

  • NEW: solver..showRestarts(); to display the number of restarts during the search.
  • NEW: hybrid table constraints (see model.table(...))
  • NEW: partial assignement generator for COP (see Search.generatePartialAssignment())
  • NEW: Add Blackbox configuration (#1058)
  • Revamp views (#564)
  • Improve pow(base, exponent, result)
  • Remove BitsetArrayIntVarImpl now managed in BitSetIntVarImpl

Deprecated API (to be removed in next release):

Other closed issues and pull requests:

See milestone 4.10.14

Contributors to this release:

Full Changelog: v4.10.13...v4.10.14

v4.10.13

05 Jun 12:23
Compare
Choose a tag to compare

4.10.13 - 05 Jun 2023

Major features:

Mainly bug fixes and improvements of Pareto front performances.

Deprecated API (to be removed in next release):

Other closed issues and pull requests:

See milestone 4.10.13

Contributors to this release:

Full Changelog: v4.10.12...v4.10.13

v4.10.12

06 Mar 14:52
Compare
Choose a tag to compare

4.10.12 - 06 Mar 2023

Major features:

Deprecated API (to be removed in next release):

Other closed issues and pull requests:

See milestone 4.10.12

Contributors to this release:

Full Changelog: v4.10.11...v4.10.12

v4.10.11

07 Feb 13:37
Compare
Choose a tag to compare

4.10.11 - 07 Feb 2023

From this version on, only one library will be available for direct download, namely choco-solver-4.10.11.
This library contains both the core (a.k.a, choco-solver module) and the extension for parsing model files (a.k.a, choco-parsers).
However, it is still possible (and recommended) to use Maven.

Major features:

  • Correcting the lack of filtering in PropIncreasing
  • Change the SetType for the undirected graph stored in DiffN for efficiency reason
  • SparseBitSet for a backtrackable bitset with mostly 0s (#935)
  • Change the way restarting works: not a Move anymore, directly included in Solver (#950)
  • Simplification of objective manager (#949)
  • Calling getValue() on an uninstantiated variable throws an IllegalStateException (#957)
  • Change the MiniZinc complementary search to a FirstFail (instead of DomOverWDeg) (#958)
  • Reduce object creation during solving (#985)
  • Reduce object creation during propagation (#969)
  • Reduce memory footprint of Model (#964)
  • Add model.getEstimatedMemory() method
  • Add Model analysis (#939)
  • Add log file as RegParser option (for parsers)
  • creation of PropPower propagators with exponent as int

Deprecated API (to be removed in next release):

From Solver:

  • Propagate getPropagate()
  • void setPropagate(Propagate p)
  • Closeable outputSearchTreeToCPProfiler(boolean domain)

Others:

  • Propagate class
  • IntEventType: int combine(IntEventType... evts)

Other closed issues and pull requests:

See milestone 4.10.11

Contributors to this release:

Full Changelog: 4.10.10...v4.10.11

v4.10.10

11 Oct 14:31
Compare
Choose a tag to compare

4.10.10 - 11 Oct 2022

Major features:

  • Fix performance issue of ViewDeltaMonitor
  • Fix lack of filtering in STR2+ when domain is bounded
  • Fix issue relative to OR and AND in LogOp
  • Add missing checks in OneWordS32BitSet and OneWordS64BitSet + update constructors
  • Add new API to VariableUtils
  • Add CITATION.cff
  • Update paper.md

Other closed issues and pull requests:

See milestone 4.10.10

Contributors to this release:

Full Changelog: 4.10.9...v4.10.10