Ignore:
Timestamp:
Mar 25, 2011 3:05:49 PM (9 years ago)
Author:
forrest
Message:

fix bad bound message

File:
1 edited

Legend:

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

    r1605 r1624  
    877877        }
    878878        // If we have hit max time don't do strong branching
    879         bool hitMaxTime = ( CoinCpuTime() - model->getDblParam(CbcModel::CbcStartSeconds) >
     879        bool hitMaxTime = (model->getCurrentSeconds() >
    880880                            model->getDblParam(CbcModel::CbcMaximumSeconds));
    881881        // also give up if we are looping round too much
     
    13461346                    }
    13471347                }
    1348                 bool hitMaxTime = ( CoinCpuTime() - model->getDblParam(CbcModel::CbcStartSeconds) >
     1348                bool hitMaxTime = (model->getCurrentSeconds() >
    13491349                                    model->getDblParam(CbcModel::CbcMaximumSeconds));
    13501350                if (hitMaxTime) {
     
    24452445        assert (bestChoice >= 0);
    24462446        // If we have hit max time don't do strong branching
    2447         bool hitMaxTime = ( CoinCpuTime() - model->getDblParam(CbcModel::CbcStartSeconds) >
     2447        bool hitMaxTime = (model->getCurrentSeconds() >
    24482448                            model->getDblParam(CbcModel::CbcMaximumSeconds));
    24492449        // also give up if we are looping round too much
     
    28612861                            numberStrongInfeasible++;
    28622862                        } else {
    2863                             //#define TIGHTEN_BOUNDS
    2864 #ifdef TIGHTEN_BOUNDS
     2863#define CBCNODE_TIGHTEN_BOUNDS
     2864#ifdef CBCNODE_TIGHTEN_BOUNDS
    28652865                            // Can we tighten bounds?
    28662866                            if (iColumn < numberColumns && cutoff < 1.0e20
     
    30083008                            numberStrongInfeasible++;
    30093009                        } else {
    3010 #ifdef TIGHTEN_BOUNDS
     3010#ifdef CBCNODE_TIGHTEN_BOUNDS
    30113011                            // Can we tighten bounds?
    30123012                            if (iColumn < numberColumns && cutoff < 1.0e20
     
    33213321                }
    33223322                // Check max time
    3323                 hitMaxTime = ( CoinCpuTime() - model->getDblParam(CbcModel::CbcStartSeconds) >
     3323                hitMaxTime = (model->getCurrentSeconds() >
    33243324                               model->getDblParam(CbcModel::CbcMaximumSeconds));
    33253325                if (hitMaxTime) {
     
    33833383                    if (feasible) {
    33843384                        anyAction = 0;
    3385                         // See if candidate still possible
    3386                         if (branch_) {
    3387                             const OsiObject * object = model->object(bestChoice);
    3388                             int preferredWay;
    3389                             double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
    3390                             if (!infeasibility) {
    3391                                 // take out
    3392                                 delete branch_;
    3393                                 branch_ = NULL;
    3394                             } else {
    3395                                 CbcBranchingObject * branchObj =
    3396                                     dynamic_cast <CbcBranchingObject *>(branch_) ;
    3397                                 assert (branchObj);
    3398                                 branchObj->way(preferredWay);
    3399                             }
    3400                         }
    34013385                    } else {
    34023386                        anyAction = -2;
     
    34063390            }
    34073391            // If  fixed then round again
    3408             if (!branch_ && anyAction != -2) {
     3392            // See if candidate still possible
     3393            if (branch_) {
     3394                 const OsiObject * object = model->object(bestChoice);
     3395                 int preferredWay;
     3396                 double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     3397                 if (!infeasibility) {
     3398                   // take out
     3399                   delete branch_;
     3400                   branch_ = NULL;
     3401                 } else {
     3402                   CbcBranchingObject * branchObj =
     3403                     dynamic_cast <CbcBranchingObject *>(branch_) ;
     3404                   assert (branchObj);
     3405                   branchObj->way(preferredWay);
     3406#ifdef CBCNODE_TIGHTEN_BOUNDS
     3407                   bool fixed = branchObj->tighten(solver);
     3408                   if (fixed) {
     3409                     printf("Variable now fixed!\n");
     3410                     // take out
     3411                     delete branch_;
     3412                     branch_ = NULL;
     3413                   }
     3414#endif
     3415                 }
     3416            }
     3417            if (!branch_ && anyAction != -2 && !hitMaxTime) {
    34093418                finished = false;
    34103419            }
Note: See TracChangeset for help on using the changeset viewer.