[gecode-users] Access to the last propagator invoked in case of ES_FAILED

Christian Schulte cschulte at kth.se
Fri Mar 28 09:17:33 CET 2008


My intuition is as follows:

Scenario a) You want to debug a faulty model (that is, it does not have the
right solutions). You suspect that there is a propagator that is "wrong"
with respect to the problem statement. You would like to find "wrong". But,
"wrong" might never fail (typically, it will not)! It might make some
variable domains shrink but in the end some other propagators use that
information to infer failure.

Scenario b) Your model is correct but you would like to know what is the
reason why a particular choice during branching went wrong. After the choice
made, many propagators will run: the explanation why the choice is wrong is
the execution of all these propagators but not just the last one.

Yes, you are correct as soon as a propagator fails propagation stops
immediately.

Maybe you have other scenarios of interest, but then, as said by George, it
is easy enough to try changing Gecode.

All the best
Christian

--
Christian Schulte, www.ict.kth.se/~cschulte/

-----Original Message-----
From: David Rijsman [mailto:davidrijsman at gmail.com] 
Sent: Friday, March 28, 2008 9:06 AM
To: cschulte at kth.se
Cc: Mikael Zayenz Lagerkvist; users at gecode.org
Subject: Re: [gecode-users] Access to the last propagator invoked in case of
ES_FAILED

Just for my understanding when you say 'the reason of failure' are you
refering to the propagator (assuming it is a propagator) that would
have made at least one domain empty. Also in my understanding I would
expect no more propagators to be invoked after such a propagator has
been invoked. How do you define the 'real reason of failure' and how
is it possible that many more propagators will be invoked after this
propagator?

On Thu, Mar 27, 2008 at 3:59 PM, Christian Schulte <cschulte at kth.se> wrote:
> Well, as said the last propagator will just almost never be the reason for
> failure: the real reason might be some propagator that ran one million
steps
> earlier ;-(
>
> I am guessing here but I think that George was referring to step() rather
> than propagate() which does a single propagator step at a time and that he
> traces all propagator executions for learning nogoods. step() has never
made
> it into a released system.
>
> Christian
>
> --
> Christian Schulte, www.ict.kth.se/~cschulte/
>
>
> -----Original Message-----
> From: David Rijsman [mailto:davidrijsman at gmail.com]
> Sent: Thursday, March 27, 2008 3:48 PM
> To: cschulte at kth.se
> Cc: Mikael Zayenz Lagerkvist; users at gecode.org
> Subject: Re: [gecode-users] Access to the last propagator invoked in case
of
> ES_FAILED
>
>
> But one could enumerate the reasons. I mean being in a search one
> could conclude that the reason of a failure is due to the branching in
> case one has no propagator and because of the propagator if one has
> one. Being outside the search one can conclude the same but the reason
> is not the branching but the posting of the constraint in case of a
> failure without a last propagator.
>
>





More information about the gecode-users mailing list