Gecode version 3.7.0 released
From Changes
Changes in Version 3.7.0 (2011-08-31)This release adds and improves quite a number of constraints (total lexicographic order for set variables, membership constraints for integer variables, counting constraints for integer variables using integer sets, range, roots, set element constraints for integer variables, number of values for integer variables). All of these constraints (and some more) are now also available in FlatZinc. Additionally, some fixes and improvements.
This release is an important milestone as Gecode now provides native implementations for all important constraints available in MiniZinc/FlatZinc.
The documentation of constraints in "Modeling and Programming with Gecode" now refers to the Global Constraint Catalog (for those constraints that are listed in the catalog).
- Kernel
- Additions
- View arrays can now also use region-allocated memory. (minor)
- Bug fixes
- Array slices can now be created from empty arrays. (minor, thanks to Max Ostrowski)
- Finite domain integers
- Additions
- Added normal and reified membership constraints for integer and Boolean variables. (major)
- The count constraints now also support comparison to integer sets in addition to integers and integer variables (which then implements among from the GCCAT). (major)
- Added nvalues constraint. (major)
- Bug fixes
- Added some additional propagation for the count constraints (now, for example, count(home, x, y, IRT_GQ, 1) also constrains y to only take values supported by x). (minor)
- The estimation of bounds on linear terms did not handle overflow correctly. (major)
- Finite integer sets
- Additions
- Added set relations SRT_LQ, SRT_LE, SRT_GQ, SRT_GR for total (lexicographic) order. (major)
- Added set element constraints with singleton integer variables as arguments. (minor)
- Bug fixes
- Fixed a memory leak in the set weights constraint, and use IntSharedArray instead of IntArgs as parameters for weights. (minor, thanks to Johannes Inführ)
- Minimal modeling support
- Additions
- Added a convenience function values that restricts the set of values taken by an array of integer variables to a fixed set, using the nvalues constraint. The channel constraints between IntVarArgs and a SetVar now also use nvalues to increase propagation. (minor)
- Added range and roots, which decompose into set element constraints. (minor)
- Range and value iterators
- Other changes
- Cached iterators such as n-ary union and intersection, minus, and cache (of course) are not any longer template classes but take template constructors and member functions. N-ary union and intersection iterators can now also be initialized incrementaly with iterators of different types. (minor)
- Example scripts
- Additions
- Added Dominating Queens puzzle. (minor)
- Gist
- Bug fixes
- Call solution inspectors also when exploring manually. (minor)
- Flush output to Gist console, so that output that is not ended by a newline is not lost. (minor)
- Gecode/FlatZinc
- Additions
- Added native support for among, nvalues, int_set_channel, member_bool, member_int, sum_pred, and the range and roots constraints. (major)
- Other changes
- The set_in and set_in_reif constraints now work for constant sets even when Gecode is compiled without support for set variables. (minor)
- Bug fixes
- Added missing primitives set_le, set_lt, set_ge, and set_gt. (major)
- General
- Bug fixes
- Install generated variable implementation headers instead of the shipped versions (fixes a problem when building Gecode in a separate directory). (minor, thanks to Gustavo Gutierrez)