Re: [eclipse-clp-users] Propagators with a state

From: Kish Shen <kisshen_at_...5...>
Date: Wed, 18 Feb 2009 20:19:56 +0000
Wit Jakuczun wrote:
> Yes, you are right! I am just not the fan of the priorities and treat them
> as a simple excuse for my incompetence sometimes :). Nevertheless
> I was testing Sicstus and have never got into such problems as with
> ECLiPSe.

I don't think priorities are that bad, particularly when you are dealing 
with only one solver.

One important property about priorities is that the execution of a goal 
can only be `interuppted' by woken goals that have a *higher* priority. 
Specifically, woken goals with the *same* priority does not interrupt 
the execution, because woken goals are placed at the end of the 
resolvent. So if you write your propagators at the same priority, they 
will be "atomic" with respect to the other propagators (at the same 

This is somewhat different from suspension/wake implemented in other 
Prologs, and which do not have priorities. Woken goals in this case 
effectively have a higher priority (they are added to the front of the 
resolvent) and will interupt your current execution. You don't really 
have the flexibility to control this.

The suspension mechanism (along with attributed variable) is designed to 
give you the ability to write code for different solvers in ECLiPSe (and 
not just propagators for say finite domain), and to allow these 
different solvers to co-operate. It also give you the full flexibility 
of the whole ECLiPSe language to do so. For example, I was recently 
involved in helping to add some domain consistent (generalised arc 
consistent) global finite domain (ic) constraints, which we plan to add 
to ECLiPSe 6.1. These constraints are based on working on a flow graph. 
Everything was done in ECLiPSe for this, there was no need to go to a 
low-level language like C. In other systems, I suspect that you may very 
well need to go to C to implement such constraintss [of course, you may 
want to implement some critical parts of the constraint in C to give 
better performance, but you don't need to].



This e-mail may contain confidential and privileged material for the
sole use of the intended recipient. Any review, use, distribution or
disclosure by others is strictly prohibited. If you are not the intended
recipient (or authorized to receive for the recipient), please contact
the sender by reply e-mail and delete all copies of this message.
Cisco Systems Limited (Company Number: 02558939), is registered in
England and Wales with its registered office at 1 Callaghan Square,
Cardiff, South Glamorgan CF10 5BT.
Received on Wed Feb 18 2009 - 20:20:02 CET

This archive was generated by hypermail 2.3.0 : Tue Aug 20 2019 - 09:14:20 CEST