Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • stable/2.8/Cbc/src/CbcSolver.cpp

    r2004 r2031  
    16091609                // modify objective if necessary
    16101610                solver->setObjSense(info.direction);
    1611                 solver->setDblParam(OsiObjOffset, info.offset);
     1611                solver->setDblParam(OsiObjOffset, -info.offset);
    16121612                if (info.offset) {
    16131613                    sprintf(generalPrint, "Ampl objective offset is %g",
     
    39893989                                        numberPasses = (tunePreProcess / 1000000) - 1;
    39903990                                        tunePreProcess = tunePreProcess % 1000000;
    3991                                     } else if (tunePreProcess >= 1000) {
    3992                                         numberPasses = (tunePreProcess / 1000) - 1;
    3993                                         tunePreProcess = tunePreProcess % 1000;
     3991                                    } else if (tunePreProcess >= 10000) {
     3992                                        numberPasses = (tunePreProcess / 10000) - 1;
     3993                                        tunePreProcess = tunePreProcess % 10000;
    39943994                                    }
    39953995#ifndef CBC_OTHER_SOLVER
     
    50945094#endif
    50955095                                const int * originalColumns = preProcess ? process.originalColumns() : NULL;
    5096                                 if (mipStart.size())
     5096                                if (mipStart.size() && !mipStartBefore.size())
    50975097                                {
    50985098                                   std::vector< std::string > colNames;
    50995099                                   if (preProcess)
    51005100                                   {
     5101                                     std::vector< std::pair< std::string, double > > mipStart2;
    51015102                                     for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i ) {
    51025103                                       int iColumn = babModel_->originalColumns()[i];
    51035104                                       if (iColumn>=0) {
    51045105                                         colNames.push_back( model_.solver()->getColName( iColumn ) );
     5106                                         babModel_->solver()->setColName(i,model_.solver()->getColName(iColumn));
     5107                                         mipStart2.push_back(mipStart[iColumn]);
    51055108                                       } else {
    51065109                                         // created variable
     
    51105113                                       }
    51115114                                     }
     5115                                     mipStart = mipStart2;
    51125116                                   } else {
    51135117                                      for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i )
     
    87558759                                }
    87568760                                    // Write solution header (suggested by Luigi Poderico)
     8761                                    // Refresh solver
     8762                                    lpSolver = clpSolver->getModelPtr();
    87578763                                    lpSolver->computeObjectiveValue(false);
    87588764                                    double objValue = lpSolver->getObjValue();
Note: See TracChangeset for help on using the changeset viewer.