Choco Solver Versions Save

An open-source Java library for Constraint Programming

4.10.4

3 years ago

4.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 in solver
  • Merge pf4cs in parsers
  • Remove geost from parsers

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

4.10.3

3 years ago

Multi-modules and JPMS-ready.

Major features:

  • Move cutoffseq, choco-sat, choco-solver, pf4cs, choco-parsers and samples 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.)
  • 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

4.10.2

4 years ago

Major 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

4.10.1

4 years ago

Major features:

  • LNS on other variables (e.g. SetVarLNS)
  • Continuous integration fixed
  • IntDomainMiddle now allows an external definition of what middle is, thanks to ToDoubleFunction<IntVar>
  • Add specific propagators for modulo
  • Add views of differences between solutions (see solver.printDistance(...) and solver.printDifferenceMatrix(...))

Deprecated API (to be removed in next release):

Closed issues and pull requests:

#538, #600, #611, #612, #613, #614, #615, #617, #619, #627, #630

4.10.0

5 years ago

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) and model.intGeView(x,c)
  • Detect when the same views is created twice on the same pair <variable, value?>
  • 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 by Neighbor abstract class
  • INeighborFactory#explanationBased(IntVar...) is deprecated, no replacement.
  • ILearnFactory#setCBJLearning(boolean,boolean) and ILearnFactory#setDBTLearning(boolean,boolean) are deprecated, see ILearnFactory#setLearningSignedClauses() instead

Closed issues and pull requests:

#604, #605, #606

4.0.9

5 years ago

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

4.0.8

5 years ago

Update DefaultSettings with right version

4.0.7

5 years ago

JAR 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:

  • Revamp 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 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 the Model constructor.
  • Settings.debugPropagation() is deprecated. There is no alternative.

Closed issues and pull requests:

#527, #564, #569, #576, #578, #581, #586

4.0.6

6 years ago

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 as epsilon
  • 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. A IbexHandler manages Ibex instances (one per model).

Closed issues and pull requests:

#558, #561, #565, #566, #568, #570

4.0.5

6 years ago

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.

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 (impact solver..setNoGoodRecordingFromRestarts() and solver..setNoGoodRecordingFromSolutions(...))
  • fix bug in model.sum(...) and model.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.