Changeset 955


Ignore:
Timestamp:
May 29, 2008 6:02:15 AM (11 years ago)
Author:
forrest
Message:

changes

Location:
trunk/Cbc/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cbc/src/CbcHeuristic.cpp

    r954 r955  
    609609    CglPreProcess process;
    610610    /* Do not try and produce equality cliques and
    611        do up to 2 passes */
     611       do up to 2 passes (normally) 5 if restart */
     612    int numberPasses= (numberNodes<0) ? 5 : 2;
    612613    if (logLevel<=1)
    613614      process.messageHandler()->setLogLevel(0);
    614     OsiSolverInterface * solver2= process.preProcessNonDefault(*solver,false,2);
     615    OsiSolverInterface * solver2= process.preProcessNonDefault(*solver,false,
     616                                                               numberPasses);
    615617    if (!solver2) {
    616618      if (logLevel>1)
     
    675677          strategy.setupPreProcessing(0); // was (4);
    676678          model.setStrategy(strategy);
     679          //model.solver()->writeMps("crunched");
    677680        }
    678681        if (inputSolution_) {
     
    732735          if (!gotPump) {
    733736            CbcHeuristicFPump heuristic4;
     737            heuristic4.setMaximumPasses(30);
    734738            int pumpTune=feasibilityPumpOptions_;
    735739            if (pumpTune>0) {
  • trunk/Cbc/src/CbcHeuristicDive.cpp

    r944 r955  
    744744
    745745{
     746  //return 0; //temp
    746747#if 0
    747748  if(!solverCharacteristics_->reducedCostsAccurate())
  • trunk/Cbc/src/CbcHeuristicFPump.cpp

    r954 r955  
    542542            }
    543543            if (numberLeft) {
     544              sprintf(pumpPrint,"Branch and bound needed to clear up %d general integers",numberLeft);
     545              model_->messageHandler()->message(CBC_FPUMP1,model_->messages())
     546                << pumpPrint
     547                <<CoinMessageEol;
    544548              returnCode = smallBranchAndBound(solver,numberNodes_,newSolution,newSolutionValue,
    545549                                               solutionValue,"CbcHeuristicFpump");
  • trunk/Cbc/src/CbcModel.cpp

    r954 r955  
    22102210        int numberFixed = 0 ;
    22112211        int numberFixed2=0;
     2212        printf("gap %g\n",gap);
    22122213        for (int i = 0 ; i < numberIntegers_ ; i++) {
    22132214          int iColumn = integerVariable_[i] ;
     
    22152216          if (upper[iColumn]-lower[iColumn] > integerTolerance) {
    22162217            if (solution[iColumn] < lower[iColumn]+integerTolerance && djValue > gap) {
     2218              //printf("%d to lb on dj of %g - bounds %g %g\n",
     2219              //     iColumn,djValue,lower[iColumn],upper[iColumn]);
    22172220              saveSolver->setColUpper(iColumn,lower[iColumn]) ;
    22182221              numberFixed++ ;
    22192222            } else if (solution[iColumn] > upper[iColumn]-integerTolerance && -djValue > gap) {
     2223              //printf("%d to ub on dj of %g - bounds %g %g\n",
     2224              //     iColumn,djValue,lower[iColumn],upper[iColumn]);
    22202225              saveSolver->setColLower(iColumn,upper[iColumn]) ;
    22212226              numberFixed++ ;
    22222227            }
    22232228          } else {
     2229            //printf("%d has dj of %g - already fixed to %g\n",
     2230            //     iColumn,djValue,lower[iColumn]);
    22242231            numberFixed2++;
    22252232          }
    22262233        }
    22272234#ifdef COIN_DEVELOP
     2235        if ((specialOptions_&1)!=0) {
     2236          const OsiRowCutDebugger *debugger = saveSolver->getRowCutDebugger() ;
     2237          if (debugger) {
     2238            printf("Contains optimal\n") ;
     2239            saveSolver->writeMps("reduced");
     2240          } else {
     2241            abort();
     2242          }
     2243        }
    22282244        printf("Restart could fix %d integers (%d already fixed)\n",
    22292245               numberFixed+numberFixed2,numberFixed2);
     
    22552271        if (bestSolution_)
    22562272          heuristic.setInputSolution(bestSolution_,bestObjective_);
    2257         heuristic.setFractionSmall(0.7);
    2258         heuristic.setFeasibilityPumpOptions(1008003);
     2273        heuristic.setFractionSmall(0.6);
     2274        heuristic.setFeasibilityPumpOptions(1008013);
    22592275        int returnCode= heuristic.smallBranchAndBound(saveSolver,
    22602276                                                      -1,newSolution,
     
    57405756  numberDJFixed_ += numberFixed-numberTightened;
    57415757#ifdef COIN_DEVELOP
    5742   if (numberTightened)
    5743     printf("%d tightened, %d others fixed\n",numberTightened,
    5744            numberFixed-numberTightened);
     5758  //if (numberTightened)
     5759  //printf("%d tightened, %d others fixed\n",numberTightened,
     5760  //   numberFixed-numberTightened);
    57455761#endif
    57465762  return numberFixed; }
     
    95019517          <<CoinMessageEol;
    95029518      } else {
    9503         assert (lastHeuristic_);
    9504         const char * name = lastHeuristic_->heuristicName();
     9519        const char * name ;
     9520        if (lastHeuristic_)
     9521          name = lastHeuristic_->heuristicName();
     9522        else
     9523          name = "Reduced search";
    95059524        handler_->message(CBC_ROUNDING,messages_)
    95069525          <<bestObjective_
  • trunk/Cbc/src/CbcSolver.cpp

    r954 r955  
    44094409                strongChanged=true;
    44104410              else if (parameters_[iParam].type()==EXPERIMENT) {
    4411                 if (value==1) {
     4411                if (value>=1) {
    44124412                  if (!noPrinting_) {
    44134413                    generalMessageHandler->message(CLP_GENERAL,generalMessages)
     
    73067306                  return returnCode;
    73077307                }
    7308                 if (parameters_[whichParam(EXPERIMENT,numberParameters_,parameters_)].intValue()==1) {
     7308                if (parameters_[whichParam(EXPERIMENT,numberParameters_,parameters_)].intValue()>=1) {
    73097309                  osiclp = dynamic_cast< OsiClpSolverInterface*> (babModel_->solver());
    73107310                  lpSolver = osiclp->getModelPtr();
  • trunk/Cbc/src/unitTestClp.cpp

    r935 r955  
    385385      model->solver()->activateRowCutDebugger(problemName.c_str()) ;
    386386    }
     387    if (model->getNumCols()==-1224) {
     388      //PUSH_MPS("gesa2",1392,1224,25779856.372,25476489.678,7);
     389      // gesa2
     390      std::string problemName ;
     391      model->solver()->getStrParam(OsiProbName,problemName) ;
     392      model->solver()->activateRowCutDebugger(problemName.c_str()) ;
     393    }
    387394    if (model->getNumCols()==-141) {
    388395      // egout
     
    410417    }
    411418    setCutAndHeuristicOptions(*model);
    412     if (stuff&&stuff[8]==1) {
     419    if (stuff&&stuff[8]>=1) {
    413420      if (modelC->numberColumns()+modelC->numberRows()<=500)
    414421        model->setFastNodeDepth(-9);
Note: See TracChangeset for help on using the changeset viewer.