Changelog History
Page 1
-
v4.10.10 Changes
October 11, 2022Major 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
๐ Deprecated API (to be removed in next release):
Other closed issues and pull requests:
๐ See milestone 4.10.10
๐ Contributors to this release:
- Jean-Guillaume Fages (@jgFages)
- Charles Prud'homme (@cprudhom)
- Mehmet Hakan Satman (@jbytecode)
-
v4.10.9 Changes
August 22, 2022Major 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()
andgetPropagator(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)
- ๐ It is now possible to declare hints to help the search finding a first solution. See
-
v4.10.8 Changes
January 07, 2022Major 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 ### ๐ Deprecated API (to be removed in next release):
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)
- Propagation is now observable,
-
v4.10.7 Changes
October 11, 2021Major features:
- Simplify the way deltamonitors work. There is no need to
freeze
andunfreeze
them before callingforEach...
methods. But, a call toforEach...
consumes all values stored. - ๐ Fix a bug related to incremental propagators, views and missing events.
- STR2+ now deals with STAR tuples. Can be used when CT+ is not efficient (mainly due to very large domain size)
- Resetting cutoff strategies now possible
- ๐ Change restart behavior to reset cutoff on solutions (can be disabled though, calling
solver.setRestarts(..)
API). - Display occurrences of variable types and occurrences of propagator types
- ๐ Now
IntDomainBest
offers API to break ties (seeSearch.ValH.BLAST
for an example). - โ Add
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. - ๐ง Modification of the management of expressions in order to reduce the number of created variables (WIP).
- โ Add
IntVar.stream()
that streams a variable's values (in increasing order) - โ Add
Search.ValH.BMIN
andSearch.ValH.BLAST
- โ Add DIMACS CNF parser (
org.chocosolver.parser.mps.ChocoDIMACS
) - โ Add Logger (
solver.log()
) to trace from Model/Solver. - ๐ Change some default settings
- Revamp
Settings
, now is defined as a factory pattern + addSettings.dev()
andSettings.prod()
profiles. - Make half reification possible. Seed
c.implies(b)
orc.impliedBy(b)
wherec
is a Constraint andb
a BoolVar. - โก๏ธ Update MiniZinc constraints definition + flatzinc files (for testing).
- โก๏ธ Update
choco.msc
(for MiniZinc IDE) +./minizinc/README.md
- โ Add
Argmax
andArgmin
constraints - โ Add
IfThenElse
as a decomposed constraint - ๐ Improvement of
solver.findParetoFront()
๐ Deprecated API (to be removed in next release):
Other closed issues and pull requests:
๐ See milestone 4.10.7
๐ Contributors to this release:
- Dimitri Justeau-Allaire (@dimitri-justeau)
- Jean-Guillaume Fages (@jgFages)
- Charles Prud'homme (@cprudhom)
- Charles Vernerey (@chaver)
- Simplify the way deltamonitors work. There is no need to
-
v4.10.6 Changes
December 11, 2020Major features:
- โ Add new resolution helper in
Solver
, namelyfindOptimalSolutionWithBounds
. 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.- โ Add
org.chocosolver.util.tools.PreProcessing
class, and a first preprocessing rule: equalities detection - ๐ Upgrade ibex integration to support ibex-java v1.2.0. ๐ Fixes for issues #653 and #740.
- โ Add QuickXPlain algorithm to find the Minimum Conflicting Set (see issue #509)
- โก๏ธ Update XCSP3 parser.
- ๐ Fix
InDomainMedian
when domain size is even - โ Add new way to watch solving:
solver.verboseSolving()
- Deal with annotations for some Flatzinc constraints (allDifferent and inverse)
- โ Add
MultiArmedBandit
strategy sequencer
๐ Deprecated API (to be removed in next release):
Other closed issues and pull requests:
๐ See milestone 4.10.6
๐ Contributors to this release:
- Charles Prud'homme (@cprudhom)
- Joรฃo Pedro Schmitt (@schmittjoaopedro)
- โ Add new resolution helper in
-
v4.10.5 Changes
October 02, 20204.10.5 - 02 Oct 2020
Major features:
- โ add
IN
arithmetic int expression.
๐ Deprecated API (to be removed in next release):
- ๐
Settings.enableACOnTernarySum()
removed - ๐
Settings.setEnableACOnTernarySum(boolean)
removed
Other closed issues and pull requests:
๐ See milestone 4.10.5
๐ Contributors to this release:
- Guillaume Le Louรซt (glelouet)
- Charles Prud'homme (cprudhom)
- Joรฃo Pedro Schmitt (schmittjoaopedro)
- โ add
-
v4.10.4 Changes
September 08, 20204.10.4 - 08 Sep 2020
Major features:
- ๐ Change search strategies in ParallelPortfolio
- ๐ Make "CT+" available to binary table constraint
- ๐ Update Dockerfile, now automatically released in hub.docker.com
- Migrate to ANTLR 4.8-1
- ๐ Support nested
seq_search
in FlatZinc file - โ Add missing operations in
model.unpost(c)
- โ Add new constraint, named
conditional
, that posts constraints on condition - ๐ Merge
cutoffseq
insolver
- ๐ Merge
pf4cs
inparsers
- โ Remove
geost
fromparsers
๐ Deprecated API (to be removed in next release):
Other closed issues and pull requests:
#692, #698, #700, #702, #703, #704, #705
๐ Contributors to this release
- Dimitri Justeau-Allaire (dimitri-justeau)
- Joรฃo Pedro Schmitt (schmittjoaopedro)
- Charles Prud'homme (cprudhom)
-
v4.10.3 Changes
July 03, 2020Multi-modules and JPMS-ready.
Major features:
- ๐ Move
cutoffseq
,choco-sat
,choco-solver
,pf4cs
,choco-parsers
andsamples
projects into a (maven) multi-modules project - JPMS-ready
Choco-solver can now be run with either JDK 8 or JDK 9+.
โ Additions
- โ Add Conflict History Search ("Conflict history based search for constraint satisfaction problem." Habetand Terrioux,SAC 19 (#676)
- โ Add dom/wdeg with refinement ("Refining Constraint Weighting." Wattez et al. ICTAI 2019.)
- 0๏ธโฃ Default AC algorithm for
AllDifferent
is now from IJCAI-18 "A Fast Algorithm for Generalized Arc Consistency of the Alldifferent Constraint", Zhang et al. (#644) - โ Add a pure java alternative to Ibex (#666)
- LNS can now be defined with a solution as bootstrap.
- โ Add simplify API for current Solver operations (#659)
- Simplify code for the nValues constraint (using a watching/witnessing reasoning) (#674)
- Replace former Bin Packing propagators by Paul Shaw propagator (#671)
- ๐ Improving PropDiffN performance (#663)
- โ Add nogood stealing for
ParallelPortfolio
(#669) - โ Adding of new constructors for Task objects (#662)
Removals
- โ Remove JSON writer/parser (which was actually partially supported and not maintained) (#664)
๐ Deprecated API (to be removed in next release):
Task(IntVar s, IntVar d, IntVar e, boolean declareMonitor)
AbstractProblem.readArgs(String... args)
Other closed issues and pull requests:
#617, #633, #637, #639, #645, #646, #647, #648, #658, #665, #667, #678, #682, #686, #689, #691
- ๐ Move
-
v4.10.3.1 Changes
February 28, 20202020-02-28
-
v4.10.3.0 Changes
February 28, 20202020-02-28