Well that would not be channeling, it would just transfer the current domain from one space to another. As said, it can be done but it is non-trivial: it would require locking as different spaces can be run by different threads.
What I meant by copying is: suppose that you have a propagator between spaces s1 and s2. Now you clone s1. What should happen to the propagator? Should it be cloned as well? If you do not use cloning you could build a propagator, it would basically be two propagators, one in each space. I am not yet convinced that Gecode is a good platform for CCP, it is really designed for constraint reasoning. Christian -- Christian Schulte, www.ict.kth.se/~cschulte/ From: Mauricio Toro [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 21, 2008 12:09 PM To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: constraint between variables in different spaces Hello all, Is it possible to do the channeling for IntVar using a IntSet? like dom(space1,var1,intset); dom(space2,var2,intset); ? Why do you mean by copying it? I have made an interpreter for CCP calculus using gecode. Now I am trying to extend the interpreter for Time Concurrent Constraint Calculus. which is an extension where we have multiple spaces. each one representing a time unit. The problem is when we want to represent persistent assignation, something like "forever tell(x = Variable_In_Time_Unit_1)". Notice that for all this models we do not use search, we are only interested in propagation. Any ideas? Thanks 2008/5/21 Christian Schulte <[EMAIL PROTECTED]>: You can't. The best you might is a segfault. There is currently no way to do it. One could build a special propagator that channels across spaces but that would be pretty tricky: who will take care of that propagator during copying, for example. My question is: why would you like to do that? Cheers Christian -- Christian Schulte, www.ict.kth.se/~cschulte/ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mauricio Toro Sent: Wednesday, May 21, 2008 10:39 AM To: [EMAIL PROTECTED] Subject: [gecode-users] constraint between variables in different spaces Hello all, I want to propagate a constraint between variables in different spaces. How can this be done? For example mySpace * a = new mySpace(); mySpace * b = new mySpace(); IntVar aa(a,1,10); IntVar bb(b,1,10); rel(a,aa,IRT_EQ,2); a->status(); rel(b,bb,IRT_EQ,aa); b->status(); std::cout << aa << " " << bb; // should print : 2 2 It does not work this way. Is there a way to do it? Maybe cloning the variable or something? Thanks -- Mauricio Toro Bermudez Estudiante de Ingeniería de Sistemas Pontificia Universidad Javeriana, Colombia Stagiare à l'Ircam 1, place Igor-Stravinsky 75004 Paris, France de 2008 à 2009 -- Mauricio Toro Bermudez Estudiante de Ingeniería de Sistemas Pontificia Universidad Javeriana, Colombia Stagiare à l'Ircam 1, place Igor-Stravinsky 75004 Paris, France de 2008 à 2009 -- Mauricio Toro Bermudez Estudiante de Ingeniería de Sistemas Pontificia Universidad Javeriana, Colombia Stagiare à l'Ircam 1, place Igor-Stravinsky 75004 Paris, France de 2008 à 2009
_______________________________________________ Gecode users mailing list [EMAIL PROTECTED] https://www.gecode.org/mailman/listinfo/gecode-users
