[gecode-users] Gecode 3.0.0: What we will do. What do you want?

Christian Schulte cschulte at kth.se
Wed Jun 25 18:07:15 CEST 2008


Dear all,

as mentioned, we are planning for Gecode 3.0.0. Before going into detail, I
would like to share with you the goals we wanted to achieve with the
previous major releases and the goals we want to achieve with 3.0 (and even
4.0).

Gecode 1.0.0 was the first version where we believed that we had arrived at
something that was reasonably complete and robust to be useful to other
users but us. The focus has been in particular on getting the basic
architecture sufficiently mature.

Gecode 2.0.0 achieved a complete set of abstractions needed to do efficient
propagation including incremental propagation. We are quite confident that
the level of completeness and maturity we reached for propagation will be
sufficient for some time to come. Subsequent releases fixed (and will fix)
lots of not-so-easy-to-catch bugs as we have been stepping up Gecode's
quality.

Gecode 3.0.0 will shift the focus away from propagation. The main focus will
be documentation and search.

In more detail, Gecode 3.0.0 will feature:
 - a complete rework of branching, including randomization and support for
tie-breaking (already finished)
 - abstractions for cost-based optimization (just define a cost function,
done)
 - a first shot at parallel search (working really great, but integration
and legal aspects are not yet resolved)
 - the first stable version of Gist as an interactive search tool (almost
done, we have made amazing progress and have 
   attained a level of efficiency and scalability we thought impossible)
 - apart from that the usual small stuff, much of it devoted to make Gecode
easier to explain
 - we might re-optimize the crucial abstractions for 64 bit rather than for
32 bit instead (should we? should we optimize both?)

The other big thing will be to deliver documentation with Gecode apart from
the extensive reference documentation it already comes with. The following
topics (as of today's understanding) will be covered:
 (a) Modeling with Gecode: How to do CP models with Gecode. This will be
concerned with Gecode-specific aspects
     and not be an introduction to CP.
 (b) Programming Propagators: That will explain the basic issues, the
underlying architecture, but also all the programming
     techniques we developed so far.
 (c) Programming Branchings: Rather simple.
 (d) Programming Exploration: how to construct own search engines with a
focus on how recomputation works in detail.
 (e) Programming Variables: how to provide new variable implementations.
This is now really easy.

The biggest piece will be (b). Together with Gecode 3.0.0 we will definitely
release (a) and maybe a short draft of (b). (d) will not come with 3.0.0,
(c) and (e) might come. We have not yet decided whether anything but (a)
will be released as a freely available document. Depending on our academic
publications anything but (a) might be delayed.

The later versions of Gecode 3.* will gradually improve the search
capabilities, including a better LDS, abstractions for large neighborhood
search, automatic configuration of recomputation, etc...

There will be a Gecode 2.3.0 release that will change the way memory
management is done. This version will also be submitted to the MiniZinc
Challenge 2008. It might (to make our live easier) already contain parts
mentioned above as parts of 3.0.0.

The long term vision is that Gecode 4.0.0 will be something that is fully
backed up with high-quality documentation, has very advanced parallel search
facilities, and might have unique inference modules (elimination of
redundant propagators, automatic choice of consistency level, SAC, ...).

What I did not mention is that we will add new propagators (and new variable
types, thanks to Filip) if we find the time and we get the requests. But we
do hope that we will see contributions here in the hopefully not-so-far
future from our users.

Last thing, time:
	- Gecode 2.3.0:	end of summer
	- Gecode 3.0.0:	late autumn
	- Gecode 4.0.0:	late autumn 2009

Okay, that was long and boring. Sorry!

Now: What do you want? How can you help us? Are we missing something really
important? Is there something fundamentally wrong?

All the best
Christian on behalf of the Gecode team

--
Christian Schulte, www.ict.kth.se/~cschulte/







More information about the gecode-users mailing list