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

From: Wit Jakuczun <wit.jakuczun_at_gmail.com>
Date: Sun, 15 Feb 2009 19:47:00 +0100
Hi Kish,
   the propagator looks like that (this is an example only):

propagate(Var, OldDom, Susp) :-
    propagate(Var),
    ic:get_domain_as_list(Var, NewDom),
    kill_suspension(Susp),
    suspend( propagate(Var, NewDom, Susp1),3, Var->ic:hole, Susp1).

Here the state is a domain of a variable.

What is the better way to deal with such propagators?

Best regards
-- 
[ Wit Jakuczun  w.jakuczun_at_wlogsolutions.com ]
[ WLOG Solutions http://wlogsolutions.com   ]

2009/2/15 Kish Shen <kisshen_at_cisco.com>:
> Hi Wit,
>
> Why do you need to kill the old suspension? Is it because the
> state you calculate is stored in the suspension, and it has
> changed? If so, you can use setarg/3 to change the state and
> use demon suspension. This will only work if your state does
> not need to survive backtracking.
>
> Cheers,
>
> Kish
>
> Wit Jakuczun wrote:
>>
>> Hi,
>>   I have a propagator that uses state. It means
>> that during propagation phase a new state is
>> calculated that is used for the next event.
>>   What is the most effective way of resuspending
>> such propagators?
>>   Now I just suspend a propagator with a
>> new state. In manual it is stated that using
>> demons is more efficient but in my situation
>> usign demons doesn't make any difference as
>> I must kill suspension and create a new one.
>>
>> Best regards
>
>
> --
> 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 Sun Feb 15 2009 - 18:47:06 CET

This archive was generated by hypermail 2.2.0 : Thu Feb 02 2012 - 02:31:58 CET