All Versions
28
Latest Version
Avg Release Cycle
101 days
Latest Release
561 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