[gecode-users] saving the way to one of the solution in a file

Guido Tack tack at ps.uni-sb.de
Mon Dec 4 09:07:29 CET 2006


Hi.

> I'm using gecode/J 1.0.1-1 and wonder what's the best way to save the
> position in the search tree in a file in order to be able to  
> compute the
> next solution later. Here's some details about what I want to do:
>
> * launch my program the first time :
> 	- find the first solution of a CSP
> 	- save the way to this solution in the search tree in a file
> 	- quit
>
> * relaunch my program with arguments to indicate I want the next
> solution :
> 	- load the state (go to the node)
> 	- find the next solution
> 	- save the state (way to this solution)
> 	- quit
>
>
> I haven't found how to do that in the documentation...

This is not possible with the search engines we provide, but quite  
easy to implement yourself. One slight complication is that you use  
Gecode/J. In Java, we just use an interface to the C++ search  
engines, so you don't have a Java implementation to start with.

If you know some C++, I would suggest you have a look at how search  
is implemented there. The most interesting files are gecode/search/ 
reco-stack.icc and gecode/search/dfs.icc. Basically, you have a stack  
that stores branching descriptions and (in some stack cells) copies  
of spaces. To save the state, you will just have to traverse the  
stack and save the number of the alternative that has to be explored  
next from each stack cell. To load the state, recreate the original  
problem, and then recreate the stack by recomputation. Note, however,  
that you cannot save the branching descriptions (they are completely  
abstract anyway), just save the number of the alternative at each point.

I hope this helps getting you started. If anything is not clear to  
you, just ask.

Cheers,
	Guido





More information about the gecode-users mailing list