JaCoP v3.0 Release Notes

  • ๐Ÿš€ We have just released JaCoP 3.0 final. Since the previous release ๐Ÿ›  (RC2) we have fixed one rarely triggering bug in ElementInteger ๐Ÿ‘ constraint, as well as added code supporting generation of data for CP-viz framework. Here is the list of most important changes since ๐Ÿ”– version 2.4.

    1) The introduction of Network Flow constraint, which allows efficient modeling of problems with network flow structure. The constraint allows to specify minimum cost flow problem in terms of finite domain variables. It uses network simplex algorithm as an propagator for network-like structure. It is a very expressive constraint where arc flow and arc unit costs can be specified by variables.

    ๐Ÿ“ฆ 2) The introduction of set package forced changes in the design of core interfaces. There are IntVar and SetVar classes which inherit from Var class. This change allowed to refactor and improve set package so it is designed in cleaner and more efficient manner.

    3) The introduction of special domain representation SmallDenseDomain, which uses bits within a long primitive type to encode small domains of range not larger than 64.

    4) The introduction of Soft-alldifferent as well as Soft-GCC global constraints. The soft-alldifferent constraint implements Variable and Decomposition based violation metrics. The soft-gcc constraint implements value based violation metric. Both are decomposed constraints based on network flow constraint.

    โšก๏ธ 5) Examples have been updated by moving multiple solving functionality from main function to test function, so user can easily see what is the best model just by looking at main function. BIBD example has been added. Examples with Set variables have been updated to reflect the changes.

    ๐Ÿ›  6) A number of bug fixes and changes in flatzinc interface to better comply with minizinc 1.1. We have also added into minizinc predicates networkflow that uses newly introduced JaCoP Network Flow constraint.

    7) A number of minor API changes to improve intuitiveness of use (e.g. order of arguments in constructors).

    โšก๏ธ 8) The JaCoP guide has been updated to reflect the changes and additions to the newest version.