[gecode-users] Decomposition during search

Guido Tack tack at ps.uni-sb.de
Wed Feb 11 03:56:41 CET 2009


Malcolm Ryan wrote:

> Did the experimental Decomposition during search code make it into the
> 2.2.0 release of Gecode? I would like to take advantage of it on my
> current constraint problem. If it is there, is there any description
> of how it works?

Sorry, DDS was planned to be included in 3.0, but it won't make it, as  
the implementation relied on reflection, which won't be in 3.0.  The  
problem is that the decomposition analysis has to look at the  
constraint graph, and so far reflection was the only way to implement  
that (and not a very efficient way after all).

We have several other analyses that we hope to integrate in a future  
version of Gecode, but we first have to come up with a simple and  
efficient interface to the constraint graph.

> Would it work with a custom Branching? I'd like to still be able to
> control the order variables in each sub-problem are assigned and the
> values they are given.

Yes, in principle it will work with a custom branching, as long as it  
is a ViewValBranching.  DDS was actually implemented as a wrapper  
branching around a ViewValBranching.

> Is there any simple way to measure the 'decomposability' of my
> problem? I have an intuition that my problem will split into many
> small independent sub-problems as search proceeds, but it is too large
> and complex to check this by hand.

You could check out revision 8076 of the trunk.  That revision should  
have a working version of DDS (though it's not fully tested).  You can  
take the function connectedComponents from gecode/dds/decomposing- 
branching.hpp to analyse your problem, e.g. every time your copy  
function is called.

Cheers,
	Guido





More information about the gecode-users mailing list