Search code examples
clpfdsicstus-prolog

Labeling with time_out difference between Sicstus 4.2.3 and 4.3.0


In Sicstus 4.2.3 it is possible to do like this:

| ?- X in 0..2, labeling( [minimize(X), time_out(1000, Lr)],[X] ). 
X = 0,
Lr = success ? yes
| ?- 

If you do the same in Sicstus 4.3.0 you get:

| ?- X in 0..2, labeling( [minimize(X), time_out(1000, Lr)],[X] ). 
X = 0 ? yes
| ?- 

What happened to Lr in 4.3.0?

And how do you know if the solution you get in 4.3.0 is the optimal solution or if the solution is a non-optimal solution?


Solution

  • It's a bug of course. Lr should be bound to 'success'. With Lr left unbound, there is no telling whether the solution is optimal.

    Thanks for reporting this!