Ignore:
Timestamp:
Feb 27, 2015 11:24:47 AM (4 years ago)
Author:
forrest
Message:

improve solution checking

File:
1 edited

Legend:

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

    r2122 r2146  
    3131#include "CglProbing.hpp"
    3232#include "OsiAuxInfo.hpp"
     33#include "OsiRowCutDebugger.hpp"
    3334#include "OsiPresolve.hpp"
    3435#include "CbcBranchActual.hpp"
     
    939940            solver->messageHandler()->logLevel(0)!=-1000)
    940941          process.passInMessageHandler(solver->messageHandler());
     942#ifdef CGL_DEBUG
     943        /*
     944          We're debugging. (specialOptions 1)
     945        */
     946        if ((model_->specialOptions()&1) != 0) {
     947          const OsiRowCutDebugger *debugger = solver->getRowCutDebugger() ;
     948          if (debugger) {
     949            process.setApplicationData(const_cast<double *>(debugger->optimalSolution()));
     950          }
     951        }
     952#endif
    941953        solver2 = process.preProcessNonDefault(*solver, false,
    942954                                               numberPasses);
     
    972984                << CoinMessageEol;
    973985            }
     986#ifdef CGL_DEBUG
     987            if ((model_->specialOptions()&1) != 0) {
     988              const OsiRowCutDebugger *debugger = solver2->getRowCutDebugger() ;
     989              if (debugger) {
     990                printf("On optimal path after preprocessing\n");
     991              }
     992            }
     993#endif
    974994            if (returnCode == 1) {
    975995                solver2->resolve();
     
    10461066                    // going for full search and copy across more stuff
    10471067                    model.gutsOfCopy(*model_, 2);
     1068#ifdef CGL_DEBUG
     1069                    if ((model_->specialOptions()&1) != 0) {
     1070                      const OsiRowCutDebugger *debugger = model.solver()->getRowCutDebugger() ;
     1071                      if (debugger) {
     1072                        printf("On optimal path BB\n");
     1073                      }
     1074                    }
     1075#endif
    10481076                    assert (!model_->heuristicModel());
    10491077                    model_->setHeuristicModel(&model);
     
    12091237                }
    12101238                //printf("sol %x\n",inputSolution_);
     1239#ifdef CGL_DEBUG
     1240                if ((model_->specialOptions()&1) != 0) {
     1241                  const OsiRowCutDebugger *debugger = model.solver()->getRowCutDebugger() ;
     1242                  if (debugger) {
     1243                    printf("On optimal path CC\n");
     1244                  }
     1245                }
     1246#endif
    12111247                if (inputSolution_) {
    12121248                    // translate and add a serendipity heuristic
     
    13291365                    if ((model_->moreSpecialOptions()&4194304)!=0)
    13301366                      model.zapGlobalCuts();
     1367#endif
     1368#ifdef CGL_DEBUG
     1369                    if ((model_->specialOptions()&1) != 0) {
     1370                      const OsiRowCutDebugger *debugger = model.solver()->getRowCutDebugger() ;
     1371                      if (debugger) {
     1372                        printf("On optimal path DD\n");
     1373                      }
     1374                    }
    13311375#endif
    13321376                    model.branchAndBound();
Note: See TracChangeset for help on using the changeset viewer.