[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