Gecode version 3.3.0 released
Gecode version 3.3.0 has been released.
From the Changelog:
I'm really looking forward to the forthcoming document Modeling and Programming with Gecode mentioned above. Also, I'm doing some experiments with the new search annotations using AFC (Accumulated Failure Count, a.k.a. weighted degree of a variable) for Gecode/fz (the FlatZinc solver):Changes in Version 3.3.0 (2010-03-15)
This release provides some fixes, some performance improvements for domain propagators, and quite some clean ups how propagators and advisors report their status to the kernel. Many of these clean ups are essential to make it easier to program propagators and branchers with Gecode.
- Kernel
- Additions
- Advisors now can force its propagator to be rescheduled, including recomputation of its cost used for scheduling (normally, a propagator is only rescheduled if its modification event delta changes). An advisor can signal forceful rescheduling by returning ES_NOFIX_FORCE or returning the return value of ES_NOFIX_FORCE_DISPOSE. Read the forthcoming "Modeling and Programming with Gecode" for details. (minor)
- Other changes
- The failure macros for posting GECODE_ES_FAIL and GECODE_ME_FAIL now only accept a single argument and assume that "home" actually refers to the home space. Read the forthcoming "Modeling and Programming with Gecode" for details. (minor)
- The functions ES_FIX_PARTIAL, ES_NOFIX_PARTIAL, ES_FIX_DISPOSE, and ES_NOFIX_DISPOSE are now member of Space. Read the forthcoming "Modeling and Programming with Gecode" for details. (minor)
- The function ES_SUBSUMED now is a member of Space and accepts a propagator as its single argument. The variant with a size as the second argument is available as ES_SUBSUMED_DISPOSED but use is highly discouraged. Read the forthcoming "Modeling and Programming with Gecode" for details. (minor)
- The functions ES_SUBSUMED_FIX and ES_SUBSUMED_NOFIX for advisors have been renamed to ES_FIX_DISPOSE and ES_NOFIX_DISPOSE. Read the forthcoming "Modeling and Programming with Gecode" for details. (minor)
- Bug fixes
- ViewValBrancher with random value selection did not produce a random sequence of values. (minor)
- Finite domain integers
- Additions
- Integer sets (IntSet) now have a in member function for testing whether an integer is included. (minor)
- Other changes
- Patterns for reified propagators have been moved to the
Gecode::Int
namespace. (minor)- Performance improvements
- Considerably improved performance and memory consumption of the DFA-based extensional constraint (regular). (major)
- Finite integer sets
- Other changes
- Patterns for set propagators have been moved to the
Gecode::Set
namespace. (minor)- Minimal modeling support
- Additions
- Linear expressions can freely mix integer and Boolean variables and support construction from variable arrays via a sum function. (minor)
- Removals
- Removed special cases for posting linear and Boolean expressions consisting of a single variable only (was highly ambigious). (minor)
- Support algorithms and datastructures
- Performance improvements
- Changed to single, really efficient bitset implementation used allover the system. (major)
- Gist
- Bug fixes
- Avoid inter-thread call to QWidget::update, which apparently causes a slight memory leak (and warning messages on stderr) on Mac OS. (minor)
- Gecode/FlatZinc
- Other changes
- The FlatZinc interpreter can now be extended by plugins that implement custom search strategies. The plugins are implemented as dynamically loaded libraries using the Qt plugin mechanism. An example can be found in the directory gecode/flatzinc/exampleplugin. (minor)
- The index of the variable used for optimization is now available in the FlatZincSpace class. (minor)
- Added command line option -print, which controls whether all solutions are printed or only the last one that is found, and -search, to choose between branch-and-bound and restart optimization. (minor)
- The FlatZinc library can now parse a FlatZinc model into any subclass of FlatZincSpace, so that custom extensions can be built. Annotations on the solve item can now be accessed from the returned FlatZincSpace, so that additional search strategies can be implemented. (minor)
- Bug fixes
- The FlatZinc interpreter ignored the -c-d and -a-d command line switches when used with Gist. (minor)
- afc_min
- size_afc_min
- afc_max
- size_afc_max