An open-source Java library for Constraint Programming
seq_search
in FlatZinc filemodel.unpost(c)
conditional
, that posts constraints on conditioncutoffseq
in solver
pf4cs
in parsers
geost
from parsers
#692, #698, #700, #702, #703, #704, #705
Multi-modules and JPMS-ready.
cutoffseq
, choco-sat
, choco-solver
, pf4cs
, choco-parsers
and samples
projects into a (maven) multi-modules projectChoco-solver can now be run with either JDK 8 or JDK 9+.
AllDifferent
is now from IJCAI-18 "A Fast Algorithm for Generalized Arc Consistency of the Alldifferent Constraint", Zhang et al. (#644)ParallelPortfolio
(#669)Task(IntVar s, IntVar d, IntVar e, boolean declareMonitor)
AbstractProblem.readArgs(String... args)
#617, #633, #637, #639, #645, #646, #647, #648, #658, #665, #667, #678, #682, #686, #689, #691
IntDomainMiddle
now allows an external definition of what middle is, thanks to ToDoubleFunction<IntVar>
solver.printDistance(...)
and solver.printDifferenceMatrix(...)
)#538, #600, #611, #612, #613, #614, #615, #617, #619, #627, #630
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.
solver.showDashboard()
)Settings.load
on missing propertyCumulative
simplified APImodel.intEqView(x,c)
, model.intNeView(x,c)
, model.intLeView(x,c)
and model.intGeView(x,c)
AbstractStrategy.remove()
method to remove a declared strategy and its dependenciesSearch
IDecompositionFactory
IntVar#isInstantiatedTo(int)
INeighbor
interface is deprecated and replaced by Neighbor
abstract classINeighborFactory#explanationBased(IntVar...)
is deprecated, no replacement.ILearnFactory#setCBJLearning(boolean,boolean)
and ILearnFactory#setDBTLearning(boolean,boolean)
are deprecated, see ILearnFactory#setLearningSignedClauses()
instead#604, #605, #606
Minor release
Settings
from a property file.cumulative
when only starts are variablemodel.cumulativeTimeDecomp(...)
solver.constraintNetworkToGephi(file)
ParallelPortfolio.streamSolutions
(#579)#596, #600, #601, #602
Update DefaultSettings
with right version
JAR file names have changed:
This should intends to clarify the selection for new comers.
Add a PayPal button for donations.
Move to Ibex-2.6.5.
Settings
: no default method anymore, add setters. A concrete class DefaultSettings
provides
the default behavior.IViewFactory.intScaleView
now manages negative constants,IViewFactory.intAffineView
is now availableBoolVar
now handles modifications in different way (may impact performances)ift(e1,e2)
Model.set(Settings)
is deprecated. Now settings are declared in the Model
constructor.Settings.debugPropagation()
is deprecated. There is no alternative.#527, #564, #569, #576, #578, #581, #586
Move to Ibex-2.6.3.
Search.realVarSearch(...)
offers possibility to define minimal range size, known as epsilon
Search.ibexSolving(model)
let Ibex iterates over solutions once all integer variables are instantiated
solver.showDashboard()
IntEqRealConstraint
will be removed in next release, Ibex managed this concept (int to real)Model.getIbex()
should not be used. A IbexHandler
manages Ibex instances (one per model).#558, #561, #565, #566, #568, #570
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 a Model
.
Settings.checkDeclaredConstraints()
BiReExpression
PropNogoods
when dealing with negative values (impact solver..setNoGoodRecordingFromRestarts()
and solver..setNoGoodRecordingFromSolutions(...)
)model.sum(...)
and model.scalar(...)
when dealing with arity greater than 100 and all operators except =
model.table(...)
with binary scope and universal value#531 ,#545, #546.