Hi David, I can't really see why you would want to save the handle also in the space. You can do it, of course but I do not see why propagator subsumption forces you to do that: when creating a propagator, the propagator could add its preference which then would stay on even if the propagator gets subsumed. Another idea would be to build a propagator that propagates all dependencies stored in the graph, that might save the creation of many propagators (due to transitivity of precedence).
Damn it, you are right about MPG, you should have a copy constructor. Thanks for pointing out, I'll fix that for Gecode 4 (which is now nearing its completion - of sorts...). Best Christian -- Christian Schulte, www.ict.kth.se/~cschulte/ -----Original Message----- From: users-boun...@gecode.org [mailto:users-boun...@gecode.org] On Behalf Of David Rijsman Sent: Wednesday, February 13, 2013 10:37 AM To: users@gecode.org; cschu...@kth.se Subject: Re: [gecode-users] Branching decision updates an existing propagator Hi Christian, thanks and indeed for the same use case. If I read correct the idea is to have a distance graph or something as a local object embedded in a local handle. Have at least the extended space have a handle to this object and have each precedence propagator between two views also have a handle to this local object. We do not want to loose the nodes in the distance graph when we subsume a precedence propagator and therefor we need the handle in the space. In MPG section 27.4 examples you have not defined the copy constructors of the LI class. I assume we always need to have one so we can have multiple handles to the same object, is that correct? David J. Rijsman Algorithm Lead Quintiq T +31 (0)73 691 07 39 F +31 (0)73 691 07 54 M +31 (0)62 127 68 29 E david.rijs...@quintiq.com I www.quintiq.com >>> From: "Christian Schulte" <cschu...@kth.se> To: "'David Rijsman'" <david.rijs...@quintiq.com>, <users@gecode.org> Date: 12-2-2013 17:22 Subject: RE: [gecode-users] Branching decision updates an existing propagator Hi David, Funny, we added support for this some time ago (also for temporal networks ;-)) but we never made it round to implement the networks (still on our todo list). The best way to do it is to create a local object with a local handle that can be shared among several propagators/and or branchers. This is described in Section 27.4 in MPG. Then the propagator can add the information to this shared object and the brancher can read from there. Hope that helps. Best Christian -- Christian Schulte, www.ict.kth.se/~cschulte/ -----Original Message----- From: users-boun...@gecode.org [mailto:users-boun...@gecode.org] On Behalf Of David Rijsman Sent: Tuesday, February 12, 2013 4:22 PM To: users@gecode.org Subject: [gecode-users] Branching decision updates an existing propagator Hi All, I am wondering if there is pattern to be used if I have a propagator which can be fed with new information by a branching decision. Specifically I have a temporal propagator maintaining a temporal network and if a branch decision is to introduce a new precedence relation (ordering between two views present in the network) I would like to forward this information to the temporal propagator. I was thinking of maintaining a unary relation to my temporal propagator in my extended space, this relation might become null when the propagator is subsumed. I also need to introduce a post precedence constraint API on my extended space which notifies to temporal propagator of the new precedence constraint. This API on the space can then be invoked by the brancher. Would this be the best way of doing something like this? David J. Rijsman Algorithm Lead Quintiq T +31 (0)73 691 07 39 F +31 (0)73 691 07 54 M +31 (0)62 127 68 29 E david.rijs...@quintiq.com I www.quintiq.com _______________________________________________ Gecode users mailing list users@gecode.org https://www.gecode.org/mailman/listinfo/gecode-users _______________________________________________ Gecode users mailing list users@gecode.org https://www.gecode.org/mailman/listinfo/gecode-users _______________________________________________ Gecode users mailing list users@gecode.org https://www.gecode.org/mailman/listinfo/gecode-users