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/CbcHeuristic.cpp

    r1836 r1839  
    913913                solver2->resolve();
    914914                CbcModel model(*solver2);
     915                // move seed across
     916                model.randomNumberGenerator()->setSeed(model_->randomNumberGenerator()->getSeed());
    915917                if (numberNodes >= 0) {
    916918                    // normal
     
    923925                    model.setFastNodeDepth(-1);
    924926                    model.setCutoff(signedCutoff);
     927                    model.setStrongStrategy(0);
    925928                    // Don't do if original fraction > 1.0 and too large
    926929                    if (fractionSmall_>1.0 && fractionSmall_ < 1000000.0) {
     
    945948                    if ((saveModelOptions&2048) == 0)
    946949                      model.setMoreSpecialOptions(model_->moreSpecialOptions());
     950                    // off conflict analysis
     951                    model.setMoreSpecialOptions(model.moreSpecialOptions()&~4194304);
     952                   
    947953                    // Lightweight
    948954                    CbcStrategyDefaultSubTree strategy(model_, 1, 5, 1, 0);
     
    958964                    // going for full search and copy across more stuff
    959965                    model.gutsOfCopy(*model_, 2);
     966                    assert (!model_->heuristicModel());
     967                    model_->setHeuristicModel(&model);
    960968                    for (int i = 0; i < model.numberCutGenerators(); i++) {
    961969                        CbcCutGenerator * generator = model.cutGenerator(i);
     
    9961004                        CglStored cuts = process.cuts();
    9971005                        model.addCutGenerator(&cuts, 1, "Stored from first");
     1006                        model.cutGenerator(model.numberCutGenerators()-1)->setGlobalCuts(true);
    9981007                    }
    9991008                }
     
    12091218                    model_->setSpecialOptions(saveOptions|1048576);
    12101219                    model.branchAndBound();
     1220                    model_->setHeuristicModel(NULL);
    12111221                    model_->setSpecialOptions(saveOptions);
    12121222#ifdef ALWAYS_DUAL
Note: See TracChangeset for help on using the changeset viewer.