Ignore:
File:
1 edited

Legend:

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

    r1902 r2094  
    168168    if (!bestSolution)
    169169        return 0; // No solution found yet
     170#ifdef HEURISTIC_INFORM
     171    printf("Entering heuristic %s - nRuns %d numCould %d when %d\n",
     172           heuristicName(),numRuns_,numCouldRun_,when_);
     173#endif
    170174    if (numberSolutions_ < model_->getSolutionCount()) {
    171175        // new solution - add info
     
    181185                values_[i] = NULL;
    182186        } else {
    183             assert (numberIntegers == numberIntegers_);
     187            assert (numberIntegers >= numberIntegers_);
    184188        }
    185189        // move solutions (0 will be most recent)
     
    193197        }
    194198        int i;
    195         for (i = 0; i < numberIntegers; i++) {
     199        for (i = 0; i < numberIntegers_; i++) {
    196200            int iColumn = integerVariable[i];
    197201            double value = bestSolution[iColumn];
     
    202206    }
    203207    int finalReturnCode = 0;
    204     if (((model_->getNodeCount() % howOften_) == howOften_ / 2 || !model_->getNodeCount()) && (model_->getCurrentPassNumber() == 1 || model_->getCurrentPassNumber() == 999999)) {
     208    if (((model_->getNodeCount() % howOften_) == howOften_ / 2 || !model_->getNodeCount()) && (model_->getCurrentPassNumber() <= 1 || model_->getCurrentPassNumber() == 999999)) {
    205209        OsiSolverInterface * solver = model_->solver();
    206210
    207         int numberIntegers = model_->numberIntegers();
     211        //int numberIntegers = model_->numberIntegers();
    208212        const int * integerVariable = model_->integerVariable();
    209213
     
    223227            const double * continuousSolution = newSolver->getColSolution();
    224228            // Space for added constraint
    225             double * element = new double [numberIntegers];
    226             int * column = new int [numberIntegers];
     229            double * element = new double [numberIntegers_];
     230            int * column = new int [numberIntegers_];
    227231            int i;
    228232            int nFix = 0;
     
    233237            double bias = localSpace;
    234238            int okSame = numberKeptSolutions_ - 1;
    235             for (i = 0; i < numberIntegers; i++) {
     239            for (i = 0; i < numberIntegers_; i++) {
    236240                int iColumn = integerVariable[i];
    237241                const OsiObject * object = model_->object(i);
     
    333337            << generalPrint
    334338            << CoinMessageEol;
    335             if (nFix > numberIntegers / 10) {
     339            if (nFix > numberIntegers_ / 10) {
    336340#ifdef JJF_ZERO
    337341                newSolver->initialSolve();
    338342                printf("obj %g\n", newSolver->getObjValue());
    339                 for (i = 0; i < numberIntegers; i++) {
     343                for (i = 0; i < numberIntegers_; i++) {
    340344                    int iColumn = integerVariable[i];
    341345                    printf("%d new bounds %g %g - solutions %g %g\n",
Note: See TracChangeset for help on using the changeset viewer.