Changeset 601


Ignore:
Timestamp:
May 2, 2007 5:51:17 AM (13 years ago)
Author:
forrest
Message:

cuts?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/devel/Cbc/src/CbcSolver.cpp

    r600 r601  
    14061406        testOsiParameters=0;
    14071407        complicatedInteger=1;
     1408        if (info.cut) {
     1409          printf("warning - cuts with LOS\n");
     1410          int numberRows = info.numberRows;
     1411          int * whichRow = new int [numberRows];
     1412          // Row copy
     1413          const CoinPackedMatrix * matrixByRow = solver->getMatrixByRow();
     1414          const double * elementByRow = matrixByRow->getElements();
     1415          const int * column = matrixByRow->getIndices();
     1416          const CoinBigIndex * rowStart = matrixByRow->getVectorStarts();
     1417          const int * rowLength = matrixByRow->getVectorLengths();
     1418         
     1419          const double * rowLower = solver->getRowLower();
     1420          const double * rowUpper = solver->getRowUpper();
     1421          int nDelete=0;
     1422          for (int iRow=0;iRow<numberRows;iRow++) {
     1423            if (info.cut[iRow]) {
     1424              whichRow[nDelete++]=iRow;
     1425              int start = rowStart[iRow];
     1426              storedAmpl.addCut(rowLower[iRow],rowUpper[iRow],
     1427                                rowLength[iRow],column+start,elementByRow+start);
     1428            }
     1429          }
     1430          solver->deleteRows(nDelete,whichRow);
     1431          delete [] whichRow;
     1432        }
    14081433      }
    14091434#endif
     
    41134138                    delete [] buildColumn;
    41144139                  }
    4115                   if (storedAmpl.sizeRowCuts()) {
    4116                     //babModel->addCutGenerator(&storedAmpl,1,"AmplStored");
    4117                     int numberRowCuts = storedAmpl.sizeRowCuts();
    4118                     for (int i=0;i<numberRowCuts;i++) {
    4119                       const OsiRowCut * rowCutPointer = storedAmpl.rowCutPointer(i);
    4120                       babModel->makeGlobalCut(rowCutPointer);
    4121                     }
    4122                   }
    41234140                }
    41244141#endif
     
    42144231                }
    42154232#endif
     4233                if (storedAmpl.sizeRowCuts()) {
     4234                  //babModel->addCutGenerator(&storedAmpl,1,"AmplStored");
     4235                  int numberRowCuts = storedAmpl.sizeRowCuts();
     4236                  for (int i=0;i<numberRowCuts;i++) {
     4237                    const OsiRowCut * rowCutPointer = storedAmpl.rowCutPointer(i);
     4238                    babModel->makeGlobalCut(rowCutPointer);
     4239                  }
     4240                }
    42164241                babModel->branchAndBound(statistics);
    42174242#ifdef CLP_MALLOC_STATISTICS
Note: See TracChangeset for help on using the changeset viewer.