Choco v4.10.9 Release Notes

Release Date: 2022-08-22 // over 1 year ago
  • Major 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 of Solution randomly sampled.
    • โž• Add increasing and decreasing 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() 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

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