[Scip] hashKeyEqCut: Assertion `row1->lpcolssorted' failed
Jana Kutscheid
jkutscheid at web.de
Tue Apr 1 12:45:57 CEST 2014
Hi Gerald,
of course, thank you so much. I must have lost this line at some point
but did not notice at all...
Now the row is sorted but I keep getting the other error:
hsnp: src/scip/solve.c:2877: enforceConstraints: Assertion
`SCIPsepastoreGetNCuts(sepastore) > 0' failed.
Do you have an idea?
As a remark: I mostly add global cuts and have activated the separation
of the global cut pool.
Thanks,
Jana
Am 01.04.2014 12:23, schrieb Gerald Gamrath:
> Dear Jana,
>
> if you call SCIPcacheRowExtensions() before adding variables to the
> row, you need to call SCIPflushRowExtensions() after you are done with
> adding. This will really apply the changes and allows to sort the row,
> as is needed later.
>
> Best,
> Gerald
>
> Am 01.04.2014 12:01, schrieb Jana Kutscheid:
>> Hi SCIP Users!
>>
>> I have a problem with a failing assertion which I only found when
>> running SCIP in debug mode. I can run my code without errors in
>> optimized mode.
>>
>> The program aborts with the following error.
>> hsnp: src/scip/cutpool.c:87: hashKeyEqCut: Assertion
>> `row1->lpcolssorted' failed.
>>
>> The row which is added to the cutpool at the moment the error occurs
>> is generated by the code below.
>>
>> If I deactivate separation in the corresponding constraint handler I
>> get another error:
>> hsnp: src/scip/solve.c:2877: enforceConstraints: Assertion
>> `SCIPsepastoreGetNCuts(sepastore) > 0' failed.
>>
>> Do you have an idea what causes these problems?
>>
>> Thanks,
>> Jana
>>
>>
>> Code which generates the problem row:
>>
>> SCIP_ROW *row;
>> char s[SCIP_MAXSTRLEN];
>>
>> (void) SCIPsnprintf(s, SCIP_MAXSTRLEN,
>> "time_sepa$%s#%d#%d%d%d", household->name, intervalEnd,time_a,
>> time_b, time_c);
>>
>> SCIP_CALL( SCIPcreateEmptyRowCons(scip, &row, conshdlr, s,
>> 0.0, 1.0, FALSE, FALSE, TRUE) );
>> SCIP_CALL( SCIPcacheRowExtensions(scip, row) );
>>
>> if (time_a >= intervalBegin && time_a <= intervalEnd)
>> SCIP_CALL( SCIPaddVarToRow(scip, row, a_var, 1.0) );
>> if (time_b >= intervalBegin && time_b <= intervalEnd)
>> SCIP_CALL( SCIPaddVarToRow(scip, row, b_var, 1.0) );
>> if (time_c >= intervalBegin && time_c <= intervalEnd)
>> SCIP_CALL( SCIPaddVarToRow(scip, row, c_var, 1.0) );
>>
>> if (SCIPisCutEfficacious(scip, NULL, row))
>> {
>> SCIP_CALL( SCIPaddCut(scip, NULL, row, TRUE) );
>> SCIP_CALL( SCIPaddPoolCut(scip, row) );
>> *result = SCIP_SEPARATED;
>> }
>> SCIP_CALL( SCIPreleaseRow(scip, &row));
>>
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> http://listserv.zib.de/mailman/listinfo/scip
>
>
More information about the Scip
mailing list