Ignore:
Timestamp:
Jan 16, 2013 1:41:25 PM (7 years ago)
Author:
forrest
Message:

multiple root solvers, stronger strong branching and cutoff as constraint

File:
1 edited

Legend:

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

    r1813 r1839  
    16751675        if (usedColumn && !exitAll) {
    16761676            OsiSolverInterface * newSolver = cloneBut(3); // was model_->continuousSolver()->clone();
     1677#if 0 //def COIN_HAS_CLP
     1678            OsiClpSolverInterface * clpSolver
     1679              = dynamic_cast<OsiClpSolverInterface *> (newSolver);
     1680            if (clpSolver) {
     1681              ClpSimplex * simplex = clpSolver->getModelPtr();
     1682              simplex->writeMps("start.mps",2,1);
     1683            }
     1684#endif
    16771685            const double * colLower = newSolver->getColLower();
    16781686            const double * colUpper = newSolver->getColUpper();
     
    17621770                    double cutoff2 = newSolutionValue +
    17631771                                     CoinMax(model_->getCutoffIncrement(), 1.0e-3);
     1772#if 0
     1773                      {
     1774                        OsiClpSolverInterface * clpSolver
     1775                        = dynamic_cast<OsiClpSolverInterface *> (newSolver);
     1776                        if (clpSolver) {
     1777                            ClpSimplex * simplex = clpSolver->getModelPtr();
     1778                            simplex->writeMps("testA.mps",2,1);
     1779                        }
     1780                      }
     1781#endif
    17641782                    int returnCode2 = smallBranchAndBound(newSolver, numberNodes_, newSolution, newSolutionValue,
    17651783                                                          cutoff2, "CbcHeuristicLocalAfterFPump");
     
    18001818                // recompute solution value
    18011819                if (returnCode && true) {
     1820#if 0
     1821                      {
     1822                        OsiClpSolverInterface * clpSolver
     1823                        = dynamic_cast<OsiClpSolverInterface *> (newSolver);
     1824                        if (clpSolver) {
     1825                            ClpSimplex * simplex = clpSolver->getModelPtr();
     1826                            simplex->writeMps("testB.mps",2,1);
     1827                        }
     1828                      }
     1829#endif
    18021830                    delete newSolver;
    18031831                    newSolver = cloneBut(3); // was model_->continuousSolver()->clone();
     
    19331961                        } else {
    19341962                            //newSolver->writeMps("bad3.mps");
     1963                          sprintf(pumpPrint, "On closer inspection solution is not valid");
     1964                          model_->messageHandler()->message(CBC_FPUMP1, model_->messages())
     1965                            << pumpPrint
     1966                            << CoinMessageEol;
    19351967                            exitAll = true;
    19361968                            break;
Note: See TracChangeset for help on using the changeset viewer.