Gecode version 4.1.0 released
Gecode version 4.1.0 was released some weeks ago today. From the Changelog:
Changes in Version 4.1.0 (2013-06-132013-07-03)
This release adds a really useful feature and the required infrastructure to Gist (it now can show information on the alternatives in a search tree), has some new features, and fixes quite a number of bugs (some of which are quite serious, in particular for: LDSB, restart-based search, and FlatZinc).
- Kernel
- Additions
- Branchers now support a print() member function. (major)
- Both AFC and Activity can be changed by a set() function. (minor)
- Search engines
- Bug fixes
- Fixed a bug in restart-based search, which would crash if the problem is failed at the root or only had a single solution during best-solution search. (major, thanks to Chris Mears, Roberto Castaņeda Lozano)
- Finite domain integers
- Additions
- Integer and Boolean branchings now take an optional argument for a user-defined print function. See MPG for details. (major)
- Added if-then-else constraint (called ite) for integer variables. (minor)
- Other changes
- Added classes IntMinimizeSpace and IntMaximizeSpace for cost-based optimization with an integer cost variable. While the classes MinimizeSpace and MaximizeSpace are still available, there use is deprecated and a later release might remove them. (minor)
- Bug fixes
- Fixed crash due to combination of LDSB and Activity. (major, thanks to Stefano Gualandi)
- The internal representation of integer variable domains could leak memory to the space. (major)
- Fixed binpacking crash when the b and s arrays are empty. (minor, thanks to David Rijsman)
- Finite integer sets
- Additions
- Set branchings now take an optional argument for a user-defined print function. See MPG for details. (major)
- Bug fixes
- Fixed crash due to combination of LDSB and Activity. (major, thanks to Stefano Gualandi)
- Floats
- Additions
- Float branchings now take an optional argument for a user-defined print function. See MPG for details. (major)
- Added classes FloatMinimizeSpace and FloatMaximizeSpace for cost-based optimization with a float cost variable. (minor, thanks to Pascal Francq)
- Bug fixes
- Fixed FLOAT_VAR_ACTIVITY_SIZE_MIN/MAX, which used to compute size/activity instead of activity/size. (minor)
- Random value selection for float branchings was not declared with the right types. (minor)
- Fixed missing propagation in reified rel-constraints. (minor, thanks to Duong Khanh Chuong)
- Minimal modeling support
- Bug fixes
- Boolean expressions could lead to a segfault when initialized with default constructor. (minor, thanks to Roberto Castaņeda Lozano)
- Script commandline driver
- Additions
- Added classes FloatMinimizeScript and FloatMaximizeScript for cost-based optimization with a float cost variable. (minor, thanks to Pascal Francq)
- Other changes
- Added classes IntMinimizeScript and IntMaximizeScript for cost-based optimization with an integer cost variable. While the classes MinimizeScript and MaximizeSpcript are still available, there use is deprecated and a later release might remove them. (minor)
- Example scripts
- Additions
- Added LDSB-based symmetry breaking to graph coloring example. (minor, thanks to Stefano Gualandi)
- Gist
- Additions
- Gist now can show information on the alternatives in a search tree, using the new menu options "Label branches" and "Label path". (major)
- Gecode/FlatZinc
- Additions
- The FlatZinc interpreter now supports float variables as objective functions. (major)
- Added {int,bool,set,float}_default_search annotations. These can be used on solve items to declare the default search strategy for the respective variable types. (minor)
- Added int2float constraint which was missing in the FlatZinc interpreter. (minor, thanks to Tias Guns)
- Bug fixes
- Fixed printing of float variables to be compatible with MiniZinc output. (minor, thanks to Peter Nightingale)
- Fixed a segmentation fault when using FlatZinc with float variables that have initializers. (minor, thanks to Peter Nightingale)
- Fixed the random search strategies to all use the same random number generator instead of different generators all initialised with the same seed (and therefore all producing the same sequences). (minor)
- General
- Other changes
- CMake build system tweaked for out-of-source-dir building. (minor, thanks to Cliff Yapp)