control changes for gecode

This commit is contained in:
Vítor Santos Costa
2013-09-05 00:26:54 +01:00
parent 90c70459be
commit ef82f25594
3 changed files with 100 additions and 6 deletions

View File

@@ -70,6 +70,13 @@ namespace generic_gecode
virtual GenericSpace* next(void) { return engine.next(); }
};
struct GenericRestartDFS: GenericEngine
{
RBS<DFS,GenericSpace> engine;
GenericRestartDFS(GenericSpace* s,Search::Options& opt) : engine(s,opt) {}
virtual GenericSpace* next(void) { return engine.next(); }
};
struct GenericBAB: GenericEngine
{
BAB<GenericSpace> engine;
@@ -77,6 +84,13 @@ namespace generic_gecode
virtual GenericSpace* next(void) { return engine.next(); }
};
struct GenericRestartBAB: GenericEngine
{
RBS<BAB,GenericSpace> engine;
GenericRestartBAB(GenericSpace* s,Search::Options& opt) : engine(s,opt) {}
virtual GenericSpace* next(void) { return engine.next(); }
};
#ifdef OLD
struct GenericRestart: GenericEngine
{
@@ -270,11 +284,13 @@ namespace generic_gecode
{
freeze();
return (optim.what == Optimizing::OPT_NONE)
? static_cast<GenericEngine*>(new GenericDFS(this,opt))
: //(restart
// ? static_cast<GenericEngine*>(new GenericRestart(this,opt))
// :
static_cast<GenericEngine*>(new GenericBAB(this,opt));
? ( restart
? static_cast<GenericEngine*>(new GenericRestartDFS(this,opt))
: static_cast<GenericEngine*>(new GenericDFS(this,opt)) )
: (restart
? static_cast<GenericEngine*>(new GenericRestartBAB(this,opt))
:
static_cast<GenericEngine*>(new GenericBAB(this,opt)) );
}
int _new_ivar(IntVar& v)