|
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
Input: Integer Program IP; SetOfLP = Linear Relaxation of IP; Z* = NULL; while ( SetOfLP ≠ empty ) { LP1 = pick an arbitrary LP from SetOfLP; Solve LP1 with Simplex Method: Max1 = optimum value of LP1 Sol1 = solution values of the variables if ( LP1 is infeasible ) { delete LP1 from SetOfLP; // Bound heuristic 1 } else if ( Z* ≠ NULL && Max1 ≤ Z* ) { delete LP1 from SetOfLP; // Bound heuristic 2 } else if ( Sol1 has only integer values ) { if ( Max1 > Z* ) Z* = Max1; // Better incumbent solution found ! delete LP1 from SetOfLP; // Bound heuristic 3 } else { /* =============================== Apply "branch" heuristic =============================== */ Select a variable xk that has a non-integer solution value; Replace LP1 in SetOfLP with 2 derived LP programs: LP1-A: add a constraint "xk ≤ roundDownValue" LP1-A: add a constraint "xk ≥ roundUpValue" } } |
|