Ignore:
Timestamp:
Sep 24, 2014 6:16:34 AM (5 years ago)
Author:
forrest
Message:

changes for non simplex solvers

Location:
trunk/Cbc/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cbc/src

  • trunk/Cbc/src/CbcNode.cpp

    r2051 r2080  
    14151415                        choice[i].possibleBranch = NULL;
    14161416                        const OsiObject * object = model->object(thisChoice.objectNumber);
    1417                         int preferredWay;
    1418                         double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     1417                        double infeasibility = object->checkInfeasibility(&usefulInfo);
    14191418                        if (!infeasibility) {
    14201419                            // take out
     
    16321631            CbcObject * obj =   dynamic_cast <CbcObject *>(object) ;
    16331632            if (!obj || !obj->optionalObject()) {
    1634                 int preferredWay;
    1635                 double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     1633                double infeasibility = object->checkInfeasibility(&usefulInfo);
    16361634                if (infeasibility) {
    16371635                    useOldWay = true;
     
    20572055                CbcSimpleIntegerDynamicPseudoCost * dynamicObject =
    20582056                    dynamic_cast <CbcSimpleIntegerDynamicPseudoCost *>(object) ;
    2059                 int preferredWay;
    2060                 double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     2057                double infeasibility = object->checkInfeasibility(&usefulInfo);
    20612058                int priorityLevel = object->priority();
    20622059                if (hotstartSolution) {
     
    20852082                                    //else
    20862083                                    infeasibility = fabs(value - targetValue);
    2087                                     //if (targetValue==1.0)
    2088                                     //infeasibility += 1.0;
    2089                                     if (value > targetValue) {
    2090                                         preferredWay = -1;
    2091                                     } else {
    2092                                         preferredWay = 1;
    2093                                     }
    20942084                                    priorityLevel = CoinAbs(priorityLevel);
    20952085                                } else if (priorityLevel < 0) {
    20962086                                    priorityLevel = CoinAbs(priorityLevel);
    2097                                     if (targetValue == saveLower[iColumn]) {
     2087                                    if (targetValue == saveLower[iColumn] ||
     2088                                    targetValue == saveUpper[iColumn]) {
    20982089                                        infeasibility = integerTolerance + 1.0e-12;
    2099                                         preferredWay = -1;
    2100                                     } else if (targetValue == saveUpper[iColumn]) {
    2101                                         infeasibility = integerTolerance + 1.0e-12;
    2102                                         preferredWay = 1;
    21032090                                    } else {
    21042091                                        // can't
     
    37343721            if (branch_) {
    37353722                 const OsiObject * object = model->object(bestChoice);
    3736                  int preferredWay;
    3737                  double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     3723                 double infeasibility = object->checkInfeasibility(&usefulInfo);
    37383724                 if (!infeasibility) {
    37393725                   // take out
     
    37413727                   branch_ = NULL;
    37423728                 } else {
     3729                   // get preferred way
     3730                   int preferredWay;
     3731                   object->infeasibility(&usefulInfo, preferredWay);
    37433732                   CbcBranchingObject * branchObj =
    37443733                     dynamic_cast <CbcBranchingObject *>(branch_) ;
     
    40334022        if (!dynamicObject)
    40344023            continue;
    4035         int preferredWay;
    4036         double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     4024        double infeasibility = object->checkInfeasibility(&usefulInfo);
    40374025        int iColumn = dynamicObject->columnNumber();
    40384026        if (saveUpper[iColumn] == saveLower[iColumn])
Note: See TracChangeset for help on using the changeset viewer.