[gecode-users] How to stop a branching?
Martin Mann
mmann at informatik.uni-freiburg.de
Fri May 29 15:01:43 CEST 2009
mhhh.. what a pitty.. but yes, there might be problems with recomputation..
Some helper variable e.g. posted within the incremental posting might
help but I doubt that anything gets faster by that.
Nevertheless, thanks a lot for the fast reply!
Martin
Christian Schulte schrieb:
> Right now, you can't stop branching. While just having an operation to do
> that is easy, but I do not see yet how one would get that to work with
> recomputation.
>
> Did you see that you can actually post branching incrementally, maybe that
> could help. Check "Executing code between branching" in MwG. You could
> control whether a branching is posted or not by an additional variable. Just
> an idea, don't know whether that would help.
>
> Christian
>
>
> -----Original Message-----
> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
> Of Martin Mann
> Sent: Friday, May 29, 2009 2:04 PM
> To: gecode user list
> Subject: [gecode-users] How to stop a branching?
>
> Hi,
>
> I would like to know, if it is possible to stop a branching (when
> multiple ones are present). Thus, to ignore all remaining branches for
> this specific one.
>
> Maybe an example to make my question clear.
>
> I have two sets of variables X_1, X_2 linked via several constraints.
> Within my Space I post two brachning B_1(X_1) and B_2(X_2) such that
> first all variables of X_1 are assigned before B_2 is considered.
>
> My final goal is to enumerate solutions with different X_1 assignments!
>
> My current solution (was implemented for Gecode 1.3.* and I am going to
> reimplement in 3.*) is to formulate a COP instead of a CSP and to
> implement the *constrain* function and to post a constraint that ensures
> that the next solution is at least in one X_1 assignment different from
> the current solution.
>
> Thus, I get a new constraint per solution ... and I dont like that! ;)
>
> But when looking at the problem, it would be sufficient to stop the
> branching on X_2! I dont need to post new constraints but to cancel the
> remaining branching of B_2 on X_2. This will lead to a backtracking in
> B_1 and therefore ensures that the next solution differs in the X_1
> assignment in at least one solution...
>
> This seems to be much more efficient to me. Btw. I would end up with a
> CSP instead of this strange COP hack.
>
> So my question: Is it possible to stop the remaining branching on B_2
> out of the (Gecode 3.*) box? Or do I have to implement/subclass my own
> branching?
>
> Thanks for your help,
>
> Martin
>
>
More information about the gecode-users
mailing list