[Scip] free transform problem
Stefan Vigerske
stefan at math.hu-berlin.de
Fri Jul 6 14:38:25 MEST 2012
Hi,
a possible cause for this assert is that not all variables in the
transformed problem in your subscip were released when the constraints
were deleted.
Do you use some own plugins in the subscip?
Stefan
On 07/06/2012 11:43 AM, James Cussens wrote:
> I'm using a subscip in a separator routine. Rather than using
> createProb to create a brand new subscip on each separator call, I've
> been 'recycling' the same one and using a call to freeTransform to
> make the necessary changes before solving.
>
> Although this has worked OK in some past versions of my project, I'm
> now getting problems. My call to SCIPfreeTransform
> is failing when SCIP tries to reset bounds (see below).
>
> Should I just create a new problem on each call? (I notice that the
> SCIP separators do this.)
> This would mean creating and adding the same variables (and many
> constraints) over and over again.
>
> James
>
>
> gobnilp: src/scip/var.c:8082: SCIPvarResetBounds: Assertion
> `SCIPvarGetTransVar(var) == ((void *)0)' failed.
>
> Program received signal SIGABRT, Aborted.
> 0x00007ffff679c035 in raise () from /lib64/libc.so.6
> (gdb) backtrace
> #0 0x00007ffff679c035 in raise () from /lib64/libc.so.6
> #1 0x00007ffff679d9e6 in abort () from /lib64/libc.so.6
> #2 0x00007ffff67948e5 in __assert_fail () from /lib64/libc.so.6
> #3 0x0000000000673549 in SCIPvarResetBounds (var=0x16f6b90,
> blkmem=0x1511a50, set=0x1513a70, stat=0x16f1310) at
> src/scip/var.c:8082
> #4 0x00000000005ab999 in SCIPprobResetBounds (prob=0x16f1d60,
> blkmem=0x1511a50, set=0x1513a70, stat=0x16f1310) at
> src/scip/prob.c:514
> #5 0x00000000005cd4c3 in freeTransform (scip=0x150f8b0) at src/scip/scip.c:7322
> #6 0x00000000005cebaf in SCIPfreeTransform (scip=0x150f8b0) at
> src/scip/scip.c:7764
> #7 0x000000000040ab5b in DagClusterSeparate (scip=0x140c010,
> consdata=0x15058a0, sol=0x175f018, nGen=0x7fffffffce90, ub=0,
> add_cutting_planes=0) at src/cons_dagcluster.c:176
>
> the comment in var.c says:
> /* resetting of bounds on original variables which have a
> transformed counterpart easily fails if, e.g.,
> * the transformed variable has been fixed */
> assert(SCIPvarGetTransVar(var) == NULL);
>
More information about the Scip
mailing list