All Versions
28
Latest Version
Avg Release Cycle
101 days
Latest Release
829 days ago

Changelog History
Page 1

  • v4.10.10 Changes

    October 11, 2022

    Major features:

    • ๐Ÿ›  Fix performance issue of ViewDeltaMonitor
    • ๐Ÿ›  Fix lack of filtering in STR2+ when domain is bounded
    • ๐Ÿ›  Fix issue relative to OR and AND in LogOp
    • โž• 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:
  • v4.10.9 Changes

    August 22, 2022

    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:
  • v4.10.8 Changes

    January 07, 2022

    Major features:

    • Propagation is now observable, solver.observePropagation(PropagationObserver). Consequently, it is now possible to profil the propagation by calling solver.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() and model.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:
  • v4.10.7 Changes

    October 11, 2021

    Major features:

    • Simplify the way deltamonitors work. There is no need to freeze and unfreeze them before calling forEach... methods. But, a call to forEach... 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 (see Search.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 and Search.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 + add Settings.dev() and Settings.prod() profiles.
    • Make half reification possible. Seed c.implies(b) or c.impliedBy(b) where c is a Constraint and b a BoolVar.
    • โšก๏ธ Update MiniZinc constraints definition + flatzinc files (for testing).
    • โšก๏ธ Update choco.msc (for MiniZinc IDE) + ./minizinc/README.md
    • โž• Add Argmax and Argmin 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:
  • v4.10.6 Changes

    December 11, 2020

    Major features:

    • โž• Add new resolution helper in Solver, namely findOptimalSolutionWithBounds. 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:
  • v4.10.5 Changes

    October 02, 2020

    4.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:
  • v4.10.4 Changes

    September 08, 2020

    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
  • v4.10.3 Changes

    July 03, 2020

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

  • v4.10.3.1 Changes

    February 28, 2020

    2020-02-28

  • v4.10.3.0 Changes

    February 28, 2020

    2020-02-28