An open-source Java library for Constraint Programming
solver..showRestarts();
to display the number of restarts during the search.model.table(...)
)Search.generatePartialAssignment()
)pow(base, exponent, result)
BitsetArrayIntVarImpl
now managed in BitSetIntVarImpl
Full Changelog: https://github.com/chocoteam/choco-solver/compare/v4.10.13...v4.10.14
Mainly bug fixes and improvements of Pareto front performances.
Full Changelog: https://github.com/chocoteam/choco-solver/compare/v4.10.12...v4.10.13
Full Changelog: https://github.com/chocoteam/choco-solver/compare/v4.10.11...v4.10.12
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.
PropIncreasing
SparseBitSet
for a backtrackable bitset with mostly 0s (#935)Move
anymore, directly included in Solver
(#950)getValue()
on an uninstantiated variable throws an IllegalStateException (#957)Model
(#964)model.getEstimatedMemory()
methodModel
analysis (#939)From Solver
:
Propagate getPropagate()
void setPropagate(Propagate p)
Closeable outputSearchTreeToCPProfiler(boolean domain)
Others:
Propagate
classIntEventType
: int combine(IntEventType... evts)
Full Changelog: https://github.com/chocoteam/choco-solver/compare/4.10.10...v4.10.11
STR2+
when domain is boundedOR
and AND
in LogOp
VariableUtils
CITATION.cff
paper.md
Full Changelog: https://github.com/chocoteam/choco-solver/compare/4.10.9...v4.10.10
solver.addHint(var, val)
.Solver.tableSampling
resolution policy which returns a stream of Solution
randomly sampled.increasing
and decreasing
constraintscostFlow
constraint, which is composed of scalar products and a MinCostMaxFlow propagatorpow
constraintelement
with array of variables signatureCPProfiler
since the project is not active anymore.LinearProgram
class to deal with linear program (!) and a two-phase Simplex (not connected yet)Measures(IMeasures measures)
constructorEach 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
union(SetVar unionSet, SetVar indices, SetVar[] sets)
constraintSetVar#getDomainSize
SetDomainMax
ISetConstraintFactory
model.amongDec
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.
IOutputFactory.outputSearchTreeToCPProfiler(boolean domain)
See milestone 4.10.9
Full Changelog: https://github.com/chocoteam/choco-solver/compare/4.10.8...v4.10.9
solver.observePropagation(PropagationObserver)
.
Consequently, it is now possible to profil the propagation by calling solver.profilePropagation()
.
See Javadoc for details and usages (#832).model.streamVars()
and model.streamCstrs()
See milestone 4.10.8
Full Changelog: https://github.com/chocoteam/choco-solver/compare/4.10.7...v4.10.8
freeze
and unfreeze
them before calling forEach...
methods. But, a call to forEach...
consumes all values stored.solver.setRestarts(..)
API).IntDomainBest
offers API to break ties (see Search.ValH.BLAST
for an example).solver.defaultSolution()
which creates lazily a solution recording everything, plugs it and returns it.
This is helpful when a Solution object is required in many places.IntVar.stream()
that streams a variable's values (in increasing order)Search.ValH.BMIN
and Search.ValH.BLAST
org.chocosolver.parser.mps.ChocoDIMACS
)solver.log()
) to trace from Model/Solver.Settings
, now is defined as a factory pattern + add Settings.dev()
and Settings.prod()
profiles.c.implies(b)
or c.impliedBy(b)
where c
is a Constraint and b
a BoolVar.choco.msc
(for MiniZinc IDE) + ./minizinc/README.md
Argmax
and Argmin
constraintsIfThenElse
as a decomposed constraintsolver.findParetoFront()
See milestone 4.10.7
Full Changelog: https://github.com/chocoteam/choco-solver/compare/4.10.6...v4.10.7
Solver
, namely findOptimalSolutionWithBounds
. See Javadoc for details and usages.ParallelPortfolio
now allows to add unreliable models, that is models whose resolution is deliberately made incomplete.
These models should not stop the parallel resolution process when they no longer find a solution.
Only complete models can inform the portfolio that they have proven the full exploration of the search space.org.chocosolver.util.tools.PreProcessing
class, and a first preprocessing rule: equalities detectionInDomainMedian
when domain size is evensolver.verboseSolving()
MultiArmedBandit
strategy sequencerSee milestone 4.10.6
Full Changelog: https://github.com/chocoteam/choco-solver/compare/4.10.5...v4.10.6
IN
arithmetic int expression.Settings.enableACOnTernarySum()
removedSettings.setEnableACOnTernarySum(boolean)
removedSee milestone 4.10.5
Full Changelog: https://github.com/chocoteam/choco-solver/compare/4.10.4...v4.10.5