[gecode-users] access to Space during branching?

Christian Schulte schulte at imit.kth.se
Fri Jun 2 16:16:29 CEST 2006


Hmm, you are absolutely right: also branch should take a space argument.
I'll do that right now on the trunk version.

There is no other way to obtain a space...

Christian

--
Christian Schulte, http://www.imit.kth.se/~schulte/ 

-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Martin Mann
Sent: Friday, June 02, 2006 3:28 PM
To: gecode user list
Subject: [gecode-users] access to Space during branching?


I know the weekend is near, but I ve got another question.

what exactly is done in this private Space function?
ist it possible to get some comments about that?

============================
   /*
    * Performing branching after propagation
    *
    */

   unsigned int
   Space::branchings(void) {
     while (b_fst != &a_actors) {
       unsigned int alt = b_fst->branch();
       if (alt > 0)
	return alt;
       Branching* b = b_fst;
       b_fst = static_cast<Branching*>(b->next());
       b->unlink();
       b->unlink_delete();
       delete b;
       mm.reuse(reinterpret_cast<MemoryManager::ReuseChunk*>(b));
     }
     return 0;
   }
=============================

the reason why i m diving so deep in the source code is that i try to 
implement my own branching class derived from ViewValBranching. this class
need the access to the space to branch not only to the variables.

the only way i see at the moment to do something like that is to use the 
calling space as parameter for the branching call...
like

unsigned int alt = b_fst->branch(this);

but therefor i ve got to understand the mechanisms done in branchings().. ;)


additionally .. if you see another possibility to get access to the home 
Space from a Branching derived class e.g. via the ViewArray etc. please 
let me know!

the only thing i need is access in the "branch(void)" function in a 
ViewValBranching derived class (e.g. MyBranching) to the calling 
"fatherspace" (a Space derived class.. e.g. MySpace). for simplification 
at the moment it is a preliminary that the calling space is an instance 
of MySpace if MyBranching is used.

hope you can help

at the end just for sure: is there only one Branching instance for a 
space? and this is not cloned etc?

Thanks a lot

Martin



_______________________________________________
Gecode users mailing list
users at gecode.org https://www.gecode.org/mailman/listinfo/gecode-users





More information about the gecode-users mailing list