# Solving Mixed Integer Linear Programs Using Branch and Cut Algorithm

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 1 Solving Mixed Integer Linear Programs Using Branch and Cut Algorithm by Shon Albert A Project Submitted to the Graduate Faculty of North Carolina State University in Partial Fulfillment of the Requirements for the Degree of MASTERS OF MATHEMATCS Major Subject: Mathematics

2 Acknowledgment I would like to thank Dr. Kartik Sivaramakrishnan for his assistance with the project. His knowledge, time, and Branch and Bound code were pertinent to my research. 2

3 ABSTRACT Mixed Integers Linear Programs maximize a linear objective function subject to linear inequalities and integrality constraints on some of the variables. This thesis studies how Mixed Integer Linear Programs are solved using a computer implementation of a Branch and Cut Algorithm. A Branch and Cut Algorithm combines the advantages of a pure Branch and Bound Scheme and Gomory Cutting Planes Scheme. Branch and Cut should be faster than Branch and Bound alone. We illustrate the effectiveness of the algorithm with a couple test examples. 3

4 CHAPTER 1 Mixed Integer Linear Programming 1.1 Introduction Linear Programming (LP) is concerned with maximizing or minimizing an equation over certain criteria or constraints. One simple example might look like the following: max : z = 3x 1 x 2 + 5x 3 such that x 1 + 2x 2 4x 3 7 7x 1 5x 2 x 3 2 x 1 + 3x 2 + 9x 3 13 x i 0, i = 1,..., 3 (1.1) This problem can be solved using the Revised Simplex Method (see section 1.7) or Dual Simplex Method (see section 1.8) to find a solution of: x = (x 1, x 2, x 3 ) = (0.5, 0, 1.5) Problems like these are used throughout businesses to minimize waste, maximize profit, or optimize other aspects of business. However some parts of the solution may be restricted to integers, x Z +. Mixed Integer Linear Programs are LP s which require some or all of the variables to be integers. In example (1.1), if x 3 represented cases of product sold, this would present a problem since a company can t ship partial cases. Simply rounding the solution will often comprimise the optimality and the rounded solution may not be in the feasible region. One way to solve MILPs is to enumerate all the integer solutions in the feasible region and individually check each one for optimality. However as the dimensions of the problem, n, grows, enumeration becomes NP hard, meaning the number of feasible integer solutions grow exponentially. Instead of growing by order of some 1

5 2 polynomial, p(x) = ax n + bx n ex 0, the enumeration will grow by order p(x) = s x for some function s. For more information on enumeration of solutions see Wolsey [3] section 1.4. Even though MILPs can not be solved simply using the Revised or Dual Simplex Method both of these methods must be used in the process of solving MILPs. 1.2 Techniques for Solving MILP MILPs are very hard to solve, however there are two methods we can use that will return x Z +. One method is involves using Cutting Planes. The goal of cutting planes is to cut out a chunk of the feasible region based on information from the optimal LP dictionary. The other technique is called Branch and Bound, which is a recursive process using intelligent numeration 1.3 Contribution of the Project While Cutting Planes can be solved very fast, the process can be unreliable. On the other hand Branch and Bound is very reliable but can be extremely slow. Our contribution to the subject is to show that combining these two techniques to solve large instance MILPs is more efficient than using solely Branch and Bound. The goal is to first make a couple of cuts using Gomory Cutting Planes, then solve the remaining MILP using Branch and Bound. If done correctly in large instances, this algorithm should be more efficient than Branch and Bound alone. 1.4 Solving MILP Using Branch and Bound The problem with solving MILPs using the Revised Simplex Method is that it often returns parts of x = (x 1, x 2,... x n ) that are not in integer form as is the case in the earlier example(1.1). There are several methods we can use to find x Z +, one of which is called the Branch and Bound Method. To solve using Branch and Bound we first solve the problem with Relaxation, which means we solve it using the Revised Simplex as if there were no integer restrictions. From this we obtain z: z = cx

6 3 This is an upperbound on the MILP since we are maximizing over a larger set that encompasses all the integer solutions. Next we pick a noninteger variable and branch on it. Most commonly we branch on the most fractional variable, the one closest to half way between its floor and ceiling, or furthest from a whole integer. If branching on most fractional we pick ˆx j : ˆx j such that j =min[i : 1 (x(i) x(i) ) ] for i = 1... n 2 For example if x = (1.25, 3.45, 2.75, 5) We would branch on x 2 because.45 is closer to 1 2 than (.25,.75, 0). By branching on a variable, we take the root problem and create two subproblems, or nodes. In this example, In one node we add the constraint: x 2 3. In the other node we add the constraint x 2 4. Let S be the feasible solution set of the LP relaxation: S = {x : Ax b and x 0}, we now have: S 1 = S {x : x j ˆx j } S 2 = S {x : x j ˆx j } From here each of the branches must be solved and and checked for optimality. After solving the original system and branching on the first variable, we set bounds z = and z = c T x where x is optimal in LP relaxation. Each created node is eventually either branched or pruned. A node can be pruned in the following different ways, optimality, bounds, and infeasibilty. We continue to solve the problem in the following manner: STEP 1: Infeasibility Pick a node and solve it with the Dual Simplex Method with updated constraints. If the Dual Simplex is unbounded then the problem is infeasible and the node is prunned by infeasibility. This occurs when the new constraint disagrees with

7 4 constraints already established STEP 2: Optimality/Bounds We now check for bounds and optimality. If z = cx for x, the solution to the Dual Simplex and z > z then we set z = z, and this is our new lowerbound. This node is now pruned by optimality since it is currently the best solution to the MILP. If z z then this is worse than our lowerbound, and this node is prunned by bounds STEP 3 : Branching If x is not in integer form then we branch on the variable that is most fractional STEP 4 : Repeat Pick a new node and repeat starting on STEP 1, Until all nodes are pruned, at which time the node associated with the lowerbound z is optimal. 1.5 Example For illustration, consider the following problem max z = 4x 1 x 2 s.t. 7x 1 2x x 1 + x 2 3 (1.2) 2x 1 2x 2 3 x i Z + 0, i = 1, 2 Let S be the feasible solution set of the LP relaxation: S = {x : Ax b and x 0}. Solving the LP relaxation using the Revised Simplex Method, we obtain z = 59 7 with x = ( 20 7, 3). We set z =. Since only x 1 is fractional this is the variable that we branch on. Now we have: S 1 = S {x : x } = S {x : x 1 2} S 2 = S {x : x } = S {x : x 1 3}

8 5 And our branch tree look like this: Now we have to choose a node to work on first. Pick S 1. We add the constraint x 1 2 to the system S. S 1 = S {x : x 1 2} After two iterations in the Dual Simplex Method we get x = (2, 1 ). Since this 2 is not in integer form we once again branch, this time on x 2. so we have: S 11 = S 1 {x : x 2 = 0} S 12 = S 1 {x : x 2 1}

9 6 And our tree looks like There are three nodes left and many strategies as to how to pick them, arbitrarily we pick S 2. We add the constraint x 1 3. However we have a contradiction with the constraints. we know 7x 1 2x 2 14, so 21 2x 2 14 since 21 2x 2 7x 1 2x 2 14 this implies that x 2 7, which contradicts the second 2 constraint of the problem: x 2 3. The Dual Simplex Method returns the problem as infeasible and we can prune this node by infeasibility. The two nodes remaining are S 11 and S 12. Choosing S 12, the DSM returns an optimal solution of x = (2, 1) and z = 7. We compare z to z. Since z > z this node is prunned by optimality and we now set z = 7 and pick a new node. The only remaining node is S 11. DSM returns x = ( 3, 0) with z = 6. Since 2 z < z this node is prunned by bounds. The node list is now empty and the problem is finished with the optimal solution of x = (2, 1) and z = 7. Our final branch tree is:

10 7 1.6 Gomory Cutting Planes Adding Cutting Planes to the system is another good way to solve MILPs. Cutting Planes are very fast but can be an unstable method(see Wolsey [3] chapter 8). The idea of cutting planes is cut out chunks of the feasible region based on information from the optimal dictionary. First we solve the relaxation in the RSM. We now look at the information from the optimal dictionary and from here we are able to deduce an inequality that will cut out a piece of the feasible region, then we add the new cut to the system and reoptimize using the DSM. This process is repeated until the required variables are integers. One specific type of Cutting Plane is Gomory Cuts, which are made in the following manner if v = x B(i) is basic and noninteger then we look at its information in the optimal dictionary: x B(i) + bx N(j) + cx N(k) ex N(l) = v v so: All x N are nonbasic. Since v is noninteger we know that: x B(i) v so x B(i) bx N(j) + cx N(k) ex N(l) v v

11 8 We can add this inequality to the system and reoptimize in DSM. Repeat until x Z + For illustration consider the same example using Gomory Cuts: Example max z = 4x 1 x 2 s.t. 7x 1 2x 2 14 x 2 3 2x 1 2x 2 3 x i Z + 0, i = 1, 2 (1.3) After solving the relaxation in the RSM we get the solution optimal solution x = ( 20, 3, 0, 0, 23 ). The optimal dictionary is: 7 7 x x x 4 = 20 7 x 2 +x 4 = x x 4 +x 5 = 23 7 Since x x x 4 = 20 7 is fractional, we add the cut: 1 3 x x 4 6 7, and call it s: s = x x 4 After adding this cut to the system{c, A, b, x}, we reoptimize using the DSM which returns x = (2, 1 2, 1, 5 2, 0), since x 2 is noninteger we look at the dictionary. x 1 +s = 2 x x 5 +s = 1 2 x 3 x 5 5s = 1 x x 5 +6s = 5 2 We now add the cut based on information in row 2 since we are dealing with x 2. We add the cut 1 2 x or t = x 5. After reoptimizing in the DSM we

12 9 arrive at the solution x = (2, 1, 2, 2, 1, 0, 0). This is completely integer and hence optimal for the MILP. Notice that x = (x 1, x 2 ) = (2, 1) is the same as when we solved this MILP with branch and bound. An advantage of Gomory Cutting Planes is they can produce solutions quickly on the computer without using a lot of memory. A disadvantage is large instances can can cause the algorithm to get stuck making a series of almost identical miniscual cuts, and can take a large number of iterations to solve. This will cause the system to become unstable. 1.7 Revised Simplex Method In order to solve the LP relaxation we must rely on the Revised Simplex Method, the algorithm of choice for solving ordinary LPs. RSM is conducted in the following manner: STEP 1:Initialization The first step is to initialize the problem. We begin by introducing slack variables. If ax 1 + bx 2 + cx 3 d then there exists a slack variable x 4 0 such that ax 1 + bx 2 + cx 3 + x 4 = d so x 4 = d ax 1 bx 2 cx 3 We add a slack variable for every constraint in the problem. For A m n there will be m new slack variables added to x and m new columns of A. After this Ax b can be rewritten:

13 10 [A I m m ] x 1. x n x n+1. = [b] x n+m c must also grow to account for the new variables in x, so we append m zeros to the tail of c since z will not depend on the slack variables. c = (c 1... c n, ) The Revised Simplex method needs a starting solution. Any x such that Ax = b works as long as x 0. An easy way to get a basic feasible solution is to set the slack variables equal to b: x 0 = ( m, b 1... b n ) This always satisfies Ax = b. We now seperate A into [A B A N ], where A B is the columns of A corresponding to what are called the basic variables. Basic variables are the parts of x not given to be zero. A N is the columns of A corresponding to the non basic variables. In the first iteration the basic variables are the slack variables, (x n+1,... x n+m ) since everything else in x is initialized to 0. So A B =[A n+1... A n+m ] and A N =[A 1... A n ] and still Ax=A B x B + A N x N = b STEP 2 Solve for A T By = c B then compute S N = C N A T Ny

14 11 If S N 0 then we declare optimality and are finished. If S N (i) > 0 for any i then we can improve the solution, z, by increasing one of the values of x. If i is the index equal to max S N (i) then x(i) acts as a pivot variable and changing it will have the most increasing affect on z. x(i) x N is called the entering nonbasic variable STEP 3 Solve A B d = A N for d, then compute θ = min [x B (i)/d(i)] such that d(i) > 0. Let θ = x B (l)/d(l) then x B (l) is the leaving basic variable. This must be switched with the entering nonbasic variable. By switching the nonbasic and basic variable, we, in a sense, slide the solution x by decreasing x B(l) to zero, and putting the slack created by this into S N(i). By doing so z is increased STEP 4 Now we update B and N, the list of basic and nonbasic variables, and then update x B in the following manner: x B = x B θd and x B (l) = θ Repeat Now go back to STEP 2 and repeat until S N 0 When S N 0 we are optimal and the solution x = (x 1, x 2,... x n ) where x is the first n variables of x, since the last m are slack and not required to be integer.

15 DUALITY The problem in standard form is: max z = cx such that Ax b for x nonegative. This is called the Primal LP. The Dual of the LP is motivated by finding an upperbound on the objective function. In order to solve the Dual we must invert the system. To do this we exchange the roles of the objective function and the right hand side constraints. A is transposed and instead of using primal variable x we use dual variable y. The dual is a minimization problem. The Primal LP becomes the Dual in the following manner: max s.t. c T x Ax b = min s.t. b T y A T y c Our first example would change in the following manner: max 3x 1 x 2 + 5x 3 min 7y 1 + 2y y 3 s.t. x 1 + 2x 2 4x 3 7 7x 1 5x 2 x 3 2 = s.t. y 1 + 7y 2 1y 3 3 2y 1 5y 2 + 3y 3 1 (1.4) x 1 + 3x 2 + 9x y 1 y 2 + 9y 3 5 All solutions to the dual are upperbounds on the primal. We minimize the dual to find the least upperbound. A two dimensional problem might look like this:

16 13 The primal and the dual arrive at the same solution, the dual just takes a backdoor method. The same way we can solve the problem using the Revised Simplex Method, we have the Dual Simplex Method. DSM is solved in a similar fashion to RSM. Steps to solve using the DSM can be found on pages( ) of Chvatal[1].

17 CHAPTER 2 Research and Results The goal of the project is to illustrate that combining Gomory Cutting Planes with the Branch and Bound method is faster than doing Branch and Bound alone. While Cutting Planes are fast they often get stuck causing the method to be unstable. Branch and Bound is stable but can take up to 2 n nodes to complete. Finding a more efficient means can prove to be valuable by saving the user time and the computer space. 2.1 Schematic for Branch and Cut algorithm In order to solve large order MILP problems I implemented 2 algorithms in MATLAB. Branch and Bound code was provided by Dr K. Sivaramakrishnan. To complement his code, I implemented the Gomory cutting scheme earlier described. The second code takes the original system S = {c, A, b, x} and passes through a limited number of Gomory Cuts and gets S G = {c G, A G, b G, x G } then passes this to Branch and Bound to finish solving the problem. 2.2 Implementation The Branch and Bound code solved all problems without error. However, large instance took a large number of nodes to complete. In order to compare the results I added a counter to indicate how many nodes were created. Since the Branch and Bound program is run recursively, the counter had to be implemented the same way. I added a command in each node that would return the following number to its root node: 1 : If Node is prunned Left node+ Right node+1 : If Node is branched I also implemented the Gomory Cutting Scheme (described section 1.6). Adding a counter in the Cutting Plane code was easier since the program just repeats 14

18 15 in a while loop. To allow the program to coincide with Branch and Bound, I added a command to break out of the program if iter itermax for some variable defined by the user itermax, and iter the number of cuts. Instead of the code returning just x and optimal solution z, it returns S G so the updated system can be used by branch and bound to finish solving the problem. The code used to implement the branch and cut scheme can be found at the following website kksivara/shon-codes 2.3 Computational Results The results were encouraging. In most of the large order problems running through Cut and Branch created less nodes in Branch and Bound than using Branch and Bound alone. Look at the following results Example 1 max z = 4x 1 x 2 s.t. 7x 1 2x 2 14 x 2 3 2x 1 2x 2 3 x i Z + 0, i = 1, 2 (2.1) When we solve this example using Branch and Cut we get the following results. (Cuts is number of iterations in the Cutting Plane method, Nodes is the number of nodes to complete Branch and Bound, and Total Nodes is the sum of Cuts and Nodes) Cuts N odes T otaln odes As we see, adding just one Cutting Plane reduces the number of nodes to solve in Branch and Bound from 7 to 5. While 2 nodes may seem miniscule it is still substantial considering that one cut reduced the number of node by 28 percent.

19 Example 2 Let n be odd. max z = x n+1 s.t.: 2x 1 + 2x x n + x n+1 n Look at the following results when n=9. Cuts N odes T otaln odes Pure Branch and Bound created a total of 251 nodes to solve. Even if it takes very little time to solve each node, there are a lot to solve. As we add in a cutting planes, the number of total number of nodes to solve the problem decreases rapidly Example 3 Let n be odd. max x n+1 s.t.: 2x 1 + 2x x n + x n+1 n This time let n be any odd integer. The following results show that as n grows, the number of nodes created to solve using Branch and Bound grows faster. (BaB is number of nodes in pure Branch and Bound, x cuts is the number of nodes created in Branch and Bound after making x Gomory Cuts)

20 17 n = BaB 1Cut 2Cuts 3Cuts 4Cuts Notice that as n grows the number of nodes in Branch and Bound grows by order of 2 n. While it may take a very short amount of time to solve a node in BaB, having 2 n nodes to solve will can take quite a while. Not only did adding cutting planes decrease the number of nodes in BaB, it equivalently reduced the problem to to a smaller one. If n=11 then it takes 923 nodes to solve. However adding one cutting plane reduces the number of nodes to 251, the exact number of nodes used to solve n=9 in pure Branch and Bound. What we see it that by adding x cutting planes, we are essentially reducing the number of nodes by order 2 2x in this example. 2.4 Conclusion Gomory Cutting Planes are fast, but unreliable. Branch and Bound is reliable, but slow. We can combine the two algorithms into one, called Branch and Cut. If we first take take a few cuts using the Gomory Scheme then apply the remaining system to Branch and Bound, we have an algorithm that is not only reliable, but faster than Branch and Bound alone. In the examples illustrated we find that taking x Gomery Cuts can essentially reduce the number of nodes created drastically. Ultimately we find that Branch and Cut is a more efficient algorithm than Branch and Bound.

21 LITERATURE CITED [1] Vasek Chvátal, Linear Programming, W.H. Freeman and Company, [2] Kartik Sivaramakrishnan, MA/OR/IE Linear Programming, Spring 2006, North Carolina State University. Available at kksivara/ma505 [3] Laurence Wolsey, Integer Programming, John Wiley and Sons, Inc,

### Definition of a Linear Program

Definition of a Linear Program Definition: A function f(x 1, x,..., x n ) of x 1, x,..., x n is a linear function if and only if for some set of constants c 1, c,..., c n, f(x 1, x,..., x n ) = c 1 x 1

### 4.6 Linear Programming duality

4.6 Linear Programming duality To any minimization (maximization) LP we can associate a closely related maximization (minimization) LP. Different spaces and objective functions but in general same optimal

### IEOR 4404 Homework #2 Intro OR: Deterministic Models February 14, 2011 Prof. Jay Sethuraman Page 1 of 5. Homework #2

IEOR 4404 Homework # Intro OR: Deterministic Models February 14, 011 Prof. Jay Sethuraman Page 1 of 5 Homework #.1 (a) What is the optimal solution of this problem? Let us consider that x 1, x and x 3

### Linear Programming for Optimization. Mark A. Schulze, Ph.D. Perceptive Scientific Instruments, Inc.

1. Introduction Linear Programming for Optimization Mark A. Schulze, Ph.D. Perceptive Scientific Instruments, Inc. 1.1 Definition Linear programming is the name of a branch of applied mathematics that

### Chapter 13: Binary and Mixed-Integer Programming

Chapter 3: Binary and Mixed-Integer Programming The general branch and bound approach described in the previous chapter can be customized for special situations. This chapter addresses two special situations:

### INTEGER PROGRAMMING. Integer Programming. Prototype example. BIP model. BIP models

Integer Programming INTEGER PROGRAMMING In many problems the decision variables must have integer values. Example: assign people, machines, and vehicles to activities in integer quantities. If this is

### 1 Solving LPs: The Simplex Algorithm of George Dantzig

Solving LPs: The Simplex Algorithm of George Dantzig. Simplex Pivoting: Dictionary Format We illustrate a general solution procedure, called the simplex algorithm, by implementing it on a very simple example.

### Recovery of primal solutions from dual subgradient methods for mixed binary linear programming; a branch-and-bound approach

MASTER S THESIS Recovery of primal solutions from dual subgradient methods for mixed binary linear programming; a branch-and-bound approach PAULINE ALDENVIK MIRJAM SCHIERSCHER Department of Mathematical

### Linear Programming Notes VII Sensitivity Analysis

Linear Programming Notes VII Sensitivity Analysis 1 Introduction When you use a mathematical model to describe reality you must make approximations. The world is more complicated than the kinds of optimization

### 3 Does the Simplex Algorithm Work?

Does the Simplex Algorithm Work? In this section we carefully examine the simplex algorithm introduced in the previous chapter. Our goal is to either prove that it works, or to determine those circumstances

### 24. The Branch and Bound Method

24. The Branch and Bound Method It has serious practical consequences if it is known that a combinatorial problem is NP-complete. Then one can conclude according to the present state of science that no

### 7.4 Linear Programming: The Simplex Method

7.4 Linear Programming: The Simplex Method For linear programming problems with more than two variables, the graphical method is usually impossible, so the simplex method is used. Because the simplex method

### 5 INTEGER LINEAR PROGRAMMING (ILP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

5 INTEGER LINEAR PROGRAMMING (ILP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 General Integer Linear Program: (ILP) min c T x Ax b x 0 integer Assumption: A, b integer The integrality condition

### Applied Algorithm Design Lecture 5

Applied Algorithm Design Lecture 5 Pietro Michiardi Eurecom Pietro Michiardi (Eurecom) Applied Algorithm Design Lecture 5 1 / 86 Approximation Algorithms Pietro Michiardi (Eurecom) Applied Algorithm Design

### Approximation Algorithms

Approximation Algorithms or: How I Learned to Stop Worrying and Deal with NP-Completeness Ong Jit Sheng, Jonathan (A0073924B) March, 2012 Overview Key Results (I) General techniques: Greedy algorithms

### Chapter 6. Linear Programming: The Simplex Method. Introduction to the Big M Method. Section 4 Maximization and Minimization with Problem Constraints

Chapter 6 Linear Programming: The Simplex Method Introduction to the Big M Method In this section, we will present a generalized version of the simplex method that t will solve both maximization i and

### Integrating Benders decomposition within Constraint Programming

Integrating Benders decomposition within Constraint Programming Hadrien Cambazard, Narendra Jussien email: {hcambaza,jussien}@emn.fr École des Mines de Nantes, LINA CNRS FRE 2729 4 rue Alfred Kastler BP

### Linear Programming. March 14, 2014

Linear Programming March 1, 01 Parts of this introduction to linear programming were adapted from Chapter 9 of Introduction to Algorithms, Second Edition, by Cormen, Leiserson, Rivest and Stein [1]. 1

### . P. 4.3 Basic feasible solutions and vertices of polyhedra. x 1. x 2

4. Basic feasible solutions and vertices of polyhedra Due to the fundamental theorem of Linear Programming, to solve any LP it suffices to consider the vertices (finitely many) of the polyhedron P of the

### 3. Linear Programming and Polyhedral Combinatorics

Massachusetts Institute of Technology Handout 6 18.433: Combinatorial Optimization February 20th, 2009 Michel X. Goemans 3. Linear Programming and Polyhedral Combinatorics Summary of what was seen in the

### A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem

A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem John Karlof and Peter Hocking Mathematics and Statistics Department University of North Carolina Wilmington Wilmington,

### Linear Programming. Widget Factory Example. Linear Programming: Standard Form. Widget Factory Example: Continued.

Linear Programming Widget Factory Example Learning Goals. Introduce Linear Programming Problems. Widget Example, Graphical Solution. Basic Theory:, Vertices, Existence of Solutions. Equivalent formulations.

### Practical Guide to the Simplex Method of Linear Programming

Practical Guide to the Simplex Method of Linear Programming Marcel Oliver Revised: April, 0 The basic steps of the simplex algorithm Step : Write the linear programming problem in standard form Linear

### ! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Approximation Algorithms 11 Approximation Algorithms Q Suppose I need to solve an NP-hard problem What should I do? A Theory says you're unlikely to find a poly-time algorithm Must sacrifice one of three

### Equilibrium computation: Part 1

Equilibrium computation: Part 1 Nicola Gatti 1 Troels Bjerre Sorensen 2 1 Politecnico di Milano, Italy 2 Duke University, USA Nicola Gatti and Troels Bjerre Sørensen ( Politecnico di Milano, Italy, Equilibrium

### Special Situations in the Simplex Algorithm

Special Situations in the Simplex Algorithm Degeneracy Consider the linear program: Maximize 2x 1 +x 2 Subject to: 4x 1 +3x 2 12 (1) 4x 1 +x 2 8 (2) 4x 1 +2x 2 8 (3) x 1, x 2 0. We will first apply the

### Lecture 3: Linear Programming Relaxations and Rounding

Lecture 3: Linear Programming Relaxations and Rounding 1 Approximation Algorithms and Linear Relaxations For the time being, suppose we have a minimization problem. Many times, the problem at hand can

### LECTURE 5: DUALITY AND SENSITIVITY ANALYSIS. 1. Dual linear program 2. Duality theory 3. Sensitivity analysis 4. Dual simplex method

LECTURE 5: DUALITY AND SENSITIVITY ANALYSIS 1. Dual linear program 2. Duality theory 3. Sensitivity analysis 4. Dual simplex method Introduction to dual linear program Given a constraint matrix A, right

### 3. Evaluate the objective function at each vertex. Put the vertices into a table: Vertex P=3x+2y (0, 0) 0 min (0, 5) 10 (15, 0) 45 (12, 2) 40 Max

SOLUTION OF LINEAR PROGRAMMING PROBLEMS THEOREM 1 If a linear programming problem has a solution, then it must occur at a vertex, or corner point, of the feasible set, S, associated with the problem. Furthermore,

### Reconnect 04 Solving Integer Programs with Branch and Bound (and Branch and Cut)

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

### Het inplannen van besteld ambulancevervoer (Engelse titel: Scheduling elected ambulance transportation)

Technische Universiteit Delft Faculteit Elektrotechniek, Wiskunde en Informatica Delft Institute of Applied Mathematics Het inplannen van besteld ambulancevervoer (Engelse titel: Scheduling elected ambulance

### 1 Introduction. Linear Programming. Questions. A general optimization problem is of the form: choose x to. max f(x) subject to x S. where.

Introduction Linear Programming Neil Laws TT 00 A general optimization problem is of the form: choose x to maximise f(x) subject to x S where x = (x,..., x n ) T, f : R n R is the objective function, S

### OPRE 6201 : 2. Simplex Method

OPRE 6201 : 2. Simplex Method 1 The Graphical Method: An Example Consider the following linear program: Max 4x 1 +3x 2 Subject to: 2x 1 +3x 2 6 (1) 3x 1 +2x 2 3 (2) 2x 2 5 (3) 2x 1 +x 2 4 (4) x 1, x 2

### Duality in General Programs. Ryan Tibshirani Convex Optimization 10-725/36-725

Duality in General Programs Ryan Tibshirani Convex Optimization 10-725/36-725 1 Last time: duality in linear programs Given c R n, A R m n, b R m, G R r n, h R r : min x R n c T x max u R m, v R r b T

Approximation Algorithms Chapter Approximation Algorithms Q. Suppose I need to solve an NP-hard problem. What should I do? A. Theory says you're unlikely to find a poly-time algorithm. Must sacrifice one

### Optimization Modeling for Mining Engineers

Optimization Modeling for Mining Engineers Alexandra M. Newman Division of Economics and Business Slide 1 Colorado School of Mines Seminar Outline Linear Programming Integer Linear Programming Slide 2

### Duality in Linear Programming

Duality in Linear Programming 4 In the preceding chapter on sensitivity analysis, we saw that the shadow-price interpretation of the optimal simplex multipliers is a very useful concept. First, these shadow

### Maintenance optimization in nuclear power plants modelling, analysis, and experimentation. Karin Kvickström

MASTER STHESIS Maintenance optimization in nuclear power plants modelling, analysis, and experimentation Karin Kvickström DepartmentofMathematicalSciences CHALMERS UNIVERSITY OF TECHNOLOGY UNIVERSITY OF

### Mathematical finance and linear programming (optimization)

Mathematical finance and linear programming (optimization) Geir Dahl September 15, 2009 1 Introduction The purpose of this short note is to explain how linear programming (LP) (=linear optimization) may

### A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

Abstract A Constraint Programming based Column Generation Approach to Nurse Rostering Problems Fang He and Rong Qu The Automated Scheduling, Optimisation and Planning (ASAP) Group School of Computer Science,

### ! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

Approximation Algorithms Chapter Approximation Algorithms Q Suppose I need to solve an NP-hard problem What should I do? A Theory says you're unlikely to find a poly-time algorithm Must sacrifice one of

### Linear Programming Notes V Problem Transformations

Linear Programming Notes V Problem Transformations 1 Introduction Any linear programming problem can be rewritten in either of two standard forms. In the first form, the objective is to maximize, the material

### Minimizing costs for transport buyers using integer programming and column generation. Eser Esirgen

MASTER STHESIS Minimizing costs for transport buyers using integer programming and column generation Eser Esirgen DepartmentofMathematicalSciences CHALMERS UNIVERSITY OF TECHNOLOGY UNIVERSITY OF GOTHENBURG

### Linear Programming. April 12, 2005

Linear Programming April 1, 005 Parts of this were adapted from Chapter 9 of i Introduction to Algorithms (Second Edition) /i by Cormen, Leiserson, Rivest and Stein. 1 What is linear programming? The first

### Convex Programming Tools for Disjunctive Programs

Convex Programming Tools for Disjunctive Programs João Soares, Departamento de Matemática, Universidade de Coimbra, Portugal Abstract A Disjunctive Program (DP) is a mathematical program whose feasible

### CHAPTER 9. Integer Programming

CHAPTER 9 Integer Programming An integer linear program (ILP) is, by definition, a linear program with the additional constraint that all variables take integer values: (9.1) max c T x s t Ax b and x integral

### Resource Allocation and Scheduling

Lesson 3: Resource Allocation and Scheduling DEIS, University of Bologna Outline Main Objective: joint resource allocation and scheduling problems In particular, an overview of: Part 1: Introduction and

### Proximal mapping via network optimization

L. Vandenberghe EE236C (Spring 23-4) Proximal mapping via network optimization minimum cut and maximum flow problems parametric minimum cut problem application to proximal mapping Introduction this lecture:

### Some representability and duality results for convex mixed-integer programs.

Some representability and duality results for convex mixed-integer programs. Santanu S. Dey Joint work with Diego Morán and Juan Pablo Vielma December 17, 2012. Introduction About Motivation Mixed integer

### LU Factorization Method to Solve Linear Programming Problem

Website: wwwijetaecom (ISSN 2250-2459 ISO 9001:2008 Certified Journal Volume 4 Issue 4 April 2014) LU Factorization Method to Solve Linear Programming Problem S M Chinchole 1 A P Bhadane 2 12 Assistant

### Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows

TECHNISCHE UNIVERSITEIT EINDHOVEN Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows Lloyd A. Fasting May 2014 Supervisors: dr. M. Firat dr.ir. M.A.A. Boon J. van Twist MSc. Contents

### Linear Programming: Theory and Applications

Linear Programming: Theory and Applications Catherine Lewis May 11, 2008 1 Contents 1 Introduction to Linear Programming 3 1.1 What is a linear program?...................... 3 1.2 Assumptions.............................

### Linear Programming. Solving LP Models Using MS Excel, 18

SUPPLEMENT TO CHAPTER SIX Linear Programming SUPPLEMENT OUTLINE Introduction, 2 Linear Programming Models, 2 Model Formulation, 4 Graphical Linear Programming, 5 Outline of Graphical Procedure, 5 Plotting

### Chapter 2 Solving Linear Programs

Chapter 2 Solving Linear Programs Companion slides of Applied Mathematical Programming by Bradley, Hax, and Magnanti (Addison-Wesley, 1977) prepared by José Fernando Oliveira Maria Antónia Carravilla A

### What is Linear Programming?

Chapter 1 What is Linear Programming? An optimization problem usually has three essential ingredients: a variable vector x consisting of a set of unknowns to be determined, an objective function of x to

### Linear Programming in Matrix Form

Linear Programming in Matrix Form Appendix B We first introduce matrix concepts in linear programming by developing a variation of the simplex method called the revised simplex method. This algorithm,

### Partial Fractions. (x 1)(x 2 + 1)

Partial Fractions Adding rational functions involves finding a common denominator, rewriting each fraction so that it has that denominator, then adding. For example, 3x x 1 3x(x 1) (x + 1)(x 1) + 1(x +

### 56:171 Operations Research Midterm Exam Solutions Fall 2001

56:171 Operations Research Midterm Exam Solutions Fall 2001 True/False: Indicate by "+" or "o" whether each statement is "true" or "false", respectively: o_ 1. If a primal LP constraint is slack at the

### Introduction to Algorithms Review information for Prelim 1 CS 4820, Spring 2010 Distributed Wednesday, February 24

Introduction to Algorithms Review information for Prelim 1 CS 4820, Spring 2010 Distributed Wednesday, February 24 The final exam will cover seven topics. 1. greedy algorithms 2. divide-and-conquer algorithms

### 1. (a) Multiply by negative one to make the problem into a min: 170A 170B 172A 172B 172C Antonovics Foster Groves 80 88

Econ 172A, W2001: Final Examination, Possible Answers There were 480 possible points. The first question was worth 80 points (40,30,10); the second question was worth 60 points (10 points for the first

### Near Optimal Solutions

Near Optimal Solutions Many important optimization problems are lacking efficient solutions. NP-Complete problems unlikely to have polynomial time solutions. Good heuristics important for such problems.

### Simplex method summary

Simplex method summary Problem: optimize a linear objective, subject to linear constraints 1. Step 1: Convert to standard form: variables on right-hand side, positive constant on left slack variables for

### The Graphical Method: An Example

The Graphical Method: An Example Consider the following linear program: Maximize 4x 1 +3x 2 Subject to: 2x 1 +3x 2 6 (1) 3x 1 +2x 2 3 (2) 2x 2 5 (3) 2x 1 +x 2 4 (4) x 1, x 2 0, where, for ease of reference,

### Noncommercial Software for Mixed-Integer Linear Programming

Noncommercial Software for Mixed-Integer Linear Programming J. T. Linderoth T. K. Ralphs December, 2004. Revised: January, 2005. Abstract We present an overview of noncommercial software tools for the

### Creating a More Efficient Course Schedule at WPI Using Linear Optimization

Project Number: ACH1211 Creating a More Efficient Course Schedule at WPI Using Linear Optimization A Major Qualifying Project Report submitted to the Faculty of the WORCESTER POLYTECHNIC INSTITUTE in partial

### 56:171. Operations Research -- Sample Homework Assignments Fall 1992 Dennis Bricker Dept. of Industrial Engineering University of Iowa.

56:171 Operations Research -- Sample Homework Assignments Fall 1992 Dennis Bricker Dept. of Industrial Engineering University of Iowa Homework #1 (1.) Linear Programming Model Formulation. SunCo processes

### Solving Linear Programs

Solving Linear Programs 2 In this chapter, we present a systematic procedure for solving linear programs. This procedure, called the simplex method, proceeds by moving from one feasible solution to another,

### 11. APPROXIMATION ALGORITHMS

11. APPROXIMATION ALGORITHMS load balancing center selection pricing method: vertex cover LP rounding: vertex cover generalized load balancing knapsack problem Lecture slides by Kevin Wayne Copyright 2005

### 2.3 Convex Constrained Optimization Problems

42 CHAPTER 2. FUNDAMENTAL CONCEPTS IN CONVEX OPTIMIZATION Theorem 15 Let f : R n R and h : R R. Consider g(x) = h(f(x)) for all x R n. The function g is convex if either of the following two conditions

### Duality of linear conic problems

Duality of linear conic problems Alexander Shapiro and Arkadi Nemirovski Abstract It is well known that the optimal values of a linear programming problem and its dual are equal to each other if at least

### Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams André Ciré University of Toronto John Hooker Carnegie Mellon University INFORMS 2014 Home Health Care Home health care delivery

### 4. Matrix inverses. left and right inverse. linear independence. nonsingular matrices. matrices with linearly independent columns

L. Vandenberghe EE133A (Spring 2016) 4. Matrix inverses left and right inverse linear independence nonsingular matrices matrices with linearly independent columns matrices with linearly independent rows

### EXCEL SOLVER TUTORIAL

ENGR62/MS&E111 Autumn 2003 2004 Prof. Ben Van Roy October 1, 2003 EXCEL SOLVER TUTORIAL This tutorial will introduce you to some essential features of Excel and its plug-in, Solver, that we will be using

### 0.1 Linear Programming

0.1 Linear Programming 0.1.1 Objectives By the end of this unit you will be able to: formulate simple linear programming problems in terms of an objective function to be maximized or minimized subject

### Application. Outline. 3-1 Polynomial Functions 3-2 Finding Rational Zeros of. Polynomial. 3-3 Approximating Real Zeros of.

Polynomial and Rational Functions Outline 3-1 Polynomial Functions 3-2 Finding Rational Zeros of Polynomials 3-3 Approximating Real Zeros of Polynomials 3-4 Rational Functions Chapter 3 Group Activity:

### Route optimization applied to school transports A method combining column generation with greedy heuristics

PREPRINT Route optimization applied to school transports A method combining column generation with greedy heuristics Mikael Andersson Peter Lindroth Department of Mathematics CHALMERS UNIVERSITY OF TECHNOLOGY

### Study Guide 2 Solutions MATH 111

Study Guide 2 Solutions MATH 111 Having read through the sample test, I wanted to warn everyone, that I might consider asking questions involving inequalities, the absolute value function (as in the suggested

### General Framework for an Iterative Solution of Ax b. Jacobi s Method

2.6 Iterative Solutions of Linear Systems 143 2.6 Iterative Solutions of Linear Systems Consistent linear systems in real life are solved in one of two ways: by direct calculation (using a matrix factorization,

### MATHEMATICS (CLASSES XI XII)

MATHEMATICS (CLASSES XI XII) General Guidelines (i) All concepts/identities must be illustrated by situational examples. (ii) The language of word problems must be clear, simple and unambiguous. (iii)

### 2.3 Scheduling jobs on identical parallel machines

2.3 Scheduling jobs on identical parallel machines There are jobs to be processed, and there are identical machines (running in parallel) to which each job may be assigned Each job = 1,,, must be processed

### Sensitivity Analysis 3.1 AN EXAMPLE FOR ANALYSIS

Sensitivity Analysis 3 We have already been introduced to sensitivity analysis in Chapter via the geometry of a simple example. We saw that the values of the decision variables and those of the slack and

### Some Optimization Fundamentals

ISyE 3133B Engineering Optimization Some Optimization Fundamentals Shabbir Ahmed E-mail: sahmed@isye.gatech.edu Homepage: www.isye.gatech.edu/~sahmed Basic Building Blocks min or max s.t. objective as

### Dynamic programming. Doctoral course Optimization on graphs - Lecture 4.1. Giovanni Righini. January 17 th, 2013

Dynamic programming Doctoral course Optimization on graphs - Lecture.1 Giovanni Righini January 1 th, 201 Implicit enumeration Combinatorial optimization problems are in general NP-hard and we usually

### Math 120 Final Exam Practice Problems, Form: A

Math 120 Final Exam Practice Problems, Form: A Name: While every attempt was made to be complete in the types of problems given below, we make no guarantees about the completeness of the problems. Specifically,

### LAGRANGIAN RELAXATION TECHNIQUES FOR LARGE SCALE OPTIMIZATION

LAGRANGIAN RELAXATION TECHNIQUES FOR LARGE SCALE OPTIMIZATION Kartik Sivaramakrishnan Department of Mathematics NC State University kksivara@ncsu.edu http://www4.ncsu.edu/ kksivara SIAM/MGSA Brown Bag

### Analysis of Approximation Algorithms for k-set Cover using Factor-Revealing Linear Programs

Analysis of Approximation Algorithms for k-set Cover using Factor-Revealing Linear Programs Stavros Athanassopoulos, Ioannis Caragiannis, and Christos Kaklamanis Research Academic Computer Technology Institute

### Transportation Polytopes: a Twenty year Update

Transportation Polytopes: a Twenty year Update Jesús Antonio De Loera University of California, Davis Based on various papers joint with R. Hemmecke, E.Kim, F. Liu, U. Rothblum, F. Santos, S. Onn, R. Yoshida,

### An Overview Of Software For Convex Optimization. Brian Borchers Department of Mathematics New Mexico Tech Socorro, NM 87801 borchers@nmt.

An Overview Of Software For Convex Optimization Brian Borchers Department of Mathematics New Mexico Tech Socorro, NM 87801 borchers@nmt.edu In fact, the great watershed in optimization isn t between linearity

### Actually Doing It! 6. Prove that the regular unit cube (say 1cm=unit) of sufficiently high dimension can fit inside it the whole city of New York.

1: 1. Compute a random 4-dimensional polytope P as the convex hull of 10 random points using rand sphere(4,10). Run VISUAL to see a Schlegel diagram. How many 3-dimensional polytopes do you see? How many

### Using diversification, communication and parallelism to solve mixed-integer linear programs

Using diversification, communication and parallelism to solve mixed-integer linear programs R. Carvajal a,, S. Ahmed a, G. Nemhauser a, K. Furman b, V. Goel c, Y. Shao c a Industrial and Systems Engineering,

### Nonlinear Programming Methods.S2 Quadratic Programming

Nonlinear Programming Methods.S2 Quadratic Programming Operations Research Models and Methods Paul A. Jensen and Jonathan F. Bard A linearly constrained optimization problem with a quadratic objective

### Algebra Unpacked Content For the new Common Core standards that will be effective in all North Carolina schools in the 2012-13 school year.

This document is designed to help North Carolina educators teach the Common Core (Standard Course of Study). NCDPI staff are continually updating and improving these tools to better serve teachers. Algebra

### Algorithm Design and Analysis

Algorithm Design and Analysis LECTURE 27 Approximation Algorithms Load Balancing Weighted Vertex Cover Reminder: Fill out SRTEs online Don t forget to click submit Sofya Raskhodnikova 12/6/2011 S. Raskhodnikova;

### QUADRATIC EQUATIONS. 1. The equation ax 2 + bx + c = 0, a 0 is the standard form of a quadratic equation, where a, b and c are real numbers.

QUADRATIC EQUATIONS. The equation a + b + c = 0, a 0 is the standard form of a quadratic equation, where a, b and c are real numbers.. A real number is said to be a root of the quadratic equation a + b

### 7 Gaussian Elimination and LU Factorization

7 Gaussian Elimination and LU Factorization In this final section on matrix factorization methods for solving Ax = b we want to take a closer look at Gaussian elimination (probably the best known method

### How the European day-ahead electricity market works

How the European day-ahead electricity market works ELEC0018-1 - Marché de l'énergie - Pr. D. Ernst! Bertrand Cornélusse, Ph.D.! bertrand.cornelusse@ulg.ac.be! October 2014! 1 Starting question How is

### Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits

Outline NP-completeness Examples of Easy vs. Hard problems Euler circuit vs. Hamiltonian circuit Shortest Path vs. Longest Path 2-pairs sum vs. general Subset Sum Reducing one problem to another Clique

### Integer Factorization using the Quadratic Sieve

Integer Factorization using the Quadratic Sieve Chad Seibert* Division of Science and Mathematics University of Minnesota, Morris Morris, MN 56567 seib0060@morris.umn.edu March 16, 2011 Abstract We give