Optimization (168) Lectures on Integer Programming Jesús De Loera UC Davis, Mathematics Wednesday, April 2, 2012 1 MAX FLOWS/ MIN CUTS 2 This problem is a network problem with CAPACITIES ON ARCS!! 3 4 5 6 7 8 9 INTEGER PROGRAMMING 10 LAST EPISODE... We saw that NETWORK FLOW PROBLEMS are special linear programs with INTEGER OPTIMAL SOLUTIONS!!! These are examples of easy integer programs. Unfortunately not all linear programs have these property: For example Stable set problem or Independent set problem: In an independent set, no two vertices are adjacent! These has a formulation with a variable xi for each node max ∑ xi i xi + xj ≤ 1 for each arc (i,j) xi ≥ 0 xi ≤ 1 11 LAST EPISODE... We saw that NETWORK FLOW PROBLEMS are special linear programs with INTEGER OPTIMAL SOLUTIONS!!! These are examples of easy integer programs. Unfortunately not all linear programs have these property: For example Stable set problem or Independent set problem: In an independent set, no two vertices are adjacent! These has a formulation with a variable xi for each node max ∑ xi i xi + xj ≤ 1 for each arc (i,j) xi ≥ 0 xi ≤ 1 11 If we solve LP without integer constraints and get integer valued result, the result is the correct ine. In this case we say that LP is tight, or LP is integral. Rarely the case!!! Look at this sample KEY IDEA NUMBER 1 Why not add some new linear inequalities and inequalities that get rid of the bad fractional solutions?? EXAMPLE: For the nodes that belong to an odd cycle C ∑ xi ≤ i ∈C |C | − 1 2 12 KNAPSACK PROBLEMS We have n computer files. File i has wi bytes and it takes ci minutes to recompute it! You only have K available bytes of memory storage. We want to store the most files possible so that we save the most minutes of recomputation! We cannot store parts of a file. It is all or nothing of it. We can formulate this as an integer linear program with binary decision variables: Suppose xi is a variable that equals 1 or 0 depending on whether we take file i or not. max ∑ ci xi max i n ∑ wi xi ≤ K ∑ ci xi i n ∑ wi xi ≤ K i =1 i =1 xi ∈ {0, 1} 0 ≤ xi ≤ 1 13 KNAPSACK PROBLEMS We have n computer files. File i has wi bytes and it takes ci minutes to recompute it! You only have K available bytes of memory storage. We want to store the most files possible so that we save the most minutes of recomputation! We cannot store parts of a file. It is all or nothing of it. We can formulate this as an integer linear program with binary decision variables: Suppose xi is a variable that equals 1 or 0 depending on whether we take file i or not. max ∑ ci xi max i n ∑ wi xi ≤ K ∑ ci xi i n ∑ wi xi ≤ K i =1 i =1 xi ∈ {0, 1} 0 ≤ xi ≤ 1 13 Facility Location Problem We have n potential locations for facilities (e.g., cell phone towers antenna, police stations) and m costumers need to be serviced from those locations. There is a cost of cj for opening facility j. There is a cost dij associated with serving costumer i from facility j. Again we use binary decision variables yj and xij where yj is 1 if facility j is open, 0 otherwise. xij is 1 if customer i is served by facility j, 0 otherwise. This model can be relaxed to a LINEAR program. We again fractional solutions!! 14 Traveling Salesman? 15 HOW TO SOLVE AN INTEGER PROGRAM?? 16 When we have an ILP we normally just solve the LP and hope for the best!!! But often 17 this is just a fractional solution!!! We are trying to trim out the FAT!!! BRANCH AND BOUND TECHNIQUE 18 19 The key idea is that we can generate subproblems that give more and more information from their LP solutions we get better and better bounds. At each node we can separate into the possible roundings of a fractional variable into two nodes. We start generating a branching tree, which is a binary tree (two children per node). If we find an integer solution the search ends we have found an upper bound to the optimum. As we proceed each LP node provides lower bounds for the subtree below it. 20
© Copyright 2025 Paperzz