Releases: chocoteam/choco-solver
5.0.0-beta.1
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
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 updateddecreasing
constraint documentation (#1103)
Full Changelog: v4.10.17...v4.10.18
v4.10.17
v4.10.16
v4.10.15
4.10.15 - 09 Sep 2024
Major features:
- Add
PickOnDom
and variants (seeSearch.pickOnDom
) - Enhance MiniZinc output
- Revamp scripts to solver flatzinc files
- Fix bugs (see closed issues)
Other closed issues and pull requests:
Contributors to this release:
- Arthur Godet (@ArthurGodet)
- Paul King (@paulk-asert)
- Zhang Yang (@zy-nesime)
- Charles Prud'homme (@cprudhom)
Full Changelog: v4.10.14...v4.10.15
v4.10.14
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 inBitSetIntVarImpl
Deprecated API (to be removed in next release):
Other closed issues and pull requests:
Contributors to this release:
- Jean-Guillaume Fages (@jgFages)
- Arthur Godet (@ArthurGodet)
- Fabien Hermenier (@fhermeni)
- Charles Prud'homme (@cprudhom)
Full Changelog: v4.10.13...v4.10.14
v4.10.13
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:
Contributors to this release:
Full Changelog: v4.10.12...v4.10.13
v4.10.12
4.10.12 - 06 Mar 2023
Major features:
Deprecated API (to be removed in next release):
Other closed issues and pull requests:
Contributors to this release:
Full Changelog: v4.10.11...v4.10.12
v4.10.11
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 inSolver
(#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
classIntEventType
:int combine(IntEventType... evts)
Other closed issues and pull requests:
Contributors to this release:
- Jean-Guillaume Fages (@jgFages)
- Arthur Godet (@ArthurGodet)
- Fabien Hermenier (@fhermeni)
- Charles Prud'homme (@cprudhom)
Full Changelog: 4.10.10...v4.10.11
v4.10.10
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
andAND
inLogOp
- 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:
Contributors to this release:
Full Changelog: 4.10.9...v4.10.10