fcastro@puj.edu.co wrote:
>>Hi, thanks for answering, what I really need, is help, maybe an example of how
>>can I detect when a propagator is working and what values it is modifying, so
>>I can alter the affected variables domain's assessments.
>>
I'm kind of jumping in on this conversation, but it looks like all you need is a
propagator written in OZ which modifies your assesment variables instead of the
domains, but the wake-up conditions are just like in a propagator.
Check out FD.watch.*, FD.reflect.*, ==, and thread support.
Denys even wrote me a multi-variable watcher class a while back:
http://www.mozart-oz.org/lists/oz-users/2008.html
You can inherit from this class and create your assessment updater.
(I never actually used it, I had odd wakeup-conditons, but it's a nice example)
In the Oz CP model, propagators only communicate via the domains of variables
they share, and it seems to work.
On the other hand if you only need those assessments updated before
distribution, not during propagation, do the update from the distributor:
FD.distribute generic(procedure: UpdateAssesments)
(or right after Space.waitStable if you wrote a custom distributor.)
Gabor Szokoli
-
Please send submissions to users@mozart-oz.org
and administriva mail to users-request@mozart-oz.org.
The Mozart Oz web site is at http://www.mozart-oz.org/.
Please send bug reports to bugs@mozart-oz.org.