[PPL-devel] SICStus interface and backtrack

Tristan Denmat denmat at irisa.fr
Thu Mar 16 17:58:42 CET 2006


Dear all,
I am currently using the PPL (version 0.7) with SICStus.  Everything was 
fine until I met important efficiency issues...

The problem is (or might be) that I want my program to be backtrackable. 
I mean, if I add a constraint to a polyhedra, I want this constraint to 
be removed when Prolog backtracks before the addition.
As far as I know, it is not possible to do so if I directly use the 
handlers.
To adress that I represent a polyhedron by an attributed variable P 
containing the list of constraints that define it (say L). Then, when I 
want to add a constraint (C) , I create a new Polyhedron from L in ppl, 
add C, get the minimized list of constraints (L'), delete the Polyhedron 
and update my variable P to L'.  If Prolog backtracks before the 
addition, the old value L of P is automatically restored. I am afraid 
that this implementation is dramatic for the efficiency of your library.

My questions are :
Do you already have tackled the problem of backtrack with PPL ? If yes, 
would you have a better solution than mine ?
How bad is this approach regarding efficiency ?
Would it make sense to save a kind of "internal state" of the polyhedron 
instead of the explicit list of constraints ?

Thank you,
Tristan Denmat



More information about the PPL-devel mailing list