Yes, this is what I'm currently trying. Malcolm
On 28/04/2008, at 3:47 PM, Mikael Zayenz Lagerkvist wrote: > On Fri, Apr 25, 2008 at 5:28 AM, Malcolm Ryan <[EMAIL PROTECTED] > > wrote: >> In order to save memory, I've been trying to turn my planning code >> into a two stage in which the first stage only creates and constrains >> a certain critical subset of variables. When all the first-stage >> variables have been assigned, additional variables are created and a >> second stage of search occurs. The two stages are not completely >> independent however, and there may be failures in the second stage >> which require backtracking into the first. This should save memeory, >> since the second-stage variables don't have to be carried around >> during the first-stage search. >> >> I was hoping that I could do this simply by adding new variables and >> constraints in the copy constructor at the appropriate moment, but it >> seems that this does not work. > </snip> >> Is there any other way to do a two-stage search like this? > > While the copy-constructor is not the right place to add constraints > and variables, there is a more fundamental problem with your scheme. > When all the variables are assigned, all branchings will be finished, > and thus the Space will be solved (status returns SS_SOLVED). The > search will therefore stop the search and return the current solution. > > You could program you addition of variables and constraints as a > branching, but since you want to do this when all the original > variables are assigned, then I would suggest the following scheme. > FirstStageSpace first = new FirstStageSpace(); > DFSIterator<FirstStageSpace> outerDFS = > new DFSIterator<FirstStageSpace>(first); > while (outerDFS.hasNext()) { > FirstStageSpace firstsolution = outerDFS.next(); > SecondStageSpace second = > new SecondStageSpace(firstsolution); > DFSIterator<FirstStageSpace> innerDFS = > new DFSIterator<SecondStageSpace>(second); > if (innerDFS.hasNext()) { > System.out.println(innerDFS.next()); break; > } > } > I've not tested the above code, but I think the idea should be clear. > > Cheers, > Mikael > > -- > Mikael Zayenz Lagerkvist, http://www.ict.kth.se/~zayenz/ _______________________________________________ Gecode users mailing list [EMAIL PROTECTED] https://www.gecode.org/mailman/listinfo/gecode-users