IE418 Integer Programming

Similar documents
Section Notes 8. Integer Programming II. Applied Math 121. Week of April 5, expand your knowledge of big M s and logical constraints.

SOLVING INTEGER LINEAR PROGRAMS. 1. Solving the LP relaxation. 2. How to deal with fractional solutions?

Math Models of OR: Branch-and-Bound

where X is the feasible region, i.e., the set of the feasible solutions.

23. Cutting planes and branch & bound

Network Flows. 6. Lagrangian Relaxation. Programming. Fall 2010 Instructor: Dr. Masoud Yaghini

Decision Procedures An Algorithmic Point of View

Introduction to Mathematical Programming IE406. Lecture 21. Dr. Ted Ralphs

Review Solutions, Exam 2, Operations Research

AM 121: Intro to Optimization! Models and Methods! Fall 2018!

Section Notes 9. IP: Cutting Planes. Applied Math 121. Week of April 12, 2010

The CPLEX Library: Mixed Integer Programming

Speculative Parallelism in Cilk++

Section Notes 9. Midterm 2 Review. Applied Math / Engineering Sciences 121. Week of December 3, 2018

maxz = 3x 1 +4x 2 2x 1 +x 2 6 2x 1 +3x 2 9 x 1,x 2

Integer Programming ISE 418. Lecture 8. Dr. Ted Ralphs

Integer Programming. Wolfram Wiesemann. December 6, 2007

Integer Programming. The focus of this chapter is on solution techniques for integer programming models.

min3x 1 + 4x 2 + 5x 3 2x 1 + 2x 2 + x 3 6 x 1 + 2x 2 + 3x 3 5 x 1, x 2, x 3 0.

to work with) can be solved by solving their LP relaxations with the Simplex method I Cutting plane algorithms, e.g., Gomory s fractional cutting

Lecture 23 Branch-and-Bound Algorithm. November 3, 2009

Operations Research Lecture 6: Integer Programming

Branch-and-Bound. Leo Liberti. LIX, École Polytechnique, France. INF , Lecture p. 1

DM545 Linear and Integer Programming. Lecture 13 Branch and Bound. Marco Chiarandini

Points: The first problem is worth 10 points, the others are worth 15. Maximize z = x y subject to 3x y 19 x + 7y 10 x + y = 100.

Optimisation and Operations Research

Solving LP and MIP Models with Piecewise Linear Objective Functions

CS Algorithms and Complexity

Task Assignment. Consider this very small instance: t1 t2 t3 t4 t5 p p p p p

is called an integer programming (IP) problem. model is called a mixed integer programming (MIP)

Gestion de la production. Book: Linear Programming, Vasek Chvatal, McGill University, W.H. Freeman and Company, New York, USA

Part 4. Decomposition Algorithms

Introduction to Integer Linear Programming

Introduction to integer programming II

Linear Programming. Scheduling problems

INTEGER PROGRAMMING. In many problems the decision variables must have integer values.

21. Solve the LP given in Exercise 19 using the big-m method discussed in Exercise 20.

Introduction to Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Multiobjective Mixed-Integer Stackelberg Games

Simplex Method for LP (II)

Math 16 - Practice Final

Computational Integer Programming. Lecture 2: Modeling and Formulation. Dr. Ted Ralphs

Park School Mathematics Curriculum Book 9, Lesson 2: Introduction to Logarithms

Section #2: Linear and Integer Programming

Integer Programming and Branch and Bound

Improving Branch-And-Price Algorithms For Solving One Dimensional Cutting Stock Problem

MINLP: Theory, Algorithms, Applications: Lecture 3, Basics of Algorothms

Written Exam Linear and Integer Programming (DM545)

1 Column Generation and the Cutting Stock Problem

Software for Integer and Nonlinear Optimization

The fire and rescue vehicle location problem

Optimisation and Operations Research

Hot-Starting NLP Solvers

Decomposition-based Methods for Large-scale Discrete Optimization p.1

IP Cut Homework from J and B Chapter 9: 14, 15, 16, 23, 24, You wish to solve the IP below with a cutting plane technique.

Math101, Sections 2 and 3, Spring 2008 Review Sheet for Exam #2:

Lecture 4: Constructing the Integers, Rationals and Reals

Optimization Methods in Management Science

Integer Programming ISE 418. Lecture 12. Dr. Ted Ralphs

The Separation Problem for Binary Decision Diagrams

Bilevel Integer Optimization: Theory and Algorithms

1 Closest Pair of Points on the Plane

Today: Linear Programming (con t.)

Some Recent Advances in Mixed-Integer Nonlinear Programming

Linear integer programming and its application

Foundations of Operations Research

Linear Programming: Simplex

Outline. Relaxation. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Lagrangian Relaxation. Lecture 12 Single Machine Models, Column Generation

- Well-characterized problems, min-max relations, approximate certificates. - LP problems in the standard form, primal and dual linear programs

IV. Violations of Linear Programming Assumptions

(P ) Minimize 4x 1 + 6x 2 + 5x 3 s.t. 2x 1 3x 3 3 3x 2 2x 3 6

3.10 Column generation method

10-725/36-725: Convex Optimization Spring Lecture 21: April 6

Algorithms and Data Structures 2016 Week 5 solutions (Tues 9th - Fri 12th February)

University of California Berkeley CS170: Efficient Algorithms and Intractable Problems November 19, 2001 Professor Luca Trevisan. Midterm 2 Solutions

arxiv: v1 [cs.cc] 5 Dec 2018

Computational Integer Programming Universidad de los Andes. Lecture 1. Dr. Ted Ralphs

Integer Programming Chapter 15

A BRANCH&BOUND ALGORITHM FOR SOLVING ONE-DIMENSIONAL CUTTING STOCK PROBLEMS EXACTLY

Lagrangian Relaxation in MIP

Lessons from MIP Search. John Hooker Carnegie Mellon University November 2009

3.10 Lagrangian relaxation

MVE165/MMG631 Linear and integer optimization with applications Lecture 8 Discrete optimization: theory and algorithms

3. Duality: What is duality? Why does it matter? Sensitivity through duality.

The Traveling Salesman Problem: An Overview. David P. Williamson, Cornell University Ebay Research January 21, 2014

Lecture 17: Trees and Merge Sort 10:00 AM, Oct 15, 2018

2.6 Complexity Theory for Map-Reduce. Star Joins 2.6. COMPLEXITY THEORY FOR MAP-REDUCE 51

Lecture 13: Dynamic Programming Part 2 10:00 AM, Feb 23, 2018

If the above problem is hard to solve, we might try to break it into smaller problems which are easier to solve.

CPSC 340: Machine Learning and Data Mining. Stochastic Gradient Fall 2017

Written Exam Linear and Integer Programming (DM554)

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Classification and Regression Trees

Feasibility Pump Heuristics for Column Generation Approaches

Part III: Traveling salesman problems

Bilevel Integer Linear Programming

Scout and NegaScout. Tsan-sheng Hsu.

Column Generation. i = 1,, 255;

The Ellipsoid Algorithm

Introduction to Bin Packing Problems

Transcription:

IE418: Integer Programming Department of Industrial and Systems Engineering Lehigh University 2nd February 2005 Boring Stuff Extra Linux Class: 8AM 11AM, Wednesday February 9. Room??? Accounts and Passwords http://coral.ie.lehigh.edu has user information Please use ipxx account when solving your IP problems in COR@L! Use yppasswd to change your password Homework: Due 2/9. (One week warning) Make a copy of your answers before you hand them in Even better, use L A TEXto write up your answers! A special present for you!

Please don t call on me! Name some keys to solving integer programs Relaxations Formulation Formulation so the Relaxation is good Small M s good. Big M s baaaaaaaaaaaaaaaaaaaad... How does branch-and-bound work? LP-based Branch and Bound Algorithm 1 To start, derive an lower bound L using a heuristic method (if possible). 2 Put the original problem on the candidate list. 3 Select a problem S from the candidate list and solve the LP relaxation to obtain the bound u(s) If the LP is infeasible node can be pruned. Otherwise, if u(s) L node can be pruned. Otherwise, if u(s) > L and the solution is feasible for the MILP set L u(s). Otherwise, branch. Add the new subproblems to the list. 4 If the candidate list in nonempty, go to Step 2. Otherwise, the algorithm is completed.

Let s Do An Example maximize z = 5x 1 + 4x 2 + x 3 + 7x 4 subject to x 1 + x 2 5 x 3 + x 4 3 x 1 x 3 + x 4 16 10x 1 + 6x 2 45 x 1, x 2 0 x 1, x 2, x 3, x 4 Z Solving the Example with B&B Your picture(s) here...

The Goal of Branching We want to divide the current problem into two or more subproblems that are easier than the original. We would like to choose the branching that minimizes the sum of the solution times of all the created subproblems. This is the solution of the entire subtree rooted at the node. How do we know how long it will take to solve each subproblem? Answer: We don t. Idea: Try to predict the difficulty of a subproblem. A Good Branching Imagine that when I branch, the value of the linear programming relaxation changes a lot! I can prune the node, or should be able to prune it quickly So, for a given potential branching, I would like to know the upper bound that would result from processing each subproblem. The branching that changes these bounds the most is the best branching. Be Creative! What are some ideas you have for deciding on a branching variable?

Predicting the Difficulty of a Subproblem How can I (quickly?) estimate the upper bounds that would result? Partially solve the LP relaxation in each of the subproblems by performing a given number of dual simplex pivots. Since we are using dual simplex, this gives us a valid bound. This technique is usually called strong branching. A cheaper alternative is to use pseudo-costs. Details In the case of strong branching, it may be too expensive to evaluate all possible candidates for branching. How do we choose the candidates to evaluate? We choose them based on an estimate of their effectiveness that is very cheap to evaluate. One method is to choose inequalities whose left hand side is furthest from being an integer For 0-1 variables, this means those whose values are closest to 0.5. We might also account for the size of the objective function coefficient.

Details The number of candidates to evaluate must be determined empirically. Effective branching is more important near the top of the tree. We might want to evaluate more candidates near the top of the tree. More candidates almost always results in smaller trees, but the expense eventually causes an increase in running time. How many dual simplex pivots should we do? Using The pseudo-cost of a variable is an estimate of the per-unit change in the objective function from forcing the value of the variable to be rounded up or down. Like a gradient! For each variable x j, we maintain an up and a down pseudo-cost, denoted P + j and P j. Let f j be the current (fractional) value of variable x j. An estimate of the change in objective function in each of the subproblems resulting from branching on x j is given by D + j = P + j (1 f j), D j = P j f j. The question is how to get the pseudo-costs.

Obtaining and Updating Typically, the pseudo-costs are obtained from empirical data. We observe the actual change that occurs after branching on each one of the variables and use that as the pseudo-cost. We can either choose to update the pseudo-cost as the calculation progresses or just use the first pseudo-cost found. Several authors have noted that the pseudo-costs tend to remain fairly constant. The only remaining question is how to initialize. Possibilities: Use the objective function coefficient. Use the average of all known pseudo-costs. Explicity initialize the pseudocosts using strong branching What Does The Most Mean If we are doing typical variable branching, we create two children and have estimates of the amount the bound will change for each child How do we combine the two nunbers together to form one measure of goodness for a potential branch? Suggest to branch on the variable j = arg max{α 1 min{d + j, D j } + α 2 max{d + j, D j }. α 2 = 0 we want to maximize the minimum degradation on the branch (α 1, α 2 ) = (2, 1) seems pretty good

Putting it All Together Here are the choices we ve discussed in branching: Should we use strong branching or pseudo-costs? Pseudo-costs How should we initialize? How should we update? Strong branching How do we choose the list of branching candidates? How many pivots to do on each? Once we have the bound estimates, how do we choose the final branching? Ultimately, we must use empirical evidence and intuition to answer these questions. Priorities How Much Do You Know? You are smarter than integer programming! If you have problem specific knowledge, use it to determine which variable to branch ong Branch on the important variables first First decide which warehouses to open, then decide the vehicle routing Branch on earlier (time-based) decisions first. There are mechanisms for giving the variables a priority order, so that if two variables are fractional, the one with the high priority is branched on first Or, first branch on all these variables before you branch on the next class, etc.

GUB/SOS1 Branching x j {0, 1} j 10000 j=1 x j = 1 Which branching do you think would be better? 1 x 1 = 1 & x 1 = 0( 10000 j=2 = 1), or 2 500 j=1 x j = 1 & 10000 j=501 x j = 1 The answer is It depends But the answer is almost assuredly (2). It is probably even better to look at the (infeasible) LP relaxation and put 1/2 on each side (Just don t break it in the middle). SOS2 Branching {λ 1, λ 2,...λ 100 } is an SOS2 Suppose: λ 1 = 0.2 λ 6 = 0.1 λ 8 = 0.3 λ 10 = 0.1 λ 17 = 0.05 λ 99 = 0.25 The $64 Question How would you branch? If λ k > 0, then feasible solutions have λ 1 = = λ k 1 = 0, or λ k+1 = = λ 100 = 0 P k 1 j=1 λ j = 0 P n j=k+1 λ j = 0 Plus the (infeasible) point is excluded on both branches.

Best First Depth-First Best Estimate Choices in Branch and Bound Another important parameter to consider in branch and bound is the strategy for selecting the next subproblem to be processed. In choosing a search strategy, we might consider two different goals: Minimizing overall solution time. Finding a good feasible solution quickly. Best First Depth-First Best Estimate The Best First Approach One way to minimize overall solution time is to try to minimize the size of the search tree. We can achieve this choose the subproblem with the best bound (highest upper bound if we are maximizing). A candidate node is said to be critical if its bound exceeds the value of an optimal solution solution to the IP. Every critical node will be processed no matter what the search order. Best first is guaranteed to examine only critical nodes, thereby minimizing the size of the search tree.

Best First Depth-First Best Estimate Drawbacks of Best First Doesn t necessarily find feasible solutions quickly Feasible solutions are more likely to be found deep in the tree Node setup costs The linear program being solved may change quite a bit more one iteration to the next Memory usage. It can require a lot of memory to store the candidate list Best First Depth-First Best Estimate The Depth First Approach The depth first approach is to always choose the deepest node to process next. Just dive until you prune, then back up and go the other way This avoids most of the problems with best first: The number of candidate nodes is minimized (saving memory). The node set-up costs are minimized LPs change very little from one iteration to the next Feasible solutions are usually found quickly Unfortunately, if the initial lower bound is not very good, then we may end up processing lots of non-critical nodes. We want to avoid this extra expense if possible.

Best First Depth-First Best Estimate Estimate-based Strategies: Finding Feasible Solutions Let s focus on a strategy for finding feasible solutions quickly. One approach is to try to estimate the value of the optimal solution to each subproblem and pick the best. For any subproblem S i, let s i = j min(f j, 1 f j ) be the sum of the integer infeasibilities, zu i be the upper bound, and z L the global lower bound. Also, let S 0 be the root subproblem. The best projection criterion is E i = z i U + ( zl z 0 U ) s i s 0 The best estimate criterion uses the pseudo-costs to obtain E i = zu i + ) j (P min j f j, P j + (1 f j) Best First Depth-First Best Estimate Next Time: You should read (as review, and for more information) N&W II.4.1, II.4.2 Introduction to IP software Who knows what an MPS file is?