JaCoP v4.3 Release Notes

    1. Implementation of constraints ArgMin and ArgMax as well connection to flatzinc constraints arg_min_int and arg_max_int.

    2. Correcting implementation of Diff2 and Disjoint. Currently Diff2 implements non-strict version of diffn constraint (minizinc constraint diffn_nonstrict) that makes it possible to pack zero-width rectangles anywhere. Disjoint implements a strict version of diffn constraint (minizinc diffn constraint). It requires that zero-width rectangles does not overlap with any other rectangle.

    3. Implementation of primitive constraint BoolClause implementing flatzinc constraint bool_clause.

    ๐Ÿ“œ 4. Sets of integer with bounds 1..0 are treated by flatzinc parser as empty sets. This implements a way minizinc 2.0 represents empty sets.

    ๐Ÿ— 5. Adding int_pow build-in predicate to flatzinc interpreter.

    1. LexOrder global constraints accepts vectors of different sizes.

    ๐ŸŽ 7. Performance improvement for SumWeightDom.

    ๐ŸŽ 8. Performance improvement for ElementInteger and two new constraints ElementIntegerFast and ElementVariableFast that implement a straightforward pruning method.

    1. New primitive constraints LinearInt and SumInt that implement pruning methods from paper "Bounds Consistency Techniques for Long Linear Constraints" by Warwick Harvey and Joachim Schimpf.

    ๐ŸŽ 10. Fixing performance bug in IntervalBasedBacktrackableManager. Unnecessary call to checkRemoveInvariant outside assert statement.

    ๐Ÿ“œ 11. Adding option --bound (-b) to flatzinc parser that enforces use of bounds consistency for constraints (instead of domain, even for constraints annotated with "::domain").

    1. Adding SAT solver to JaCoP and connecting it to flatzinc interpreter. The use of SAT solver in flatzinc is controlled by option -sat. If the option is specified the SAT solver is used for all bool_* constraints, otherwise CP constraints are used.

    ๐ŸŽ 13. Improving performance of Max and Min constraints. Specially for large lists of varibales.

    ๐Ÿ›  14. Bug fixes.