[Coin-symphony] Question: branch close to one

Ted Ralphs tkralphs at lehigh.edu
Sun Feb 20 17:03:59 EST 2005


Francois,

This helper function only works for 0/1 problems because in this loop in 
branch_close_to_one_and_cheap():

    for (i = lp_data->n-1; i >= 0; i--){
       if (x[i] > lpetol && x[i] < lpetol1){
      xind[cnt] = i;
      xval[cnt++] = 1 - x[i];
       }
    }

SYMPHONY is calculating the difference between "1" and the current value 
of each variable. This difference doesn't have meaning in problems that 
are not 0/1. It would be easy to generalize this function to calculate 
the differences between either (1) each variable's upper bound and its 
current value or (2) the ceiling of each variable's current value and 
its current value. I can do this easily if it helps. But which option, 
(1) or (2), makes the most sense? I'm not sure this general approach to 
branching will really work for non-combinatorial problems. But I'm happy 
to generalize it in whichever way will help or provide other helper 
functions that do the type of branching you need.

Cheers,

Ted
-- 
Dr. Ted Ralphs
Assistant Professor
Industrial and Systems Engineering
Lehigh University
(610)758-4784
tkralphs at lehigh.edu
www.lehigh.edu/~tkr2



More information about the Symphony mailing list