[gecode-users] Critical bug.

Christian Schulte cschulte at kth.se
Tue Oct 24 09:32:18 CEST 2006


This is not a bug! The invariant is that whatever branching decsription is
created the position always refers to the same variable: In case some
variables are removed from the branching, the offset is updated accordingly.

Do you have an example where things go wrong?

Christian

-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Rafael Meneses
Sent: Tuesday, October 24, 2006 12:44 AM
To: users
Subject: [gecode-users] Critical bug.


Hi,

The problem is in ViewValBranching:

1.- The status method calculate the "start" variable.

2.- The description method create the branch description, with the position
and value of the variable to make the branch. _The position is absolute_.

3.- The commit, impose the branch description, since the position is
absolute, _position is position minus offset_ , but the offset depends of
the start variable, but status method in the recomputation phase is not
called, so the start variable is  zero. This produces that the offset is
distinct between the original node and the recompute one, then the branch is
made in other variables and not in the original one.

Options to repair the problem are:
* pass the start variable to the branching description
* don't make processing in the status method
* ...

I think that the error is critical, because produce that the recomputation
fix other variables, and we lost sector of the search space.

I attach a patch that implement the first option.

I detected the problem, when my code crashed extraneously... two days of
hard work :(


Saludos,

-- 
Rafael Meneses
http://www.zeke.cl
http://www.labsd.inf.utfsm.cl/~rmeneses





More information about the gecode-users mailing list