Changeset 737


Ignore:
Timestamp:
Jul 6, 2011 1:28:47 PM (9 years ago)
Author:
fmargot
Message:

Make sure that intervals for integer branching variable contains all
values exactly once.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Couenne/src/branch/CouenneBranchingObject.cpp

    r720 r737  
    173173
    174174      if (!branchIndex_) { // if this is the first branch operation
    175 
    176175        if (!way) brpt -= (1. - COUENNE_EPS);
    177176        else      brpt += (1. - COUENNE_EPS);
    178177      }
     178      else { // adjust brpt so that interval covers integer value
     179             // necessary for nvs13.nl
     180        if (!way) brpt += COUENNE_EPS;
     181        else      brpt -= COUENNE_EPS;
     182      }
    179183    }
    180     else if (u - brpt > .5) {if  (way) brpt += (1. - COUENNE_EPS);}
    181     else if (brpt - l > .5) {if (!way) brpt -= (1. - COUENNE_EPS);}
    182     else { // u == l == brpt; must still branch to fix variables in object
    183            // but one branch is infeasible
    184       if(way) {
    185         solver->setColLower(index, u+1); // infeasible
     184    else {
     185      if (u - brpt > .5) {
     186        if (way) {
     187          brpt += (1. - COUENNE_EPS);
     188        }
     189        else { // adjust brpt so that interval covers integer value
     190          brpt += COUENNE_EPS;
     191        }
     192      }
     193      else {
     194        if (brpt - l > .5) {
     195          if (!way) {
     196            brpt -= (1. - COUENNE_EPS);
     197          }
     198          else { // adjust brpt so that interval covers integer value
     199            brpt -= COUENNE_EPS;
     200          }
     201        }
     202        else { // u == l == brpt; must still branch to fix variables in object
     203          // but one branch is infeasible
     204          if(way) {
     205            solver->setColLower(index, u+1); // infeasible
     206          }
     207        }
    186208      }
    187209    }
Note: See TracChangeset for help on using the changeset viewer.