Sandia is a ultiprogra laboratory operated by Sandia Corporation, a Lockheed Martin Copany, Reconnect 04 Solving Integer Progras with Branch and Bound (and Branch and Cut) Cynthia Phillips (Sandia National Laboratories) One ore general branch and bound point Node selection: when working in serial, how do you pick an active node to process next? Usual: best first Select the node with the lowest lower bound With the current incubent and solution tolerances, you will have to evaluate it anyway If you don t have a good incubent finder, you ight start with diving: Select the ost refined node Once you have an incubent, switch to best first for the United States Departent of Energy under contract DE-AC04-94AL85000. Slide 2 Mixed-Integer prograing (IP) Min c T x Subject to: Ax = b l x u x = (x I,x C ) x I Z n (integer values) x C Q n (rational values) Branch and Bound Bounding function: solve LP relaxation Branching Select an integer variable x i that s fractional in the LP solution x* * Up child: set x i x i * Down child: set x i x i x* is no longer feasible in either child Incubent ethod any incubent-finding ethods to follow in later lectures Obvious: return the LP solution if it is integer Satisfies feasibility-tester constraint Slide 3 Slide 4
Solving Integer Progras: Branch and Bound Branching Decisions: One ethod x i Root Proble = original x i Which candidate variable (of thousands or ore choices) to choose? Use structural insight (user priorities) when possible. Use gradients (pseudocosts): x j x j x k x k bound 12 x j.3 x j 15 13.4 x j fathoed infeasible Down: 15 12 13.4 12 0 Up = 0.3 1 0.3 = 2 Lower bound: LP relaxation Slide 5 Slide 6 Using gradients Use gradients to copute an expected bound oveent for each child Up = up gradient * upward round distance Down = down gradient * downward round distance Try to find a variable for which both children ight ove the bound Initialization When a variable is fractional for the first tie, intialize by pretending to branch (better than using an average) Branch Variable Selection ethod 2: Strong Branching Try out interesting subprobles for a while Could be like a gradient initialization at every node Could copute part of the subtree This can be expensive, but soeties these decisions ake a huge difference (especially very early) Slide 7 Slide 8
Branching on constraints Can have one child with new constraint: a T x b 1 and the other with new constraint: a T x b 2 Must cover the subregion Pieces can be oitted, but only if provably have nothing potentially optial Node bounds are just a special case More generally, partition into any children Special Ordered Sets (SOS) Models selection: y i i y i { 0,1} Exaple: tie-indexed scheduling x jt if job j is scheduled at tie t Ordered by tie a T x b 1, b 2 a T x b 3, K, b k 1 x b k Slide 9 Slide 10 Special Ordered Sets: Restricted Set of Values (Review) Variable x can take on only values in Frequently the v i are sorted { v 1,v 2,Kv } Capacity of an airplane assigned to a flight x = v i y i i y i i y { 0,1} Probles with Siple Branching on SOS Generally want both children to differ fro parent substantially For SOS The up child (setting a variable to 1) is very powerful All others in the set go to zero The down child will likely have an LP solution = parent s Schedule at any of these 1000 ties except this one The y i s are a special ordered set. Slide 11 Slide 12
Special Ordered Sets: Weak Down-Child Exaple Variable x can take on only values in Plane capacities, values {50,100,200} x = v i y i i y i i y { 0,1} { v 1,v 2,Kv } If v2=0 (can t use capacity 100), fake a 100-passenger plane by using 2 3 x + 1 1 3 x 3 Branching on SOS Set variables Partition about an index i: Up child has Down child has x j Exaples: { x 1,x 2,K x } x j j= i+1 i j x j j Schedule job j before/after tie t Use a plane of capacity at least/at ost s Slide 13 Slide 14 Branching on SOS Good choice for partition point i is such that as nearly as possible i Postponing Branching Branching causes exponential growth of the search tree Is there a way to ake progress without branching? x j = x j j j= i+1 2 Can copute gradients as with siple variable branching This is not general branching on a constraint: just setting ultiple variable upper bounds siultaneously Slide 15 Slide 16
Strengthen Linear Progra with Cutting Planes Exaple: Maxiu Independent Set Integer optial Slide 17 Original LP Feasible region Cutting plane (valid inequality) Make LP polytope closer to integer polytope LP optial solution Use failies of constraints too large to explicitly list Exponential, pseudopolynoial, polynoial (n 4, n 5 ) Slide 18 2 5 3 6 1 if vertex i is in the MIS v i = 0 otherwise ax 1 4 v i s.t. v i + v j 1 ( i, j) E 7 Exaple: Soe Maxiu Independent Set Cutting Planes Value of a Good Feasible Solution Found Early 1 4 Root Proble = original 2 3 7 x i x i 5 6 x j x j x k x k v i + v j + v k 1 triangles i, j, k More general clique inequalities (keep going till they re too hard to find) fathoed infeasible Siulate seeding with optial (coputation is a proof of optiality) Note: proof of optiality depends on a good LP relaxation Slide 19 Slide 20
Solving Subproble LPs Quickly Linear Prograing Geoetry The LP relaxation of a child is usually closely related to its parent s LP Exploit that siilarity by saving the parent s basis Optial point of an LP is at a corner (assuing bounded) c T x = opt feasible c T x = - Slide 21 Slide 22 Linear Prograing Algebra Linear Prograing Algebra What does a corner look like algebraically? Ax=b Partition A atrix into three parts B L U where B is nonsingular (invertible, square). Reorder x: (x B, x L, x U ) We have Bx B + Lx L + Ux U = b We have Bx B + Lx L + Ux U = b Set all ebers of x L to their lower bound. Set all ebers of x U to their upper bound. Let b = b Lx L Ux U (this is a constant because bounds land u are) Thus we have Bx B = b Set x B = B 1 b This setting of (x B, x L, x U ) is called a basic solution A basic solution satisfies Ax=b by construction If all x B satisfy their bounds ( l B x B u B ), this is a basic feasible solution (BFS) Slide 23 Slide 24
Basic Feasible Solutions Algebra and Geoetry We have Bx B + Lx L + Ux U = b Set all ebers of x L to their lower bound. Set all ebers of x U to their upper bound. Let b = b Lx L Ux U (this is a constant because bounds land u are) Set x B = B 1 b In the coon case l, u = (x 0), we have b = b, x U =, x L = N x B are basic variables, N are nonbasic (x L are nonbasic at lower, x U are nonbasic at upper) A BFS corresponds to a corner of the feasible polytope: Ax b inequality constraints (plus bounds) and n variables. Polytope in n- diensional space. A corner has n tight constraints. With slacks Ax + Ix S = b equality constraints (plus bounds) in n+ variables. A BFS has n tight bound constraints (fro the nonbasic variables). Slide 25 Slide 26 Dual LP Prial/Dual Pair (Siplified) prial LP proble is iniize c T x such that Ax b x 0 Prial feasible The dual proble is: axiize y T b such that ya c y 0 dual(dual(prial)) = prial Frequently has a nice interpretation (ax flow/in cut) Opt Dual feasible Slide 27 Slide 28
Parent/Child relationship (intuition) Parent optial pair (x*,y*) Branching reduces the feasible region of the child LP with respect to its parent and increases the dual feasible region y* is feasible in the child s dual LP and it s close to optial Resolving the children using dual siplex, starting fro the parent s optial basis can be at least an order of agnitude faster than starting fro nothing. Note: Basis can be big. Sae space issues as with knapsack exaple. Slide 29