Ignore:
Location:
stable/2.9/Cbc/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • stable/2.9/Cbc/src/CbcModel.cpp

    r2275 r2224  
    21242124          }
    21252125          delete solver_ ;
    2126           solverCharacteristics_=NULL;
    21272126          solver_ = continuousSolver_ ;
    21282127          setPointers(solver_);
     
    61646163    }
    61656164    // Space for current solution
    6166     if (numberColumns) {
    6167       currentSolution_ = new double[numberColumns];
    6168       continuousSolution_ = CoinCopyOfArray(solver_->getColSolution(),numberColumns);
    6169       usedInSolution_ = new int[numberColumns];
    6170       CoinZeroN(usedInSolution_, numberColumns);
    6171     } else {
    6172       currentSolution_ = NULL;
    6173       continuousSolution_ = NULL;
    6174       usedInSolution_ = NULL;
    6175     }
     6165    currentSolution_ = new double[numberColumns];
     6166    continuousSolution_ = CoinCopyOfArray(solver_->getColSolution(),numberColumns);
     6167    usedInSolution_ = new int[numberColumns];
     6168    CoinZeroN(usedInSolution_, numberColumns);
    61766169    testSolution_ = currentSolution_;
    61776170    numberRowsAtContinuous_ = rhs.numberRowsAtContinuous_;
     
    86418634                numberTries = -1000; // exit
    86428635                feasible = false;
    8643                 delete [] addCuts ;
    86448636                break;
    86458637            }
  • stable/2.9/Cbc/src/CbcNode.cpp

    r2275 r2224  
    19741974    // so we can save lots of stuff
    19751975    CbcStrongInfo choice;
    1976     memset (&choice, 0, sizeof(CbcStrongInfo));
    19771976    CbcDynamicPseudoCostBranchingObject * choiceObject = NULL;
    19781977    if (model->allDynamic()) {
  • stable/2.9/Cbc/src/CbcSolver.cpp

    r2275 r2224  
    41784178                                          osiclp->getModelPtr()->setMoreSpecialOptions(saveOptions|262144);
    41794179                                        }
    4180                                         solver2 = process.preProcessNonDefault(*saveSolver, translate[preProcess], numberPasses,
     4180                                        solver2 = process.preProcessNonDefault(*saveSolver, translate[preProcess], numberPasses,
    41814181                                                                               tunePreProcess);
    4182                                         if (solver2) {
    4183                                           model_.setOriginalColumns( process.originalColumns(), solver2->getNumCols() );
    4184                                           osiclp->getModelPtr()->setPerturbation(savePerturbation);
    4185                                           osiclp->getModelPtr()->setMoreSpecialOptions(saveOptions);
    4186                                         }
     4182                                        /*solver2->writeMps("after");
     4183                                          saveSolver->writeMps("before");*/
     4184                                        osiclp->getModelPtr()->setPerturbation(savePerturbation);
     4185                                        osiclp->getModelPtr()->setMoreSpecialOptions(saveOptions);
    41874186                                    }
    41884187#elif CBC_OTHER_SOLVER==1
     
    54355434#endif
    54365435                                const int * originalColumns = preProcess ? process.originalColumns() : NULL;
    5437 
    5438                                 if (model.getMIPStart().size())
    5439                                                     mipStart = model.getMIPStart();
    5440 
    5441                                 if (mipStart.size() && !mipStartBefore.size() && babModel_->getNumCols())
     5436                                //if (model.getMIPStart().size())
     5437                                // mipStart = model.getMIPStart();
     5438                                if (mipStart.size() && !mipStartBefore.size() && babModel_->getNumCols())
    54425439                                {
    5443                                     std::vector< std::string > colNames;
    5444                                     if (preProcess)
    5445                                     {
    5446                                         /* translating mipstart solution */
    5447                                         std::map< std::string, double > mipStartV;
    5448                                         for ( size_t i=0 ; (i<mipStart.size()) ; ++i )
    5449                                             mipStartV[mipStart[i].first] = mipStart[i].second;
    5450 
    5451                                         std::vector< std::pair< std::string, double > > mipStart2;
    5452                                         for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i ) {
    5453                                             int iColumn = babModel_->originalColumns()[i];
    5454                                             if (iColumn>=0) {
    5455                                                 std::string cname = model_.solver()->getColName( iColumn );
    5456                                                 colNames.push_back( cname );
    5457                                                 babModel_->solver()->setColName( i, cname );
    5458                                                 std::map< std::string, double >::const_iterator msIt = mipStartV.find( cname );
    5459                                                 if ( msIt != mipStartV.end() )
    5460                                                     mipStart2.push_back( std::pair< std::string, double>( cname, msIt->second ) );
    5461                                             } else {
    5462                                                 // created variable
    5463                                                 char newName[15];
    5464                                                 sprintf(newName,"C%7.7d",i);
    5465                                                 colNames.push_back( newName );
    5466                                             }
    5467                                         }
    5468                                         mipStart = mipStart2;
    5469                                     } else {
    5470                                         for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i )
    5471                                             colNames.push_back( model_.solver()->getColName(i) );
    5472                                     }
    5473                                     //printf("--- %s %d\n", babModel_->solver()->getColName(0).c_str(), babModel_->solver()->getColNames().size() );
    5474                                     //printf("-- SIZES of models %d %d %d\n", model_.getNumCols(),  babModel_->solver()->getNumCols(), babModel_->solver()->getColNames().size() );
    5475                                     std::vector< double > x( babModel_->getNumCols(), 0.0 );
    5476                                     double obj;
    5477                                     int status = computeCompleteSolution( babModel_, colNames, mipStart, &x[0], obj );
    5478                                     if (!status) {
    5479                                         babModel_->setBestSolution( &x[0], static_cast<int>(x.size()), obj, false );
    5480                                         babModel_->setSolutionCount(1);
    5481                                     }
    5482                                }
    5483 
     5440                                   std::vector< std::string > colNames;
     5441                                   if (preProcess)
     5442                                   {
     5443                                     std::vector< std::pair< std::string, double > > mipStart2;
     5444                                     int numberOriginalColumns = model_.solver()->getNumCols();
     5445                                     for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i ) {
     5446                                       int iColumn = babModel_->originalColumns()[i];
     5447                                       if (iColumn>=0 && iColumn < numberOriginalColumns) {
     5448                                         colNames.push_back( model_.solver()->getColName( iColumn ) );
     5449                                         babModel_->solver()->setColName(i,model_.solver()->getColName(iColumn));
     5450                                         mipStart2.push_back(mipStart[iColumn]);
     5451                                       } else {
     5452                                         // created variable
     5453                                         char newName[15];
     5454                                         sprintf(newName,"C%7.7d",i);
     5455                                         colNames.push_back( newName );
     5456                                       }
     5457                                     }
     5458                                     mipStart = mipStart2;
     5459                                   } else {
     5460                                      for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i )
     5461                                         colNames.push_back( model_.solver()->getColName(i) );
     5462                                   }
     5463                                   //printf("--- %s %d\n", babModel_->solver()->getColName(0).c_str(), babModel_->solver()->getColNames().size() );
     5464                                   //printf("-- SIZES of models %d %d %d\n", model_.getNumCols(),  babModel_->solver()->getNumCols(), babModel_->solver()->getColNames().size() );
     5465                                   std::vector< double > x( babModel_->getNumCols(), 0.0 );
     5466                                   double obj;
     5467                                   int status = computeCompleteSolution( babModel_, colNames, mipStart, &x[0], obj );
     5468                                   if (!status) {
     5469                                     babModel_->setBestSolution( &x[0], static_cast<int>(x.size()), obj, false );
     5470                                     babModel_->setSolutionCount(1);
     5471                                   }
     5472                                }
    54845473
    54855474                                if (solutionIn && useSolution >= 0) {
     
    55675556                                        assert (originalColumns);
    55685557                                        int n = CoinMin(truncateColumns,numberColumns);
    5569                                         // allow for empty problem
    5570                                         n = (n) ? originalColumns[n-1] + 1 : 0;
     5558                                        n = originalColumns[n-1] + 1;
    55715559                                        n = CoinMax(n, CoinMax(numberColumns, numberOriginalColumns));
    55725560                                        int * newColumn = new int[n];
  • stable/2.9/Cbc/src/config_cbc_default.h

    r2275 r2224  
    66
    77/* Version number of project */
    8 #define CBC_VERSION "2.9.8"
     8#define CBC_VERSION "2.9.7"
    99
    1010/* Major Version number of project */
     
    1515
    1616/* Release Version number of project */
    17 #define CBC_VERSION_RELEASE 8
     17#define CBC_VERSION_RELEASE 7
  • stable/2.9/Cbc/src/unitTestClp.cpp

    r2275 r2224  
    169169    std::vector<double> objValue ;
    170170    std::vector<int> testSet ;
    171     std::vector<int> rowCutDebugger ;
     171    std::vector<bool> rowCutDebugger ;
    172172/*
    173173  A macro to make the vector creation marginally readable. Parameters are
Note: See TracChangeset for help on using the changeset viewer.