[Cbc] Assertion in CbcModel.cpp:525
Kim Hansen
kimhanse at gmail.com
Mon Jul 23 18:25:35 EDT 2007
Hi John
On 7/23/07, John J Forrest <jjforre at us.ibm.com> wrote:
>
> Kim,
>
> a) Looking at your previous stack printout I realized that the new error handling was not activated on that particular path. Try again and see if it is better (ClpModel.cpp has been changed as well as some Cbc stuff).
I have upgraded my library but I still get an infinite loop, this time
in another problem of the same type. I have captured a few stack
traces:
#0 ClpPackedMatrix::subsetTransposeTimes (this=0xf98c218,
model=0xbfcb7f00, rowArray=0x101a63a0, y=0xf993378,
columnArray=0xfc33008) at ClpPackedMatrix.cpp:1534
#1 0x434fa843 in ClpPrimalColumnSteepest::transposeTimes2
(this=0xf8c2bf8, pi1=0xf78f038, dj1=0xf993378, pi2=0x101a63a0,
dj2=0xfc33008, spare=0xf98b878, scaleFactor=2.5110835365338303e-08)
at ClpPrimalColumnSteepest.cpp:1673
#2 0x43502e53 in ClpPrimalColumnSteepest::djsAndSteepest
(this=0xf8c2bf8, updates=0xf78f038, spareRow1=0xf787c18,
spareRow2=0xf98b878, spareColumn1=0xf993378, spareColumn2=0xfc33008)
at ClpPrimalColumnSteepest.cpp:1122
#3 0x43503e5c in ClpPrimalColumnSteepest::pivotColumn
(this=0xf8c2bf8, updates=0xf78f038, spareRow1=0xf787c18,
spareRow2=0xf98b878, spareColumn1=0xf993378, spareColumn2=0xfc33008)
at ClpPrimalColumnSteepest.cpp:295
#4 0x435455f7 in ClpSimplexPrimal::primalColumn (this=0xbfcb7f00,
updates=0xf78f038, spareRow1=0xf787c18, spareRow2=0xf98b878,
spareColumn1=0xf993378, spareColumn2=0xfc33008)
at ClpSimplexPrimal.cpp:1878
#5 0x4354bf12 in ClpSimplexPrimal::whileIterating (this=0xbfcb7f00,
valuesOption=0) at ClpSimplexPrimal.cpp:580
#6 0x4354c41d in ClpSimplexPrimal::primal (this=0xbfcb7f00,
ifValuesPass=0, startFinishOptions=0) at ClpSimplexPrimal.cpp:461
*** It is the frame above this line that never finishes ***
#7 0x43511f1d in ClpSimplex::primal (this=0xbfcb7f00, ifValuesPass=1,
startFinishOptions=0) at ClpSimplex.cpp:4673
#8 0x437cab86 in OsiClpSolverInterface::initialSolve (this=0xfc32608)
at OsiClpSolverInterface.cpp:287
#9 0x4373a6cb in CglPreProcess::postProcess (this=0xbfcb87e8,
modelIn=@0x1050d064) at CglPreProcess.cpp:1453
#10 0x435d3b0a in CbcHeuristic::smallBranchAndBound (this=0xf62d580,
solver=0xf788d04, numberNodes=200, newSolution=0xf8c6d58,
newSolutionValue=@0xbfcb8f48, cutoff=48250.22442602404,
name=@0xbfcb88e0) at CbcHeuristic.cpp:207
#11 0x435de6e3 in CbcHeuristicLocal::solutionFix (this=0xf62d580,
objectiveValue=@0xbfcb8f48, newSolution=0xf8c6d58, keep=0x0) at
CbcHeuristicLocal.cpp:157
#12 0x435dfb8a in CbcHeuristicLocal::solution (this=0xf62d580,
solutionValue=@0xbfcb8f48, betterSolution=0xf8c6d58) at
CbcHeuristicLocal.cpp:566
#13 0x435fabd2 in CbcModel::branchAndBound (this=0xf62e328,
doStatistics=0) at CbcModel.cpp:2031
#0 0x42fc243a in CoinFactorization::updateColumnTransposeLDensish
(this=0xf944270, regionSparse=0xf98b878) at
CoinFactorization3.cpp:1256
#1 0x42fc2a65 in CoinFactorization::updateColumnTransposeL
(this=0xf944270, regionSparse=0xf98b878) at
CoinFactorization3.cpp:1627
#2 0x42fc3b27 in CoinFactorization::updateColumnTranspose
(this=0xf944270, regionSparse=0xf98b878, regionSparse2=0xf78f038) at
CoinFactorization3.cpp:897
#3 0x43495e47 in ClpFactorization::updateColumnTranspose (this=0x78,
regionSparse=0xf98b878, regionSparse2=0xf944270) at
ClpFactorization.cpp:856
#4 0x43502c22 in ClpPrimalColumnSteepest::djsAndSteepest
(this=0xf8c2bf8, updates=0xf78f038, spareRow1=0xf787c18,
spareRow2=0xf98b878, spareColumn1=0xf993378, spareColumn2=0xfc33008)
at ClpPrimalColumnSteepest.cpp:965
#5 0x43503e5c in ClpPrimalColumnSteepest::pivotColumn
(this=0xf8c2bf8, updates=0xf78f038, spareRow1=0xf787c18,
spareRow2=0xf98b878, spareColumn1=0xf993378, spareColumn2=0xfc33008)
at ClpPrimalColumnSteepest.cpp:295
#6 0x435455f7 in ClpSimplexPrimal::primalColumn (this=0xbfcb7f00,
updates=0xf78f038, spareRow1=0xf787c18, spareRow2=0xf98b878,
spareColumn1=0xf993378, spareColumn2=0xfc33008)
at ClpSimplexPrimal.cpp:1878
[...]
The loop it appears to be caught in is:
271 while (problemStatus_<0) {
(gdb) n
275 rowArray_[iRow]->clear();
(gdb) n
279 columnArray_[iColumn]->clear();
(gdb) n
284 matrix_->refresh(this);
(gdb) n
287 if
(perturbation_<101&&numberIterations_>2*(numberRows_+numberColumns_)&&(specialOptions_&4)==0
(gdb) n
294 if (lastGoodIteration_==numberIterations_&&factorType)
(gdb) n
296 if (saveModel) {
(gdb) n
311 statusOfProblemInPrimal(lastCleaned,factorType,progress_,true,ifValuesPass,saveModel);
(gdb) n
312 if (initialStatus==10) {
(gdb) n
333 if (numberDualInfeasibilities_==-776) {
(gdb) n
342 int numberSprintIterations=0;
(gdb) n
343 int numberSprintColumns =
primalColumnPivot_->numberSprintColumns(numberSprintIterations);
(gdb) n
344 if (problemStatus_==777) {
(gdb) n
352 } else if
(problemStatus_<0&&!saveModel&&numberSprintColumns&&firstFree_<0) {
(gdb) n
427 pivotRow_=-2;
(gdb) n
430 if (problemStatus_>=0)
(gdb) n
434 if (hitMaximumIterations()||(ifValuesPass==2&&firstFree_<0)) {
(gdb) n
0x4346b5bc in ClpModel::hitMaximumIterations () from /usr/lib/libClp.so.0
(gdb) n
Single stepping until exit from function
_ZNK8ClpModel20hitMaximumIterationsEv at plt,
which has no line number information.
ClpModel::hitMaximumIterations (this=0xbfcb7f00) at ClpModel.cpp:2326
2326 ClpModel::hitMaximumIterations() const
(gdb) fin
Run till exit from #0 ClpModel::hitMaximumIterations
(this=0xbfcb7f00) at ClpModel.cpp:2326
0x4354c3bd in ClpSimplexPrimal::primal (this=0xbfcb7f00,
ifValuesPass=0, startFinishOptions=0) at ClpSimplexPrimal.cpp:434
434 if (hitMaximumIterations()||(ifValuesPass==2&&firstFree_<0)) {
Value returned is $12 = false
(gdb) n
439 if (firstFree_<0) {
(gdb) n
440 if (ifValuesPass) {
(gdb) n
453 int status =
eventHandler_->event(ClpEventHandler::endOfFactorization);
(gdb) n
454 if (status>=0) {
(gdb) n
461 whileIterating(ifValuesPass ? 1 : 0);
(gdb) n
457 break;
(gdb) n
461 whileIterating(ifValuesPass ? 1 : 0);
(gdb) n
271 while (problemStatus_<0) {
problemStatus_ keeps being -2, I don't know what else to look at, but
I hope this helps.
Thanks,
--
Kim Hansen
Vadgårdsvej 3, 2.tv
2860 Søborg
Fastnet: 3956 2437 -- Mobil: 3091 2437
More information about the Cbc
mailing list