[gecode-users] Bug in TupleSet?

Mikael Zayenz Lagerkvist zayenz at kth.se
Fri Dec 19 13:19:26 CET 2008


On Tue, Dec 16, 2008 at 6:17 AM, Michal D. <michal.dobrogost at gmail.com> wrote:
> I just noticed this message, and it's the exact same problem I was having
> (see http://article.gmane.org/gmane.comp.lib.gecode.user/2053). Just for
> reference: extensional() calls tupleSet::finalize() which calls quicksort()
> on the tuples and eventually produces this seg fault. I confirmed that with
> duplicates removed quicksort() terminates using the "<=" comparison and a
> stack depth of 32 for my data. However, this does not clear the use of "<="
> comparisons in quicksort (see the other thread).

This has been fixed in the trunk now, and tuple sets work with
duplicate items. Thanks for helping with the bug-hunt. Tuple sets will
also remove those duplicates on finalization in a coming update.

> 1) Is a tupleSet shared if it is used as part of multiple extensional()
> constraints?

Yes, it is.

> 2) Do the unneeded tuples in a given extensional() constraint get discarded at
> some point? Ie. is it ok to have extra values that will be dropped on the first
> propagation or will they stay on as runtime overhead forever?

The set of tuples in a tuple set will always be the same, so including
tuples that will never be solutions anyway will generate an overhead.
For values of variables, extra values do not generate any overhead.

Cheers,
Mikael

-- 
Mikael Zayenz Lagerkvist, http://www.ict.kth.se/~zayenz/




More information about the gecode-users mailing list