Ignore:
Timestamp:
Oct 7, 2005 4:27:24 PM (16 years ago)
Author:
forrest
Message:

heuristics

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Test/CoinSolve.cpp

    r183 r186  
    6868#include "CbcHeuristicGreedy.hpp"
    6969#include "CbcHeuristicFPump.hpp"
     70#include "CbcTreeLocal.hpp"
    7071#include "CbcCompareActual.hpp"
    7172#include  "CbcOrClpParam.hpp"
     
    255256    int useFpump=0;
    256257    bool useGreedy=false;
    257     bool useLocal=false;
     258    bool useCombine=false;
     259    bool useLocalTree=false;
    258260   
    259261    // total number of commands read
     
    675677              useRounding = action;
    676678              useGreedy = action;
    677               useLocal = action;
    678               useFpump = action;
     679              useCombine = action;
     680              //useLocalTree = action;
     681              if (action&&useFpump==0)
     682                useFpump=parameters[whichParam(FPUMPITS,numberParameters,parameters)].intValue();
     683              else if (!action)
     684                useFpump=0;
    679685              parameters[whichParam(ROUNDING,numberParameters,parameters)].setCurrentOption(action);
    680686              parameters[whichParam(GREEDY,numberParameters,parameters)].setCurrentOption(action);
    681               parameters[whichParam(LOCAL,numberParameters,parameters)].setCurrentOption(action);
     687              parameters[whichParam(COMBINE,numberParameters,parameters)].setCurrentOption(action);
     688              //parameters[whichParam(LOCALTREE,numberParameters,parameters)].setCurrentOption(action);
    682689              parameters[whichParam(FPUMP,numberParameters,parameters)].setCurrentOption(action);
    683690              break;
     
    686693              useGreedy = action;
    687694              break;
    688             case LOCAL:
     695            case COMBINE:
    689696              defaultSettings=false; // user knows what she is doing
    690               useLocal = action;
     697              useCombine = action;
     698              break;
     699            case LOCALTREE:
     700              defaultSettings=false; // user knows what she is doing
     701              useLocalTree = action;
    691702              break;
    692703            case COSTSTRATEGY:
     
    962973              //model.solver()->getStrParam(OsiProbName,problemName) ;
    963974              //model.solver()->activateRowCutDebugger(problemName.c_str()) ;
     975              // FPump done first as it only works if no solution
     976              CbcHeuristicFPump heuristic4(model);
     977              if (useFpump) {
     978                heuristic4.setMaximumPasses(useFpump);
     979                model.addHeuristic(&heuristic4);
     980              }
    964981              CbcRounding heuristic1(model);
    965982              if (useRounding)
     
    967984              CbcHeuristicLocal heuristic2(model);
    968985              heuristic2.setSearchType(1);
    969               if (useLocal)
     986              if (useCombine)
    970987                model.addHeuristic(&heuristic2);
    971988              CbcHeuristicGreedyCover heuristic3(model);
     
    975992                model.addHeuristic(&heuristic3a);
    976993              }
    977               CbcHeuristicFPump heuristic4(model);
    978               if (useFpump) {
    979                 heuristic4.setMaximumPasses(useFpump);
    980                 model.addHeuristic(&heuristic4);
    981               }
     994              CbcTreeLocal localTree(&model,NULL,10,0,0,10000,2000);
     995              if (useLocalTree)
     996                model.passInTreeHandler(localTree);
    982997              // add cut generators if wanted
    983998              if (probingAction==1)
Note: See TracChangeset for help on using the changeset viewer.