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