Changeset 1046


Ignore:
Timestamp:
Jan 8, 2014 7:56:24 AM (6 years ago)
Author:
pbelotti
Message:

option to disable lifting product cut. Merged patch for integerRank. Merged fix for exprPow. Updated externals

Location:
branches/CouenneClassifier
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/CouenneClassifier

    • Property svn:externals
      •  

        old new  
        1 BuildTools  https://projects.coin-or.org/svn/BuildTools/releases/0.7.4/
        2 ThirdParty/ASL  https://projects.coin-or.org/svn/BuildTools/ThirdParty/ASL/releases/1.2.3/
         1BuildTools  https://projects.coin-or.org/svn/BuildTools/releases/0.7.14/
         2ThirdParty/ASL  https://projects.coin-or.org/svn/BuildTools/ThirdParty/ASL/releases/1.2.15/
        33ThirdParty/Blas  https://projects.coin-or.org/svn/BuildTools/ThirdParty/Blas/releases/1.2.2/
        4 ThirdParty/HSL  https://projects.coin-or.org/svn/BuildTools/ThirdParty/HSL/releases/1.3.3/
         4ThirdParty/HSL  https://projects.coin-or.org/svn/BuildTools/ThirdParty/HSL/releases/1.3.6/
        55ThirdParty/Lapack  https://projects.coin-or.org/svn/BuildTools/ThirdParty/Lapack/releases/1.3.3/
        6 ThirdParty/Mumps  https://projects.coin-or.org/svn/BuildTools/ThirdParty/Mumps/releases/1.4.4/
        7 ThirdParty/Metis  https://projects.coin-or.org/svn/BuildTools/ThirdParty/Metis/releases/1.2.3/
        8 ThirdParty/SoPlex  https://projects.coin-or.org/svn/BuildTools/ThirdParty/SoPlex/stable/1.2
         6ThirdParty/Mumps  https://projects.coin-or.org/svn/BuildTools/ThirdParty/Mumps/releases/1.4.12/
         7ThirdParty/Metis  https://projects.coin-or.org/svn/BuildTools/ThirdParty/Metis/releases/1.2.9/
         8ThirdParty/SoPlex  https://projects.coin-or.org/svn/BuildTools/ThirdParty/SoPlex/releases/1.2.5/
        99ThirdParty/SCIP  https://projects.coin-or.org/svn/BuildTools/ThirdParty/SCIP/trunk
        1010CoinUtils  https://projects.coin-or.org/svn/CoinUtils/releases/2.8.8/CoinUtils
         
        1313Clp  https://projects.coin-or.org/svn/Clp/releases/1.14.8/Clp
        1414Osi  https://projects.coin-or.org/svn/Osi/releases/0.105.7/Osi
        15 Ipopt  https://projects.coin-or.org/svn/Ipopt/releases/3.10.3/Ipopt
         15Ipopt  https://projects.coin-or.org/svn/Ipopt/releases/3.10.4/Ipopt
        1616Bonmin  https://projects.coin-or.org/svn/Bonmin/releases/1.5.3/Bonmin
  • branches/CouenneClassifier/Couenne/src/bound_tightening/boundTightening.cpp

    r989 r1046  
    2424using namespace Couenne;
    2525
    26 bool Couenne::exprPow::disable_pow_tightening  = false;
    27 bool Couenne::exprMul::disable_mul_tightening  = false;
    28 bool Couenne::exprMul::disable_mul_linearizing = false;
     26// static members of expr{Pow,Mul} (see their classes for meaning)
     27
     28bool Couenne::exprPow::disable_pow_tightening         = false;
     29bool Couenne::exprMul::disable_mul_tightening         = false;
     30bool Couenne::exprMul::disable_mul_linearizing        = false;
     31bool Couenne::exprMul::disable_mul_lifted_linearizing = false;
    2932
    3033// core of the bound tightening procedure
  • branches/CouenneClassifier/Couenne/src/bound_tightening/operators/impliedBounds-exprPow.cpp

    r989 r1046  
    124124      }
    125125
    126       if (lb > 0. || k > 0.) resL = updateBound (-1, l + index, safe_pow (lb, 1./k, issignpower_));
     126      if ((lb > 0. || k > 0.) &&
     127          (sign != expression::AUX_GEQ))
     128        resL = updateBound (-1, l + index, safe_pow (lb, 1./k, issignpower_));
    127129
    128       if ((fabs (ub) < COUENNE_INFINITY) && (ub > 0 || k > 0.))
     130      if ((fabs (ub) < COUENNE_INFINITY) &&
     131          (ub > 0 || k > 0.) &&
     132          (sign != expression::AUX_LEQ))
    129133        resU = updateBound (+1, u + index, safe_pow (ub, 1./k, issignpower_));
    130134      //else                  resU = updateBound (+1, u + index, COUENNE_INFINITY);
  • branches/CouenneClassifier/Couenne/src/convex/generateCuts.cpp

    r945 r1046  
    119119     (CoinCpuTime () > problem_ -> getMaxCpuTime ()))
    120120    return;
     121
     122#if 0
     123  if (info.pass == 0) {
     124    const double
     125      *lb = si.getColLower (),
     126      *ub = si.getColUpper ();
     127    //printf ("BZ%.0f", log(1 + (double)info.level)/log(10));
     128    printf ("BZ%d", info.level);
     129    for (int i=3; i < 203; ++i)
     130      if      (lb [i] >     .01) printf ("#");
     131      else if (ub [i] < 1 - .01) printf (" ");
     132      else                       printf ("|");
     133    //printf (" %.0f %.0f %.0f\n",
     134    printf (" %g %g %g\n",
     135            CoinMax (-lb [0], ub [0]),
     136            CoinMax (-lb [1], ub [1]),
     137            CoinMax (-lb [2], ub [2]));
     138  }
     139#endif
    121140
    122141#ifdef FM_TRACE_OPTSOL
  • branches/CouenneClassifier/Couenne/src/convex/operators/unifiedProdCuts.cpp

    r811 r1046  
    188188    }
    189189  } else
    190     if (cg -> Problem () -> MultilinSep () == CouenneProblem::MulSepTight)
     190    if ((cg -> Problem () -> MultilinSep () == CouenneProblem::MulSepTight) &&
     191        !(Couenne::exprMul::disable_mul_lifted_linearizing))
    191192      upperEnvHull (cg, cs,
    192193                    xi, x0, xl, xu,
  • branches/CouenneClassifier/Couenne/src/expression/operators/CouenneExprMul.hpp

    r989 r1046  
    9898  static bool disable_mul_tightening;
    9999  static bool disable_mul_linearizing;
     100  static bool disable_mul_lifted_linearizing;
    100101
    101102protected:
  • branches/CouenneClassifier/Couenne/src/main/BonCouenne.cpp

    r981 r1046  
    216216    double st=-1;
    217217
    218     if (cg) cg -> getStats (nr, nt, st);
     218    if (couenne. couennePtr ()) couenne. couennePtr () -> getStats (nr, nt, st);
     219    //if (cg) cg -> getStats (nr, nt, st);
    219220    else printf ("Warning, could not get pointer to CouenneCutGenerator\n");
    220221
  • branches/CouenneClassifier/Couenne/src/main/BonCouenneSetup.cpp

    r996 r1046  
    280280  /// Weakening Couenne
    281281
    282   options () -> GetStringValue ("disable_pow_tightening",  s, "couenne."); Couenne::exprPow::disable_pow_tightening  = (s == "yes");
    283   options () -> GetStringValue ("disable_mul_tightening",  s, "couenne."); Couenne::exprMul::disable_mul_tightening  = (s == "yes");
    284   options () -> GetStringValue ("disable_mul_linearizing", s, "couenne."); Couenne::exprMul::disable_mul_linearizing = (s == "yes");
     282  options () -> GetStringValue ("disable_pow_tightening",         s, "couenne."); Couenne::exprPow::disable_pow_tightening         = (s == "yes");
     283  options () -> GetStringValue ("disable_mul_tightening",         s, "couenne."); Couenne::exprMul::disable_mul_tightening         = (s == "yes");
     284  options () -> GetStringValue ("disable_mul_linearizing",        s, "couenne."); Couenne::exprMul::disable_mul_linearizing        = (s == "yes");
     285  options () -> GetStringValue ("disable_mul_lifted_linearizing", s, "couenne."); Couenne::exprMul::disable_mul_lifted_linearizing = (s == "yes");
    285286
    286287  // Add Couenne SOS ///////////////////////////////////////////////////////////////
     
    410411        //    (var -> Image () -> Linearity () > LINEAR))) {              // of nonlinear
    411412
     413        //int ind = var -> Index ();
     414        //bool isOutLier    = (contObjPriority == 997) &&  ((ind >= 103 && ind <= 107) || (ind >= 198 && ind <= 202));
     415        //bool isNotOutLier = (contObjPriority == 996) &&                 (ind >  107) || (ind <  198);
     416
    412417        objects [nobj] = new CouenneVarObject (couenneCg, couenneProb_, var, this, journalist (), varSelection);
    413         objects [nobj++] -> setPriority (var -> isInteger () ? intObjPriority : contObjPriority);
     418        objects [nobj++] -> setPriority
     419          //isOutLier    ? CoinMin (intObjPriority, contObjPriority) - 1 :
     420          // isNotOutLier ? CoinMin (intObjPriority, contObjPriority) - 1 :
     421          (var -> isInteger () ? intObjPriority : contObjPriority);
    414422        //objects [nobj++] -> setPriority (contObjPriority + var -> rank ());
    415423      }
  • branches/CouenneClassifier/Couenne/src/problem/CouenneProblem.cpp

    r937 r1046  
    179179
    180180  integerRank_ = new int [nvars];
     181
     182  CoinZeroN (integerRank_, nvars);
    181183
    182184  // 0: fractional
  • branches/CouenneClassifier/Couenne/src/problem/problem.cpp

    r989 r1046  
    532532     "hier-bi", "Hierarchical decomposition: x5 = ((x1 x2) (x3 x4))");
    533533
    534   roptions -> AddStringOption2 ("disable_pow_tightening",  "Futile attempt to weaken Couenne's power bound tightening to throw a bone to Cplex", "no", "yes", "OK, if you really have to...", "no", "That's better.");
    535   roptions -> AddStringOption2 ("disable_mul_tightening",  "Futile attempt to weaken Couenne's product bound tightening to throw a bone to Cplex", "no", "yes", "OK, if you really have to...", "no", "That's better.");
    536   roptions -> AddStringOption2 ("disable_mul_linearizing", "Futile attempt to weaken Couenne's product linearization (McCormick's inequalities) to throw a bone to Cplex", "no", "yes", "OK, if you really have to...", "no", "That's better.");
    537 }
     534  roptions -> AddStringOption2 ("disable_pow_tightening",         "Futile attempt to weaken Couenne's power bound tightening to throw a bone at MILP solvers",                           "no", "yes", "OK, if you really have to...", "no", "That's better.");
     535  roptions -> AddStringOption2 ("disable_mul_tightening",         "Futile attempt to weaken Couenne's product bound tightening to throw a bone at MILP solvers",                         "no", "yes", "OK, if you really have to...", "no", "That's better.");
     536  roptions -> AddStringOption2 ("disable_mul_linearizing",        "Futile attempt to weaken Couenne's product linearization (McCormick's inequalities) to throw a bone at MILP solvers", "no", "yes", "OK, if you really have to...", "no", "That's better.");
     537  roptions -> AddStringOption2 ("disable_mul_lifted_linearizing", "Futile attempt to weaken Couenne's lifted product linearization to throw a bone at MILP solvers",                     "no", "yes", "OK, if you really have to...", "no", "That's better.");
     538}
Note: See TracChangeset for help on using the changeset viewer.