Well, you might be a able to cut off an entire subtree during recomputation: recomputation will not explore node by node but tries to fail higher up in the search tree (actually, for each copy on the path).
Christian -----Original Message----- From: users-boun...@gecode.org [mailto:users-boun...@gecode.org] On Behalf Of Martin Mann Sent: Friday, May 29, 2009 3:02 PM To: 'gecode user list' Subject: Re: [gecode-users] How to stop a branching? 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-boun...@gecode.org [mailto:users-boun...@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 > > _______________________________________________ Gecode users mailing list us...@gecode.org https://www.gecode.org/mailman/listinfo/gecode-users _______________________________________________ Gecode users mailing list us...@gecode.org https://www.gecode.org/mailman/listinfo/gecode-users