Ignore:
Timestamp:
Aug 17, 2013 11:28:45 AM (6 years ago)
Author:
forrest
Message:

correct some printing and allow RINS to start more easily in mini B&B

File:
1 edited

Legend:

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

    r1952 r1956  
    2424#include "CbcHeuristic.hpp"
    2525#include "CbcHeuristicFPump.hpp"
     26#include "CbcHeuristicRINS.hpp"
    2627#include "CbcEventHandler.hpp"
    2728#include "CbcStrategy.hpp"
     
    10171018                    model.setMaximumCutPassesAtRoot(CoinMin(20, CoinAbs(model_->getMaximumCutPassesAtRoot())));
    10181019                    model.setMaximumCutPasses(CoinMin(10, model_->getMaximumCutPasses()));
     1020                    // Set best solution (even if bad for this submodel)
     1021                    if (model_->bestSolution()) {
     1022                      const double * bestSolution = model_->bestSolution();
     1023                      int numberColumns2 = model.solver()->getNumCols();
     1024                      double * bestSolution2 = new double [numberColumns2];
     1025                      const int * originalColumns = process.originalColumns();
     1026                      for (int iColumn=0;iColumn<numberColumns2;iColumn++) {
     1027                        int jColumn = originalColumns[iColumn];
     1028                        bestSolution2[iColumn] = bestSolution[jColumn];
     1029                      }
     1030                      model.setBestSolution(bestSolution2,numberColumns2,
     1031                                            1.0e50,
     1032                                            false);
     1033                      model.setSolutionCount(1);
     1034                      maximumSolutions++;
     1035                      delete [] bestSolution2;
     1036                    }
    10191037                } else {
    10201038                    model.setSpecialOptions(saveModelOptions);
     
    11761194                  }
    11771195                }
     1196                // modify heuristics
     1197                for (int i = 0; i < model.numberHeuristics(); i++) {
     1198                  // reset lastNode
     1199                  CbcHeuristicRINS * rins =
     1200                    dynamic_cast<CbcHeuristicRINS*>(model.heuristic(i));
     1201                  if (rins) {
     1202                    rins->setLastNode(-1000);
     1203                    rins->setSolutionCount(0);
     1204                  }
     1205                }
    11781206                //printf("sol %x\n",inputSolution_);
    11791207                if (inputSolution_) {
     
    12631291                        // Not fast stuff
    12641292                        model.setFastNodeDepth(-1);
     1293                        //model.solver()->writeMps("before");
    12651294                    } else if (model.fastNodeDepth() >= 1000000) {
    12661295                        // already set
     
    19301959        int iColumn = integerVariable[i];
    19311960        double value = newSolution[iColumn];
    1932         double thisTolerance = integerTolerance;
     1961        //double thisTolerance = integerTolerance;
    19331962        if (fabs(floor(value + 0.5) - value) > integerTolerance) {
    19341963            double below = floor(value);
Note: See TracChangeset for help on using the changeset viewer.