Releases: chocoteam/choco-solver
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
4.10.9
4.10.9 - 22 Aug 2022
Major features:
- It is now possible to declare hints to help the search finding a first solution. See
solver.addHint(var, val)
. - Add
Solver.tableSampling
resolution policy which returns a stream ofSolution
randomly sampled. - Add
increasing
anddecreasing
constraints - Add
costFlow
constraint, which is composed of scalar products and a MinCostMaxFlow propagator - Revamp
pow
constraint - Add threshold for
element
with array of variables signature - Add a propagator for 0/1-knapsack (thanks to @PoltyPoltou)
- Remove
CPProfiler
since the project is not active anymore. - Make possible to deal with large domains for some constraints (#894)
- Add a
LinearProgram
class to deal with linear program (!) and a two-phase Simplex (not connected yet) - Fix bug related to delta in boolean views
- Improvements relative to reified propagators
- Change signature of AtLeastNValues
- Record time to best in
Measures(IMeasures measures)
constructor
Change the way propagators are stored in variables to ease swapping (#889)
Each variable is in charge of scheduling its propagators.
This impacts the way propagators are stored in a variable.
Consequently, the getPropagators()
and getPropagator(int)
methods are deprecated, streamPropagators()
replaces them.
Unless otherwise stated, a propagator that can be entailed is automatically swapped in its variables' internal structure.
SetVar
- Extend some black-box strategies to
SetVar
- Add
union(SetVar unionSet, SetVar indices, SetVar[] sets)
constraint - Add free strategy for SetVar (RegParser and ParallelPortfolio)
- Fix
SetVar#getDomainSize
- Add
SetDomainMax
- Add 'setLe' and 'setLt' constraint (as a decomposition) in
ISetConstraintFactory
Flatzinc, XCSP3 and MPS
- Change default search of Flatzinc
- Increase interval for Flatzinc unbounded intvar
- Remove default ANSI in parsers
- Update FZN grammar to deal with 'set of int'
- Flatzinc: deal with warm_start
- Add ignored search annotation warning in FGoal
- Update XCSPParser + add
model.amongDec
JAR Files
Since 4.10.9, a new jar file is available for download.
This is a lighter version of the one with dependencies,
namely choco-parsers-light-VERSION.jar
.
The following dependencies have been excluded from this archive:
org.apache.pdfbox:pdfbox
org.apache.fontbox:fontbox
com.ibm.icu:icu4j
This results in 82% smaller archive.
Note that the non-alleged versions are still available for download.
Deprecated API (to be removed in next release):
IOutputFactory.outputSearchTreeToCPProfiler(boolean domain)
Other closed issues and pull requests:
See milestone 4.10.9
Contributors to this release:
- Mathieu Vavrille (@MathieuVavrille)
- Nicolas Pierre (@PoltyPoltou)
- Charles Prud'homme (@cprudhom)
- Jean-Guillaume Fages (@jgFages)
- Arthur Godet (@ArthurGodet)
Full Changelog: 4.10.8...v4.10.9
4.10.8
4.10.8 - 07 Jan 2022
Major features:
- Propagation is now observable,
solver.observePropagation(PropagationObserver)
.
Consequently, it is now possible to profil the propagation by callingsolver.profilePropagation()
.
See Javadoc for details and usages (#832). - Release 4.10.7 introduces a bug related to delta monitors, which is now fixed (#837).
- Add new black-box strategy: failure based variable ordering heuristics (@lihb905)
- Add
model.streamVars()
andmodel.streamCstrs()
- Bounded domains checking for table constraints
- Change complementary search in FlatZincParser
- Bump XCSP3
Other closed issues and pull requests:
See milestone 4.10.8
Contributors to this release:
- Jean-Guillaume Fages (@jgFages)
- Fabien Hermenier (@fhermeni)
- Hongbo Li (@lihb905)
- Charles Prud'homme (@cprudhom)
Full Changelog: 4.10.7...v4.10.8