Generated on Mon Aug 25 11:35:46 2008 for Gecode by doxygen 1.5.6

Changes in Version 1.3.0 (2006-09-19)

This release adds a compiler for finite set projectors and provides new infrastructure making it easier to add new variable domains. In addition, it contains recent bug fixes and minor improvements.

  • Kernel
    • Additions
      • Subscription to variables now features an additional and optional Boolean argument whether the propagator is to be processed. This allows dynamically creation of subscriptions during propagation. (major)
      • Variables can now be deallocated when the Space is deallocated (for example in case of failure). This is important in case a variable implementation needs to reference external resources. Deallocation can be switched on in the high-level description used for generating the variable implementation. (minor)
    • Bug fixes
      • Now commits can be interleaved with adding new constraints during batch recomputation. This also entails that commit does not raise an exception when applied to an already failed space (it is simply ignored). The bug could not be observed (unless you did some very fancy search engines yourself) and one could actually see it as an extension. (minor)
    • Performance improvements
      • Variable implementations are now generated from a high-level description (taking care of all aspects relating to modification events and propagation conditions). While simplifying the implementation of new variable domains considerably, this also can, in lucky cases, deliver a speed-up of 5%. (major)
      • Allocate subscriptions in separate memory area. Can speedup execution in some (but few) cases by up to 15-20%. (major)
  • Search engines
    • Additions
      • Branch-and-bound search now interleaves recomputation with adding bounding constraints. This can prune the search tree much earlier: instead of recomputing many nodes from the same copy node and then adding a constraint that fails all these nodes, it might be possible to already fail the copy node directly. In principle, the difference can be exponential, however for examples we tried the effect is minor. (major)
  • Finite domain integers
    • Other changes
      • Renamed lex constraint to rel (as it also supports equality and disequality). (minor)
    • Performance improvements
      • Make count constraints with integer number of equal occurrences more incremental using dynamic subscriptions (gives a 20-30% speedup). (minor)
    • Documentation fixes
      • Fixed documentation problem due to doxygen... (minor, bugzilla entry)
  • Finite integer sets
    • Additions
      • Compiler for finite set projectors. Given a specification of a finite set constraint as a projector set, it generates C++ code for the corresponding propagator. Together with the dynamic propagator for finite set projectors, this implements the backend of the technique described in the paper "Generating Propagators for Finite Set Constraints" (Tack, Schulte, Smolka; CP 2006.). (major)
  • Minimal modelling support
    • Additions
      • Added aliases lex, atleast, atmost, and exactly for the count constraint. (minor)
    • Bug fixes
      • Under certain conditions (posting in a failed space), the post function returned uninitialized variables. (minor, thanks to Rafael Meneses)
  • Example scripts
    • Additions
      • Added an example for solving Black Hole patience games. (minor)
  • General
    • Additions
      • Also pass options for linking standard libraries for MSVC. (minor, thanks to Jorge Marques Pelizzoni)
      • New configure switches: --enable-audit to include audit code, which may contain expensive checks of internal invariants or alternative, checked implementations of critical parts of Gecode. --enable-universal and --with-sdk, to support building universal binaries on Mac OS X. (minor)
    • Bug fixes
      • The pkg-config files now contain the correct path if you configured to the default prefix (i.e. /usr/local). (minor)