Discrete Optimization

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

24. The Branch and Bound Method

Lecture 3. Linear Programming. 3B1B Optimization Michaelmas 2015 A. Zisserman. Extreme solutions. Simplex method. Interior point method

Optimization Modeling for Mining Engineers

Integrating Benders decomposition within Constraint Programming

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

Lecture 11: 0-1 Quadratic Program and Lower Bounds

Dantzig-Wolfe bound and Dantzig-Wolfe cookbook

Nonlinear Optimization: Algorithms 3: Interior-point methods

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

Proximal mapping via network optimization

THE SCHEDULING OF MAINTENANCE SERVICE

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

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

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

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

Discuss the size of the instance for the minimum spanning tree problem.

Chapter 13: Binary and Mixed-Integer Programming

2.3 Convex Constrained Optimization Problems

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

CHAPTER 9. Integer Programming

Two-Stage Stochastic Linear Programs

What is Linear Programming?

Solutions to Homework 6

Scheduling Algorithm with Optimization of Employee Satisfaction

4.6 Linear Programming duality

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

Chapter Load Balancing. Approximation Algorithms. Load Balancing. Load Balancing on 2 Machines. Load Balancing: Greedy Scheduling

Classification - Examples

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

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

Optimal shift scheduling with a global service level constraint

Vector and Matrix Norms

1. Prove that the empty set is a subset of every set.

Tutorial: Operations Research in Constraint Programming

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

Largest Fixed-Aspect, Axis-Aligned Rectangle

The Multiplicative Weights Update method

Locating and sizing bank-branches by opening, closing or maintaining facilities

Linear Programming. March 14, 2014

A MODEL TO SOLVE EN ROUTE AIR TRAFFIC FLOW MANAGEMENT PROBLEM:

Lecture 3: Linear methods for classification

Introduction to Linear Programming (LP) Mathematical Programming (MP) Concept

JUST-IN-TIME SCHEDULING WITH PERIODIC TIME SLOTS. Received December May 12, 2003; revised February 5, 2004

Single machine parallel batch scheduling with unbounded capacity

Max-Min Representation of Piecewise Linear Functions

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

Lecture 10 Scheduling 1

Ideal Class Group and Units

Transportation Polytopes: a Twenty year Update

Zeros of Polynomial Functions

Efficiency of algorithms. Algorithms. Efficiency of algorithms. Binary search and linear search. Best, worst and average case.

Scheduling a sequence of tasks with general completion costs

Chapter 3. if 2 a i then location: = i. Page 40

Linear Programming Sensitivity Analysis

Notes from Week 1: Algorithms for sequential prediction

Convex Programming Tools for Disjunctive Programs

On Quantum Hamming Bound

Two objective functions for a real life Split Delivery Vehicle Routing Problem

Models in Transportation. Tim Nieberg

Erdős on polynomials

Nonlinear Algebraic Equations Example

International Doctoral School Algorithmic Decision Theory: MCDA and MOO

Minimizing the Number of Machines in a Unit-Time Scheduling Problem

constraint. Let us penalize ourselves for making the constraint too big. We end up with a

Applied Algorithm Design Lecture 5

Distributed and Scalable QoS Optimization for Dynamic Web Service Composition

Equilibrium computation: Part 1

Several Views of Support Vector Machines

Can linear programs solve NP-hard problems?

The Impact of Linear Optimization on Promotion Planning

Lecture 2: August 29. Linear Programming (part I)

Linear Threshold Units

Factoring Trinomials: The ac Method

Numerisches Rechnen. (für Informatiker) M. Grepl J. Berger & J.T. Frings. Institut für Geometrie und Praktische Mathematik RWTH Aachen

Approximation Algorithms

Integer Programming: Algorithms - 3

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

3. Linear Programming and Polyhedral Combinatorics

Identification of Hybrid Systems

Efficient and Robust Allocation Algorithms in Clouds under Memory Constraints

Near Optimal Solutions

Lecture 13 Linear quadratic Lyapunov theory

Introduction to Online Learning Theory

Solutions Of Some Non-Linear Programming Problems BIJAN KUMAR PATEL. Master of Science in Mathematics. Prof. ANIL KUMAR

CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Linda Shapiro Winter 2015

MODELS AND ALGORITHMS FOR WORKFORCE ALLOCATION AND UTILIZATION

Recursive Algorithms. Recursion. Motivating Example Factorial Recall the factorial function. { 1 if n = 1 n! = n (n 1)! if n > 1

Algorithm Design and Analysis

Integer Programming Approach to Printed Circuit Board Assembly Time Optimization

Integer Programming Formulation

Cyber-Security Analysis of State Estimators in Power Systems

Sensitivity Analysis 3.1 AN EXAMPLE FOR ANALYSIS

Lecture Notes on Linear Search

Linear Programming. April 12, 2005

How To Solve A Minimum Set Covering Problem (Mcp)

Transcription:

Discrete Optimization [Chen, Batson, Dang: Applied integer Programming] Chapter 3 and 4.1-4.3 by Johan Högdahl and Victoria Svedberg Seminar 2, 2015-03-31

Todays presentation Chapter 3 Transforms using 0-1 variables 3.1 Transform logical expressions 3.2 Transform Non-binary to 0-1 variable 3.3 Transform Piecewise Linear Functions 3.4 Transform 0-1 Polynomial Functions 3.5 Transform Functions with Products of 0-1 and Cont. Variables 3.6 Transform Non-simultaneous Constraints Chapter 4 Better formulation by preprocessing 4.1 Better Formulation 4.2 Automatic Problem Preprocessing 4.3 Tightening bounds on Variables

3.1 Transform logical expressions It may be natural to formulate expressions as logical expressions Example: If we select project A then we will also select project B The logical relations is Conjuntion (A and B) Disjunction (A or B) Simple implication (if A then B) Double implication (A if and only if B) Negation (not A)

3.1 Transform logical expressions Consider the project planning problem. Decision variables: Let y j = 1 if we select project j, else 0. Formulated as logical statements A: project A is selected (y A = 1) or not selected (y A = 0) B: project B is selected (y B = 1) or not selected (y B = 0)

3.1 Transform logical expressions Conjunction (A and B) A and B => both A and B are selected Transforms into: y A = 1 and y B = 1 Alternative formulation: y A + y B = 2 Disjunction (A or B) A or B => either A or B are selected or both are selected Transforms into: y A + y B 1

3.1 Transform logical expressions Simple implication (if A then B) If A then B => if A are selected then B are selected, else B are either selected or not selected Transforms into: y A y B Double implication (A if and only if B) A if and only if B <=> (if A then B) and (if B then A) which is expressed as y A y B and y B y A Transforms into: y A = y B

3.1 Transform logical expressions Negation (not A) Not A reverses the statement A, that is not(y A = 1) => y A = 0. Relation between either/or and if/then statements If A then B <=> not A or B True since when A is true; not A is false so B must be true if the statement shall be true. In the other case when A is false the statement is true if independent of B. Multiple boolean operations on variables

3.2 Transform non-binary to 0-1 variable Non-binary variables General integer variables y {0,1,2,...} Discrete variables that takes on non-consecutive integer values. For example y {2,5,9,21} Other cases are easily transformed into one of the to categories above

3.2 Transform non-binary to 0-1 variable Transform integer variables Any finite upper bounded integer variable can be expressed by a set of 0-1 variables. Example: x 20 can be expressed as Where y j {0,1} for each j = 0,...,4 Generally we can express an integer x u as Where y j {0,1} for each j = 0,...,k

3.2 Transform non-binary to 0-1 variable How many binary variables do we need? The sequence of coefficients is given recursively by (1) With k coefficients u is bounded by Which implies that Taking log 2 of (2) gives (2) We need binary variables to represent a integer x u.

3.2 Transform non-binary to 0-1 variable Comments If -b z u and b > 0 then we just et z' = z + b so we have 0 z' u + b. The number of variables grows logarithmic. Transforming general integer variables is useful when There is a small number of variables and each having a low upper bound The proposed 0-1 algorithm is much more efficient than the existing general integer algorithm

3.2 Transform non-binary to 0-1 variable Transforming discrete variables If a variable is only allowed to take on one value in a list of integer numbers then we can replace that variable with a set of 0-1 variables. Example If z {1,5,7,9,23} then we may introduce y i = 1 if the i:th element of the list is chosen, else 0. That is z = y 1 + 5y 2 + 7y 3 + 9y 4 + 23y 5 y 1 + y 2 + y 3 + y 4 + y 5 = 1 (this is also called a multiple choice constraint) y 1 {0,1} for each i = 1,...,5

Transform piecewise linear functions f (x) = 10x if 0 x 100 (1) f (x) = 100 + 9x if 100 x 300 (2) f (x) = 1000 + 6x if 300 x 500 (3)

Transform piecewise linear functions Every point x in the linesegment between the consecutive points a i and a i+1 can be described as: x = λ k a k + (1 λ k )a k+1 where 0 λ k 1 (4)

Transform piecewise linear functions f (x) is also a linesegment between f (a i ) and f (a i+1 ) it can therefore be described similarly: f (x) = λ k f (a k ) + (1 λ k )f (a k+1 ) where 0 λ k 1 (5)

General model: Transform piecewise linear functions x = λ 1a 1 + λ 2a 2 + + λ r+1a r+1 (6) f (x) = λ 1f (a 1) + λ 2f (a 2) + + λ r+1f (a r+1) (7) λ 1 y 1 (8) λ 2 y 1 + y 2 (9) λ 3 y 2 + y 3 (10). (11) λ r y r 1 + y r (12) λ r+1 y r (13) r y k = 1 (14) k=1 r+1 λ k = 1 (15) k=1 y k 0 k (16) y k {0, 1}, 0 λ k 1 (17)

Transform concave piecewise linear functions Due to properties of a concave function, the model can be improved the following way: Each linesegment may be expressed as: The intercepts are formulated as: f (x) = b i + s i x (18) t 0 = 0, at a 0 = 0 (19) t i = t i 1 + s i 1 a i s i a i (20) The model can now be expressed as: (t i y i + s i x i ) (21) constraints i x = x i (22) i a i y i x a i+1 y i i i y i = 1 (23) y i {0, 1} i

Transform 0-1 polynomial functions Quadratic binary function f (y 1, y 2,..., y n) = j y 2 j + i k y i y k (24) f (y 1, y 2,..., y n) = j y j + i k y jk (25) 2y jk y j + y k y jk + 1 j k (26)

Transform 0-1 polynomial functions Binary function of general degree f (y 1, y 2,..., y n) = y j (27) j {1,...,n} f (y 1, y 2,..., y n) = y Q (28) Q y Q y j y Q + ( Q 1) j Q (29)

Transform functions with products of binary and continuous variables Bundle pricing problem Pricing of individual components and bundled components to maximize profit. If there are n components, there are also 2 n 1 bundling possibilities. General problem max s.t. ( ni j y ) ijx j i j y ij = 1 i (30) j (r ij x j )y ij r ij x j But this is nonlinear!

Transform functions with products of binary and continuous variables Bundle pricing problem Pricing of individual components and bundled components to maximize profit. If there are n components, there are also 2 n 1 bundling possibilities. General linear problem Replace y ij x j by z i j and add constraints: max s.t. ( i ni j z ) ij j y ij = 1 i j (r ijy ij z ij ) r ij x j z ij x j (31) z ij r ij y ij z ij x j (1 y ij )M j

3.6 Transform non-simultaneous constraints In order for a given problem formulation to be classified as a MIP each constraint must be satisfied simultaneous, according to the assumptions that we saw last week. But it may happen that we end up with non-simultaneous constraints when we model a problem.

3.6 Transform non-simultaneous constraints Either/or constraints A decision variable may be defined in disjunctive regions, for example out side the interval [a,b]. That is, x a or x b. Such constraints is transformed into x - a My -x + b M(1 - y) y {0,1}

3.6 Transform non-simultaneous constraints p out m constraints must hold (a generalization of the previous) If p out of m constraints must hold and we can choose any combination then we can transform that in the following way. Introduce y i = 1 if constraint i must hold, else 0, and write the constraints as f i (x) - b i My i y 1 + y 2 + + y m = m - p y i {0,1}

3.6 Transform non-simultaneous constraints Disjunctive constraint sets (also a generalization) Suppose that either must one subset of constraints hold or else must another subset hold, but not both. That is Either subset 1: { a i^t*x - b i 0, i = 1...,m 1 } Or subset 2: { c i^t*x d i 0, i = 1...,m 2 } We transform it into simultaneous constraints with the 0-1 variable y by writing the constraints as a i^t*x - b i My for each i = 1...,m 1 c i^t*x d i M(1 - y) for each i = 1...,m 2 y {0,1}

3.6 Transform non-simultaneous constraints Negation of a constraint The negation of a constraint f(x) - b 0 is f(x) - b > 0 <=> -f(x) + b < 0 If/then constraints Since 3.2 we know that (if A then B) <=> (not A or B) Let A be f 1 (x) - b 1 0 and B be f 2 (x) - b 2 0 then Not A is -f 1 (x) + b 1 < 0 So, if f 1 (x) - b 1 0 then f 2 (x) - b 2 0 is equivalent to -f 1 (x) + b 1 < My f 2 (x) - b 2 M(1 - y) y {0,1}

4 Better formulation by preprocessing For every IP-problem there exists many, possibly infinite, alternative formulations and some of these are better then others. Better formulation = easier problem to solve. Some definitions are needed.

4.1 Better formulation First an example Consider the following three pure IP constraints IP1: 2y 1 + 2y 2 3 y 1, y 2 integer IP2: 3y 1 + 2y 2 3 y 1, y 2 integer IP3: y 1 + y 2 1 y 1, y 2 integer All three contain the same set of feasible points S = {(0,0),(0,1),(1,0)} The LP relaxations contains the same feasible solutions and are called alternative formulations of the set S

4.1 Better formulation Polyhedron Formulation S y is the set of feasible integer solutions. S xy is the set of feasible mixed integer solutions.

4.1 Better formulation Comments Any feasible region of a linear program is a polyhedron A polyhedron P is a formulation of S if it contains the exactly same set of feasible solutions as S Example Consider the constraint set

4.1 Better formulation Better formulation Ideal formulation

4.1 Better formulation Comments Which points do we mean with the extreme points? From definition 8.4: extreme points are those points on a convex set that cannot be represented as a strict (0 < t < 1) convex combination of two points. That means that the ideal formulation is the convex hull of S y. When P is a ideal formulation of S y then the optimal LP solution is the same as the optimal IP solution. Ideal formulation means that the integer program is easy.

Automatic problem preprocessing Tightening bounds on variables Fixing variables Eliminating redundant constraints Identifying feasibility Tightening constraints Decomposing the problem into independent subproblems Scaling the coefficient matrix

Tightening bounds on continuous variables min s.t. j c jx j j a ijx j b j i l j x j u j j (32) Isolate the variable one wants to investigate (x k ) and separate positive and negative a j. a ik x ik + a ij x j + a ij x j b i i (33) j k:a ij >0 j k:a ij <0 If a ik > 0, then an upper bound is defined to û k = 1 ( b i a ij l j a ik j k:a ij >0 j k:a ij <0 a ij u j ) (34) If a ik < 0, then a lower bound is defined to ˆlk = 1 ( b i a ij l j a ik j k:a ij >0 j k:a ij <0 a ij u j ) (35)

Tightening bounds on integer variables If x Z: if a ik > 0, then x k û k if a ik < 0, then x k ˆl k If x {0, 1}: Same method, but one knows that 0 x i 1 i.

Variable fixing, redundant constraints and infeasibility max s.t. j c jx j j a ijx j b j i l j x j u j j (36) If a ij > 0 i and c j < 0, fix x j at l j. If a ij < 0 i and c j > 0, fix x j at u j. If l k = u k when applying the bound tightening routine previously described x k can be fixed to l k.

Variable fixing, redundant constraints and infeasibility U i = a ij u j + a ij l j (37) j:a ij >0 j:a ij <0 L i = a ij l j + a ij u j (38) j:a ij >0 j:a ij <0 Check L i b i U i If b i U i then the ith constraint is redundant and can be removed. If b i L i then the ith constraint can not be satisfied and no feasible solution exists. If b i = L i then all x j with a ij > 0 can be fixed at x j = l j and all x j with a ij < 0 can be fixed at x j = u j.