Changeset 822


Ignore:
Timestamp:
Oct 10, 2007 5:10:59 AM (12 years ago)
Author:
forrest
Message:

prepare to use cliques

Location:
trunk/Cbc/src
Files:
5 edited

Legend:

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

    r702 r822  
    217217      // Probing - return tight column bounds
    218218      CglTreeProbingInfo * info2 = model_->probingInfo();
    219       if (info2) {
     219      if (info2&&!depth) {
    220220        info2->level = depth;
    221221        info2->pass = pass;
     
    412412    if (timing_)
    413413      timeInCutGenerator_ += CoinCpuTime()-time1;
     414#if 0
    414415    // switch off if first time and no good
    415416    if (node==NULL&&!pass) {
     
    419420      }
    420421    }
     422#endif
    421423  }
    422424  return returnCode;
  • trunk/Cbc/src/CbcModel.cpp

    r819 r822  
    50285028
    50295029    // reset probing info
    5030     if (probingInfo_)
    5031       probingInfo_->initializeFixing();
     5030    //if (probingInfo_)
     5031    //probingInfo_->initializeFixing();
    50325032    int i;
    50335033    if ((threadMode_&2)==0||numberNodes_) {
  • trunk/Cbc/src/CbcNode.cpp

    r821 r822  
    24232423        toOne = probingInfo->toOne();
    24242424        backward = probingInfo->backward();
    2425         if (!toZero[number01]) {
     2425        if (!toZero[number01]||number01<numberObjects) {
    24262426          // no info
    24272427          probingInfo=NULL;
     
    24812481          }
    24822482          int iColumn = dynamicObject->columnNumber();
    2483           if (probingInfo) {
    2484             int iSeq = backward[iColumn];
    2485             if (iSeq>=0) {
    2486               if (toZero[iSeq+1]>toZero[iSeq]) {
    2487                 numberUnsatisProbed++;
    2488               } else {
    2489                 numberUnsatisNotProbed++;
    2490               }
    2491             }
    2492           }
    24932483          //double gap = saveUpper[iColumn]-saveLower[iColumn];
    24942484          // Give precedence to ones with gap of 1.0
     
    25052495            infeasibility = 0.5-fabs(0.5-part);
    25062496          }
     2497          if (probingInfo) {
     2498            int iSeq = backward[iColumn];
     2499            assert (iSeq>=0);
     2500            infeasibility = 1.0 + (toZero[iSeq+1]-toZero[iSeq])+
     2501              5.0*CoinMin(toOne[iSeq]-toZero[iSeq],toZero[iSeq+1]-toOne[iSeq]);
     2502            if (toZero[iSeq+1]>toZero[iSeq]) {
     2503              numberUnsatisProbed++;
     2504            } else {
     2505              numberUnsatisNotProbed++;
     2506            }
     2507          }
    25072508          bool gotDown=false;
    25082509          int numberThisDown = dynamicObject->numberTimesDown();
  • trunk/Cbc/src/CbcSolver.cpp

    r820 r822  
    11721172  if (doAction==2) {
    11731173    doAction=1;
    1174     lpSolver = pinfo.presolvedModel(*originalLpSolver,1.0e-8,false,10);
     1174    lpSolver = pinfo.presolvedModel(*originalLpSolver,1.0e-8,true,10);
    11751175    assert (lpSolver);
    11761176    clpSolver = new OsiClpSolverInterface(lpSolver,true);
     
    18631863      pass[kPass]=iPass;
    18641864      double maxCostUp = COIN_DBL_MAX;
     1865      objective = lpSolver->getObjCoefficients() ;
    18651866      if (way==-1)
    18661867        maxCostUp= (1.0-movement)*objective[iSmallest];
     
    20882089  // See if was presolved
    20892090  if (originalColumns) {
     2091    columnLower = lpSolver->columnLower();
     2092    columnUpper = lpSolver->columnUpper();
    20902093    for ( iColumn=0;iColumn<numberColumns;iColumn++) {
    20912094      saveColumnLower[iColumn] = columnLower[iColumn];
     
    58615864              }
    58625865              if (gomoryAction&&(complicatedInteger!=1||
    5863                                  (gomoryAction==1||gomoryAction==4))) {
     5866                                 (gomoryAction==1||gomoryAction>=4))) {
     5867                // try larger limit
     5868                if (gomoryAction==5) {
     5869                  gomoryAction=4;
     5870                  int numberColumns = lpSolver->getNumCols();
     5871                  gomoryGen.setLimitAtRoot(numberColumns);
     5872                  gomoryGen.setLimit(numberColumns);
     5873                }
    58645874                babModel_->addCutGenerator(&gomoryGen,translate[gomoryAction],"Gomory");
    5865                 switches[numberGenerators++]=-1;
     5875                switches[numberGenerators++]=0;
    58665876              }
    58675877              if (knapsackAction) {
     
    70167026                   says -miplib
    70177027                */
    7018                 CbcClpUnitTest(model_, dirMiplib, false);
     7028                int extra1 = parameters_[whichParam(EXTRA1,numberParameters_,parameters_)].intValue();
     7029                CbcClpUnitTest(model_, dirMiplib, extra1==1);
     7030                babModel_=NULL;
    70197031                return 777;
    70207032              } else {
  • trunk/Cbc/src/CoinSolve.cpp

    r820 r822  
    251251  // initialize
    252252  control.fillValuesInSolver();
     253#ifdef COIN_HAS_ASL
    253254  addAmplToCbc(&control);
     255#endif
    254256  return control.solve (argc, argv, 1);
    255257}
Note: See TracChangeset for help on using the changeset viewer.