Ignore:
Timestamp:
Oct 18, 2010 9:43:18 PM (10 years ago)
Author:
pbelotti
Message:

fix linearization bug with w <= x/y auxiliary variables. Fixing misunderstanding between two-implied and bounds. Improving output stats. Making sparse structure for bt unsigned (one less check).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Couenne/src/main/BonCouenne.cpp

    r424 r425  
    166166    couenne.options () -> GetNumericValue ("couenne_check", global_opt, "couenne.");
    167167
     168    double
     169      ub = bb.model (). getObjValue (),
     170      lb = bb.model (). getBestPossibleObjValue ();
     171
     172    char *gapstr = new char [80];
     173
     174    sprintf (gapstr, "%.2f%%", 100. * (ub - lb) / (1. + fabs (lb)));
     175
    168176    jnlst -> Printf (J_ERROR, J_COUENNE, "\n\
    169177Linearization cuts added at root node:   %8d\n\
     
    171179Total solving time:                      %8gs (%gs in branch-and-bound)\n\
    172180Lower bound:                           %10g\n\
    173 Upper bound:                           %10g  (gap: %.2f%%)\n\
     181Upper bound:                           %10g  (gap: %s)\n\
    174182Branch-and-bound nodes:                  %8d\n\n",
    175183                     nr, nt, st,
    176184                     CoinCpuTime () - time_start,
    177185                     cg ? (CoinCpuTime () - cg -> rootTime ()) : CoinCpuTime (),
    178                      bb.model (). getBestPossibleObjValue (),
    179                      bb.model (). getObjValue (),
    180                      100. * (bb.model (). getObjValue () -
    181                              bb.model (). getBestPossibleObjValue ()) / (1. + fabs (bb.model (). getBestPossibleObjValue ())),
     186                     lb,
     187                     ub,
     188                     (ub > COUENNE_INFINITY/1e4) ? "inf" : gapstr,
    182189                     bb.numNodes ());
     190
     191    delete [] gapstr;
    183192
    184193    if (global_opt < COUENNE_INFINITY) { // some value found in couenne.opt
Note: See TracChangeset for help on using the changeset viewer.