Changelog History
Page 2
-
v4.10.2 Changes
October 14, 2019Major features:
- ๐ fix issues relative to propagation
- ๐ change constraints' status checking
- ๐ change stop conditions in
ExplanationForSignedClause
- โ add stable module name
Closed issues and pull requests:
#618
-
v4.10.1 Changes
June 26, 2019Major features:
- LNS on other variables (e.g. SetVarLNS)
- ๐ Continuous integration fixed
IntDomainMiddle
now allows an external definition of what middle is, thanks toToDoubleFunction<IntVar>
๐ Deprecated API (to be removed in next release):
Closed issues and pull requests:
#538, #600, #611, #612, #613, #614, #615, #617, #619, #627, #630
-
v4.10.0 Changes
December 12, 2018๐ This release comes with several major modifications. The most important one is related to explanations. The previous framework is replaced by a new one based on "A Proof-Producing CSP Solver", M.Vesler and O.Strichman, AAI'10.
๐ See notebooks for an example of use.
Major features:
- โก๏ธ Update statistic dashboard (see
solver.showDashboard()
) - ๐ Fix
Settings.load
on missing property - ๐ Fix issue in
Cumulative
simplified API - โ Add additional views
model.intEqView(x,c)
,model.intNeView(x,c)
,model.intLeView(x,c)
andmodel.intGeView(x,c)
- Detect when the same views is created twice on the same pair
- Revamp the way LNS' neighbor is declared (simplication)
- โ Add
AbstractStrategy.remove()
method to remove a declared strategy and its dependencies - โ Add new strategies to
Search
- โ Add new decomposition to
IDecompositionFactory
- ๐ Improve initialization of CT+ and CT*
- ๐ Improve
IntVar#isInstantiatedTo(int)
๐ Deprecated API (to be removed in next release):
- ๐
INeighbor
interface is deprecated and replaced byNeighbor
abstract class - ๐
INeighborFactory#explanationBased(IntVar...)
is deprecated, no replacement. - ๐
ILearnFactory#setCBJLearning(boolean,boolean)
andILearnFactory#setDBTLearning(boolean,boolean)
are deprecated, seeILearnFactory#setLearningSignedClauses()
instead
Closed issues and pull requests:
#604, #605, #606
- โก๏ธ Update statistic dashboard (see
-
v4.0.9 Changes
October 30, 2018๐ Minor release
Major features:
- Offer possibility to store and load
Settings
from a property file. - โ Add API for
cumulative
when only starts are variable - โ Add decomposition of cumulative:
model.cumulativeTimeDecomp(...)
- Logical expression XOR manages more than 2 variables
- โ Add new API to IOutputFactory (to Gephi and to Graphviz)
- โ Add constraint network output (to gexf format), see
solver.constraintNetworkToGephi(file)
- โ add
ParallelPortfolio.streamSolutions
(#579)
๐ Deprecated API (to be removed in next release):
Closed issues and pull requests:
#596, #600, #601, #602
- Offer possibility to store and load
-
v4.0.8 Changes
July 23, 2018โก๏ธ Update DefaultSettings with right version
-
v4.0.7 Changes
July 19, 2018JAR file names have changed:
- the suffix 'with-dependencies' disappears,
- the suffix '-no-dep' (for no dependencies) appears.
This should intends to clarify the selection for new comers.
โ Add a PayPal button for donations.
๐ Move to Ibex-2.6.5.
Major features:
- 0๏ธโฃ Revamp
Settings
: no default method anymore, add setters. A concrete classDefaultSettings
provides 0๏ธโฃ the default behavior. IViewFactory.intScaleView
now manages negative constants,IViewFactory.intAffineView
is now available- โ add new constraint for mixed linear equation (over real/int variables and double/int coefficients)
- Dow/WDeg now manages variables in a bipartite set (instantiated variables are swaped)
- Assert that a propagator that is passive is not allowed to filter anymore
- ๐ป An exception is thrown when a sum (or scalar) constraint is candidate for integer over/underflow (an alternative should be provided later)
- ๐
BoolVar
now handles modifications in different way (may impact performances) - ๐ Propagation engine has changed: no alternative to seven-queue one anymore + simplification of code (may impact performances)
- โ add new relation expression
ift(e1,e2)
๐ Deprecated API (to be removed in next release):
- ๐
Model.set(Settings)
is deprecated. Now settings are declared in theModel
constructor. - ๐
Settings.debugPropagation()
is deprecated. There is no alternative.
Closed issues and pull requests:
#527, #564, #569, #576, #578, #581, #586
-
v4.0.6 Changes
November 23, 2017๐ Move to Ibex-2.6.3.
Major features:
- ๐ Ibex instance is no longer static, that offers better stability and reduce memory consumption when adding/removing functions. Reification no longer managed by Choco but delegated to Ibex.
Search.realVarSearch(...)
offers possibility to define minimal range size, known asepsilon
Search.ibexSolving(model)
let Ibex iterates over solutions once all integer variables are instantiated- โ add detection of min/max sub-cases
- โ add simple dashboard in Swing to show resolution statistics, see
solver.showDashboard()
๐ Deprecated API (to be removed in next release):
- ๐
IntEqRealConstraint
will be removed in next release, Ibex managed this concept (int to real) Model.getIbex()
should not be used. AIbexHandler
manages Ibex instances (one per model).
Closed issues and pull requests:
#558, #561, #565, #566, #568, #570
-
v4.0.5 Changes
September 28, 2017๐ The current release was submitted to MiniZinc Challenge 2017 and at XCSP3 Competition 2017 and won medals.
๐ choco-parsers provides utility to export a
Model
to JSON format and or import JSON data into aModel
.Major features:
- Compact-Table now deals with short tuples (#531)
- ๐ Checking if a created constraint is free (neither posted or reified) is now possible with
Settings.checkDeclaredConstraints()
- ๐ Improvements on BoolVarImpl and BoolNotView.
- โ Remove code deprecated in last release.
- ๐ Fix error in Views.
- โ Add scalar detection in
BiReExpression
- ๐ fix errors in Impact-based Search
- โก๏ธ update Search.intVarSearch() + Search.defaultSearch(Model)
- โก๏ธ update ParallelPortfolio default strategies
๐ Deprecated API (to be removed in next release):
Closed issues and pull requests:
- ๐ fix bug in
PropNogoods
when dealing with negative values (impactsolver..setNoGoodRecordingFromRestarts()
andsolver..setNoGoodRecordingFromSolutions(...)
) - ๐ fix bug in
model.sum(...)
andmodel.scalar(...)
when dealing with arity greater than 100 and all operators except=
- ๐ fix bug in
model.table(...)
with binary scope and universal value - ๐ fix bug related to Ibex and GC.
#531 ,#545, #546.
-
v4.0.4 Changes
April 28, 2017Major features:
- โ add logical operator to expression (#520). Now it is possible, f-ex., to declare expression like:
x.eq(y.add(1)).or(x.eq(y).and(x.eq(1)))
- add new API toSolver
to print features in a single line - enable ignoring passivate propagators when iterating over propagators of a modified variable (false by default; see Settings)
Deprecated API (to be removed in next release):
IPropagationEngine.fails(c,v,m)
is replaced bySolver.throwsException(c,v,m)
(#524)IPropagationEngine.getContradictionException()
is replaced bySolver.getContradictionException()
(#524)MathUtils.bounds(values)
is replaced by a call toMathUtils.min(values)
andMathUtils.max(values)
Remove dead code:
- SparseSet
- IFeatures, Features, IAttribute and Attribute
Closed issues and pull requests:
#516, #517, #518, #519, #520, #521, #524.
- โ add logical operator to expression (#520). Now it is possible, f-ex., to declare expression like:
-
v4.0.3 Changes
March 31, 2017Major features:
arithm(IntVar,String,IntVar,String,int)
andarithm(IntVar,String,IntVar,String,IntVar)
manage '*' and '/'- โ add new APIs to
ArrayUtils
- ๐ fix error in
PropBoolMin
andPropBoolMax
๐ Deprecated API:
Closed issues and pull requests:
#500, #502, #507, #510, #512, #514, #515.