Integer Linear Programming (ILP)

Similar documents
Network Flows. CTU FEE Department of control engineering. March 28, 2017

MVE165/MMG630, Applied Optimization Lecture 6 Integer linear programming: models and applications; complexity. Ann-Brith Strömberg

Introduction to Integer Programming

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

Travelling Salesman Problem

Technische Universität München, Zentrum Mathematik Lehrstuhl für Angewandte Geometrie und Diskrete Mathematik. Combinatorial Optimization (MA 4502)

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

Traveling Salesman Problem

3.7 Cutting plane methods

5 Integer Linear Programming (ILP) E. Amaldi Foundations of Operations Research Politecnico di Milano 1

Resource Constrained Project Scheduling Linear and Integer Programming (1)

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

23. Cutting planes and branch & bound

Exercises NP-completeness

Chapter 3: Discrete Optimization Integer Programming

Multicommodity Flows and Column Generation

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

Decision Procedures An Algorithmic Point of View

4. Duality Duality 4.1 Duality of LPs and the duality theorem. min c T x x R n, c R n. s.t. ai Tx = b i i M a i R n

Cutting Plane Methods II

Introduction to Integer Linear Programming

Chapter 3: Discrete Optimization Integer Programming

4/12/2011. Chapter 8. NP and Computational Intractability. Directed Hamiltonian Cycle. Traveling Salesman Problem. Directed Hamiltonian Cycle

Week Cuts, Branch & Bound, and Lagrangean Relaxation

Outline. Outline. Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING. 1. Scheduling CPM/PERT Resource Constrained Project Scheduling Model

19. Fixed costs and variable bounds

COT 6936: Topics in Algorithms! Giri Narasimhan. ECS 254A / EC 2443; Phone: x3748

15.081J/6.251J Introduction to Mathematical Programming. Lecture 24: Discrete Optimization

Discrete Optimization 2010 Lecture 7 Introduction to Integer Programming

CS675: Convex and Combinatorial Optimization Fall 2014 Combinatorial Problems as Linear Programs. Instructor: Shaddin Dughmi

IS703: Decision Support and Optimization. Week 5: Mathematical Programming. Lau Hoong Chuin School of Information Systems

In complexity theory, algorithms and problems are classified by the growth order of computation time as a function of instance size.

Part 4. Decomposition Algorithms

The traveling salesman problem

What is an integer program? Modelling with Integer Variables. Mixed Integer Program. Let us start with a linear program: max cx s.t.

1 Column Generation and the Cutting Stock Problem

Preliminaries and Complexity Theory

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

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

Introduction to optimization and operations research

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

Chapter 11. Approximation Algorithms. Slides by Kevin Wayne Pearson-Addison Wesley. All rights reserved.

16.410/413 Principles of Autonomy and Decision Making

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

Section #2: Linear and Integer Programming

3.4 Relaxations and bounds

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

Combinatorial optimization problems

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

ACO Comprehensive Exam March 20 and 21, Computability, Complexity and Algorithms

Partition is reducible to P2 C max. c. P2 Pj = 1, prec Cmax is solvable in polynomial time. P Pj = 1, prec Cmax is NP-hard

3.3 Easy ILP problems and totally unimodular matrices

CS675: Convex and Combinatorial Optimization Fall 2016 Combinatorial Problems as Linear and Convex Programs. Instructor: Shaddin Dughmi

8.5 Sequencing Problems

Linear Programming. Scheduling problems

Data Structures in Java

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

Linear and Integer Programming - ideas

Integer Linear Programming

Optimisation and Operations Research

Integer Programming Methods LNMB

Limitations of Algorithm Power

Discrete Optimization 2010 Lecture 8 Lagrangian Relaxation / P, N P and co-n P

Algorithms. Outline! Approximation Algorithms. The class APX. The intelligence behind the hardware. ! Based on

CS 301: Complexity of Algorithms (Term I 2008) Alex Tiskin Harald Räcke. Hamiltonian Cycle. 8.5 Sequencing Problems. Directed Hamiltonian Cycle

Integer programming: an introduction. Alessandro Astolfi

21. Set cover and TSP

Chapter 3: Proving NP-completeness Results

CS Algorithms and Complexity

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.

Branch-and-Bound for the Travelling Salesman Problem

Lectures 6, 7 and part of 8

Discrete (and Continuous) Optimization WI4 131

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

Discrete Optimization in a Nutshell

Chapter 11. Approximation Algorithms. Slides by Kevin Wayne Pearson-Addison Wesley. All rights reserved.

Introduction to integer programming III:

Deciding Emptiness of the Gomory-Chvátal Closure is NP-Complete, Even for a Rational Polyhedron Containing No Integer Point

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

Computational complexity theory

The CPLEX Library: Mixed Integer Programming

Integer Programming Part II

BBM402-Lecture 20: LP Duality

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

The Separation Problem for Binary Decision Diagrams

Integer Linear Programming Modeling

NP-completeness. Chapter 34. Sergey Bereg

Week 8. 1 LP is easy: the Ellipsoid Method

Totally unimodular matrices. Introduction to integer programming III: Network Flow, Interval Scheduling, and Vehicle Routing Problems

Undecidable Problems. Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science May 12, / 65

Column Generation. ORLAB - Operations Research Laboratory. Stefano Gualandi. June 14, Politecnico di Milano, Italy

Structured Problems and Algorithms

Lecture 8: Column Generation

3.10 Column generation method

GRAPH ALGORITHMS Week 7 (13 Nov - 18 Nov 2017)

Introduction to Bin Packing Problems

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

18 hours nodes, first feasible 3.7% gap Time: 92 days!! LP relaxation at root node: Branch and bound

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

Linear programs, convex polyhedra, extreme points

Transcription:

Integer Linear Programming (ILP) Zdeněk Hanzálek, Přemysl Šůcha hanzalek@fel.cvut.cz CTU in Prague March 8, 2017 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 1 / 43

Table of contents 1 Introduction Problem Statement Comparison of ILP and LP Examples 2 Algorithms Enumerative Methods Branch and Bound Method Special Cases of ILP 3 Problem Formulation Using ILP 4 Conclusion Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 2 / 43

Problem Statement Integer Linear Programming (ILP) The ILP problem is given by matrix A R m n and vectors b R m and c R n. The goal is to find a vector x Z n such that A x b and c T x is the maximum. Usually, the problem is given as max { c T x : A x b, x Z n}. A large number of practical optimization problems can be modeled and solved using Integer Linear Programming - ILP. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 3 / 43

Comparison of ILP and LP The ILP problem differs from the LP problem in allowing only integer-valued variables. If some variables can contain real numbers, the problem is called Mixed Integer Programming - MIP. Often MIP is also called ILP, and we will use the term ILP when at least one variable has integer domain. If we solve the ILP problem by an LP algorithm and then just round the solution, we could not only get the suboptimal solution, we can also obtain a solution which is not feasible. While the LP is solvable in polynomial time, ILP is NP-hard, i.e. there is no known algorithm which can solve it in polynomial time. Since the ILP solution space is not a convex set, we cannot use convex optimization techniques. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 4 / 43

Example ILP1a: 2-Partition Problem 2-Partition Problem Instance: Number of banknotes n Z + and their values p 1,..., p n, where p i 1..n Z +. Decision: Is there a subset S {1,..., n} such that i S p i = i / S p i? The decision problem, which can be written while using the equation above as an ILP constraint (but we write it differently). x i = 1 iff i S This is one of the easiest NP-complete problems. min 0 subject to: i 1..n x i p i = 0.5 i 1..n p i parameters: n Z +, p i 1..n Z + variables: x i 1..n {0, 1} Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 5 / 43

For example: p = [100, 50, 50, 50, 20, 20, 10, 10] the fractional variant allows for x = [0, 0, 0.9, 1, 1, 1, 1, 1] and thus divides the banknotes into equal halves 100 + 50 + 5 = 45 + 50 + 20 + 20 + 10 + 10, but this instance does not have a non-fractional solution. For some non-fractional instances we can easily find that they cannot be partitioned (e.g. when the sum of all values divided by the greatest common divisor is not an even number), however we do not know any alg that can do it in polynomial time for any non-fractional instance. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 6 / 43 Example ILP1b: Fractional Variant of the 2-Part. Prob. We allow division of banknotes such that x i 1..n 0, 1. The solution space is a convex set - the problem can be formulated by LP: min 0 subject to: i 1..n x i p i = 0.5 i 1..n p i x i 1 i 1..n parameters: n Z + 0, p i 1..n Z + 0 variables: x i 1..n R + 0

Application: the scheduling of nonpreemptive tasks {T 1, T 2,..., T n } with processing times [p 1, p 2,..., p n ] on two parallel identical processors and minimization of the completion time of the last task (i.e. maximum completion time C max ) - P2 C max. The fractional variant of 2-partition problem corresponds to the preemptive scheduling problem. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 7 / 43 Example ILP1c: 2-Partition Prob. - Optimization Version The decision problem can be solved by an optimization algorithm while using a threshold value (here 0.5 i 1..n p i) and comparing the optimal solution with the threshold. Moreover, when the decision problem has no solution, the optimization algorithm returns a value that is closest to the threshold. min C max subject to: i 1..n x i p i C max i 1..n (1 x i) p i C max parameters: n Z + 0, p i 1..n Z + 0 variables: x i 1..n {0, 1}, C max R + 0

Example ILP2a: Shortest Paths Shortest Path in directed graph Instance: digraph G with n nodes, distance matrix c : V V R + 0 and two nodes s, t V. Goal: find the shortest path from s to t or decide that t is unreachable from s. LP formulation using a physical analogy: node = ball edge = string (we consider a symmetric distance matrix c) node s is fixed, other nodes are pulled by gravity tightened string = shortest path Is it a polynomial problem? max l t subject to: l s = 0 l j l i + c i,j i 1..n, j 1..n parameters: n Z + 0, c i 1..n,j 1..n R + 0 variables: l i 1..n R + 0 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 8 / 43

Example ILP3: Traveling Salesman Problem Asymmetric Traveling Salesman Problem Instance: complete digraph K n (n 3), distance matrix c : V V Q +. Goal: find the shortest Hamiltonian cycle (i.e. a closed oriented walk going through all nodes). x i,j = 1 iff node i is in the cycle just before node j The enter and leave constraints do not capture the TSP completely, since any disjoint cycle (i.e. consisting of several sub-tours) will satisfy them. We use s i, the time of entering node i, to eliminate the sub-tours. min i 1..n j 1..n c i,j x i,j subject to: i 1..n x i,j = 1 j 1..n enter once j 1..n x i,j = 1 i 1..n leave once s i + c i,j (1 x i,j ) M s j i 1..n, j 2..n cycle indivisibility parameters: M Z + 0, n Z+ 0, c i 1..n,j 1..n Q + variables: x i 1..n,j 1..n {0, 1}, s i 1..n R + 0 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 9 / 43

Algorithms The most successful methods to solve the ILP problem are: Enumerative Methods Branch and Bounds Cutting Planes Methods Ralph Gomory and Vašek Chvátal are prominent personalities in the field of ILP. Some of the solution methods are called: Gomory s Cuts or Chvátal-Gomory s cuts. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 10 / 43

Enumerative Methods Based on the idea of inspecting all possible solutions. Due to the integer nature of the variables, the number of solutions is countable, but their number is huge. So this method is usually suited only for smaller instances with a small number of variables. The LP problem is solved for every combination of discrete variables. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 11 / 43

Enumerative Methods max 2x 1 + x 2 s.t. 9x 1 3x 2 11 x 1 + 2x 2 10 2x 1 x 2 7 x 1, x 2 0, x 1, x 2 Z + 0 The figure below shows 10 feasible solutions. The optimal solution is x 1 = 2, x 2 = 2 with an objective function value of 2. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 12 / 43

Branch and Bound Method The method is based on splitting the solution space into disjoint sets. It starts by relaxing on the integrality of the variables and solves the LP problem. If all variables x i are integers, the computation ends. Otherwise one variable x i / Z is chosen and its value is assigned to k. Then the solution space is divided into two sets - in the first one we consider x i k and in the second one x i k + 1. The algorithm recursively repeats computation for the both new sets till feasible integer solution is found. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 13 / 43

Branch and Bound Method By branching the algorithm creates a solution space which can be depicted as a tree. A node represents the partial solution. A leaf determines some (integer) solution or bounded branch (infeasible solution or the solution which does not give a better value than the best solution found up to now) As soon as the algorithm finds an integer solution, its objective function value can be used for bounding The node is discarded whenever z, its (integer or real) objective function value, is worse than z, the value of the best known solution The ILP algorithm often uses an LP simplex method because after adding a new constraint it is not needed to start the algorithm again, but it allows one to continue the previous LP computation while solving the dual simplex method. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 14 / 43

Branch and Bound Algorithm - ILP maximization problem b b function z,x = ILP(A,b,c,z,x ) LP LP z,x := solution to LP problem z,x := -, [ ] return 8 b b z,x := z,x return yes yes Is the solution to LP infeasible? no LP b z <= z no select some non-integer x i k := x i solve recursively two problems: the first one extended with x i < = k b b z,x := ILP(A,b,c, z,x ) b b b if z > z then z,x := z,x the second one extended with x i => k+1 b b z,x := ILP(A,b,c,z,x ) b b b if z > z then z,x := z,x LP LP z,x := z,x return yes Are all variables integer? no b b z,x := z,x return Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 15 / 43

Branch and Bound - Example max - x + 2x 1 2 2x + x < 5 1 2-4x + 4x < 5 1 2 x, x > 0 1 2 x, x Z 1 2 Search direction 3 2 x 2 1 x = 1.25 1 0 1 2 3 x 1 x 1< 1 x 1> 2 x 2= 2.5 z = 3.75 3 x < 1 1 3 x > 2 1 2 2 3 2 x 2 1 0 x 2 1 2 3 x 1 1 0 1 2 3 x 1 x 2< 2 x 2> 3 x 1< 1 x < 2 2 x = 0,75 1 x 2= 2 z = 3,25 x < 0 x 1> 1 1 x = 1 1 x 2= 2,25 z = 3,5 Infeasible solution x 2 1 0 1 2 3 x 1 x = 2 1 x 2= 1 z = 0 The third feasible solution It is not needed to continue since z < z *. Since the search space has no other solution with z > z *, algorithm terminates. 3 2 x 1< 0 x < 2 2 3 2 x 1= 1 x < 2 2 x 2 1 0 1 2 3 x 1 x = 0 1 x 2= 1.25 z = 2,5 x < 1 x 2> 2 2 x 2 1 0 1 2 3 x 1 x = 1 1 x 2= 2 z * = z = 3 The second feasible solution with a better value 3 2 x 1= 0 x < 1 2 Infeasible solution x 2 1 0 1 x 2 3 1 x = 0 1 x 2= 1 The first feasible solution z * = z = 2 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 16 / 43

ILP Solution Space max z = 3x 1 + 4x 2 s.t. 5x 1 + 8x 2 24 x 1, x 2 Z + 0 What is optimal solution? Can we use LP to solve ILP problem? Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 17 / 43

Rounding is not always good choice max z = 3x 1 + 4x 2 LP solution z = 14.4 for x 1 = 4.8, x 2 = 0 Round, get infeasible solution x 1 = 5, x 2 = 0 Truncate, get z = 12 for x 1 = 4, x 2 = 0 Optimal solution is z = 13 for x 1 = 3, x 2 = 1 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 18 / 43

Why integer programming? Advantages of using integer variables more realistic (it does not make sense to produce 4.3 cars) flexible - e.g. binary variable can be used to model the decision (logical expression) we can formulate NP-hard problems Drawbacks harder to create a model usually suited to solve the problems with less than 1000 integer variables Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 19 / 43

Special Cases of ILP - Example ILP2b: Shortest Paths Shortest path in a graph Instance: digraph G given by incidence matrix W : V E { 1, 0, +1} (such that w ij = +1 when edge e j leaves vertex i), distance vector c R + 0 and two nodes s, t V. Goal: find the shortest path from s to t or decide that t is unreachable from s. LP formulation: x j = 1 iff edge j is chosen For every node except s and t we enter the node as many times as we leave it min j 1..m c j x j subject to: j 1..m w s,j x j = 1 source s j 1..m w t,j x j = 1 sink t j 1..m w i,j x j = 0 i V \ {s, t} pars: w i 1..n,j 1..m { 1, 0, 1}, c j 1..m R + 0 vars: x j 1..m R + 0 The returned values of x i are integers (binary) even though it is LP. Why? Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 20 / 43

Special Cases of ILP - Totally Unimodular Matrix Polynomial time algorithm for general ILP is not known, however there are special cases which can be solved in polynomial time. Definition - Totally unimodular matrix Matrix A = [a ij ] of size m/n is totally unimodular if the determinant of every square submatrix of matrix A is equal 0, +1 or -1. Necessary condition: if A is totally unimodular then a ij {0, 1, 1} i, j. Example: ILP constraints of Shortest Paths problem are W x = b v 1 v 2 W = e 1 e 2 e 5 v4 e 3 e 4 v 3 e 1 e 2 e 3 e 4 e 5 v 1 1 0 1 0 1 v 2 1 1 0 0 0 v 3 0 0 1 1 0 v 4 0 1 0 1 1 x = x 1 x 2 x 3 x 4 x 5 b = 1 0 0 1 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 21 / 43

Totally Unimodular Matrix Lemma - Sufficient Condition Let A be matrix of size m/n such that 1 a ij {0, 1, 1}, i = 1,..., m, j = 1,..., n 2 each column in A contains one non-zero element or exactly two non-zero elements +1 and 1 Then matrix A is totally unimodular. Lemma - Integer solution by simplex algorithm The ILP problem with a totally unimodular matrix A and integer vector b can be solved by a simplex algorithm and the solution will be an integer. Lemma - Polynomial time complexity The ILP problem with a totally unimodular matrix A and integer vector b can be solved in polynomial time. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 22 / 43

Problem Formulation Using ILP - Real Estate Investment We consider 6 buildings for investment. The price and rental income for each of them are listed in the table. building 1 2 3 4 5 6 price[mil. Kč] 5 7 4 3 4 6 Goal: income[thousands Kč] 16 22 12 8 11 19 maximize income Constraints: investment budget is 14 mil Kč each building can be bought only once Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 23 / 43

Problem Formulation Using ILP - Real Estate Investment We consider 6 buildings for investment. The price and rental income for each of them are listed in the table. building 1 2 3 4 5 6 price[mil. Kč] 5 7 4 3 4 6 Goal: income[thousands Kč] 16 22 12 8 11 19 maximize income Constraints: investment budget is 14 mil Kč each building can be bought only once Formulation x i = 1 if we buy building i max z = 16x 1 +22x 2 +12x 3 + 8x 4 +11x 5 +19x 6 s.t. 5x 1 + 7x 2 + 4x 3 + 3x 4 + 4x 5 + 6x 6 14 x i 1 6 {0, 1} Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 23 / 43

Adding Logical Formula x 1 x 3 Another constraint: If building 1 is selected, then building 3 is not selected. x 1 x 3 x 1 x 3 0 0 1 0 1 1 1 0 1 1 1 0 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 24 / 43

Adding Logical Formula x 1 x 3 Another constraint: If building 1 is selected, then building 3 is not selected. x 1 x 3 x 1 x 3 0 0 1 0 1 1 1 0 1 1 1 0 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 24 / 43

Adding Logical Formula x 1 x 3 Another constraint: If building 1 is selected, then building 3 is not selected. x 1 x 3 x 1 x 3 0 0 1 0 1 1 1 0 1 1 1 0 max z = 16x 1 +22x 2 +12x 3 + 8x 4 +11x 5 +19x 6 s.t. 5x 1 + 7x 2 + 4x 3 + 3x 4 + 4x 5 + 6x 6 14 x 1 + x 3 1 x i 1 6 {0, 1} Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 24 / 43

Adding Logical Formula x 2 x 1 Another constraint: if building 2 is selected, then building 1 is selected too x 1 x 2 x 2 x 1 0 0 1 0 1 0 1 0 1 1 1 1 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 25 / 43

Adding Logical Formula x 2 x 1 Another constraint: if building 2 is selected, then building 1 is selected too x 1 x 2 x 2 x 1 0 0 1 0 1 0 1 0 1 1 1 1 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 25 / 43

Adding Logical Formula x 2 x 1 Another constraint: if building 2 is selected, then building 1 is selected too x 1 x 2 x 2 x 1 0 0 1 0 1 0 1 0 1 1 1 1 max z = 16x 1 +22x 2 +12x 3 + 8x 4 +11x 5 +19x 6 s.t. 5x 1 + 7x 2 + 4x 3 + 3x 4 + 4x 5 + 6x 6 14 x 2 x 1 x i 1 6 {0, 1} Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 25 / 43

Adding Logical Formula x 4 XOR x 5 Another constraint: either building 4 is chosen or building 5 is chosen, but not both x 4 x 5 x 4 XOR x 5 0 0 0 0 1 1 1 0 1 1 1 0 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 26 / 43

Adding Logical Formula x 4 XOR x 5 Another constraint: either building 4 is chosen or building 5 is chosen, but not both x 4 x 5 x 4 XOR x 5 0 0 0 0 1 1 1 0 1 1 1 0 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 26 / 43

Adding Logical Formula x 4 XOR x 5 Another constraint: either building 4 is chosen or building 5 is chosen, but not both x 4 x 5 x 4 XOR x 5 0 0 0 0 1 1 1 0 1 1 1 0 max z = 16x 1 +22x 2 +12x 3 + 8x 4 +11x 5 +19x 6 s.t. 5x 1 + 7x 2 + 4x 3 + 3x 4 + 4x 5 + 6x 6 14 x 4 + x 5 = 1 x i 1 6 {0, 1} Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 26 / 43

Adding Logical Formula - Homework Formulate: building 1 must be chosen but building 2 can not at least 3 estates must be chosen exactly 3 estates must be chosen if estates 1 and 2 have been chosen, then estate 3 must be chosen too (x 1 AND x 2 ) x 3 exactly 2 estates can not be chosen Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 27 / 43

Problem Formulation Using ILP - Cloth Production Labor costs, material demand and profit are listed in the table product T-shirt shirt trousers capacity labor costs 3 2 6 150 material 4 3 4 160 Goal: profit 6 4 7 maximize the profit Constraints: labor capacity is 150 person-hours material capacity is 160 meters Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 28 / 43

Problem Formulation Using ILP - Cloth Production Labor costs, material demand and profit are listed in the table product T-shirt shirt trousers capacity labor costs 3 2 6 150 material 4 3 4 160 Goal: profit 6 4 7 maximize the profit Constraints: labor capacity is 150 person-hours material capacity is 160 meters Formulation x i is the amount of product i max z = 6x 1 +4x 2 +7x 3 s.t. 3x 1 +2x 2 +6x 3 150 4x 1 +3x 2 +4x 3 160 x i 1 3 Z + 0 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 28 / 43

Adding Relationship between Binary and Integer Variable Another constraint: the fixed cost has to be covered to rent the machine product T-shirt shirt trousers machine cost 200 150 100 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 29 / 43

Adding Relationship between Binary and Integer Variable Another constraint: the fixed cost has to be covered to rent the machine Formulation product T-shirt shirt trousers machine cost 200 150 100 add binary variable y i such that y i = 1 when the machine producing product i is the rent the objective function will be changed to max z = 6x 1 + 4x 2 + 7x 3 200y 1 150y 2 100y 3 join binary y i with integer x i Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 29 / 43

Adding Relationship between Binary and Integer Variable Machine i is rented when product i is produced. We join binary y i with integer x i such that: y i = 0 iff x i = 0 y i = 1 iff x i 1 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 30 / 43

Adding Relationship between Binary and Integer Variable Machine i is rented when product i is produced. We join binary y i with integer x i such that: y i = 0 iff x i = 0 y i = 1 iff x i 1 For range x i 0, 100 these relations can be written as inequalities x i 100 y i x i y i...we can omit this inequality due to the objective function (x i = 0, y i = 1 will not be chosen because we want x i to be maximal and y i minimal) Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 30 / 43

Considering Several Values Another constraint: Total amount of work can be 40, 80 or 120 hours in order to better fit the work contract We only want some values of person-hours to be available: 3x 1 + 2x 2 + 6x 3 = either 40 or 80 or 120 Can be formulated using a set of additional variables v i 1...3 {0, 1} as follows: 3x 1 + 2x 2 + 6x 3 = 40v 1 + 80v 2 + 120v 3 3 i=1 v i = 1 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 31 / 43

At least One of Two Constraints Must be Valid While modeling problems using ILP, we often need to express that the first, the second or both constraints hold. For example, x i 1...4 0, 5, x i 1...4 R holds 2x 1 + x 2 5 or 2x 3 x 4 2 or both This can be modeled by a big M, i.e. big positive number (here 15), and variable y {0, 1} so it can switch off one of the inequalities. 2x 1 + x 2 5 + M y 2x 3 x 4 2 + M (1 y) Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 32 / 43

At least One of Two Constraints Must be Valid for y = 0 inequalities: 2x 1 + x 2 5 + M y 2x 3 x 4 2 + M (1 y) reduce to: 2x 1 + x 2 5 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 33 / 43

At least One of Two Constraints Must be Valid for y = 0 inequalities: 2x 1 + x 2 5 + M y 2x 3 x 4 2 + M (1 y) reduce to: 2x 1 + x 2 5 for y = 1 inequalities: 2x 1 + x 2 5 + M y 2x 3 x 4 2 + M (1 y) reduce to: 2x 3 x 4 2 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 33 / 43

At least One of Two Constraints Must be Valid - Homework In 2D draw the solution space of the system of inequalities: 2x 1 + x 2 5 + M y 2x 1 x 2 2 + M (1 y) y {0, 1} In 2D draw the solution space of the system of inequalities. Note that the equations correspond to parallel lines. Is it possible to find x 1, x 2 such that both equations are valid simultaneously? 2x 1 + x 2 5 + M y M (1 y) + 2x 1 + x 2 10 y {0, 1} Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 34 / 43

At least One of Two Constraints Must be Valid Example: Non-preemptive Scheduling 1 r j, d j Cmax... NP-hard problem Example: Instance: A set of non-preemptive tasks T = {T 1,..., T i,... T n } with release date r and deadline d should be executed on one processor. The processing times are given by vector p. Goal: Find a feasible schedule represented by start times s that minimizes completion time C max = max i 1,n s i + p i or decide that it does not exist. T i - chair to be produced by a joiner r i - time, when the material is available d i - time when the chair must be completed s i - time when the chair production starts s i + p i - time when the chair production ends Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 35 / 43

At least One of Two Constraints Must be Valid Example: Non-preemptive Scheduling Since at the given moment, at most, one task is running on a given resource, therefore, for all task pairs T i, T j it must hold: 1 T i precedes T j (s j s i + p i ) 2 or T j precedes T i (s i s j + p j ) Note that (for p i > 0) both inequalities can t hold simultaneously. We need to formulate that at least one inequality holds. We will use variable x ij {0, 1} such that x ij = 1 if T i preceds T j. For every pair T i, T j we introduce inequalities: s j + M (1 x ij ) s i + p i switched off when x ij = 0 s i + M x ij s j + p j switched off when x ij = 1 Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 36 / 43

Scheduling - Illustration of Non-convex Space s i r i i 1..n release date d i s i + p i i 1..n deadline s j + M (1 x ij ) s i + p i i 1..n, j < i T i precedes T j s i + M x ij s j + p j i 1..n, j < i T j precedes T i For example: p i = 2, p j = 3, r i = r j = 0, d i = 9, d j = 10 Non-convex 2D space is a projection of two cuts of a 3D polytope (determined by the set of inequalities) in planes x = 0 and x = 1. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 37 / 43

At least K of N Constraints Must Hold We have N constraints and we need at least K of them to hold. Constraints are of type: f (x 1, x 2,..., x n ) b 1 f (x 1, x 2,..., x n ) b 2. f (x 1, x 2,..., x n ) b N Can be solved by introducing N variables y i 1...N {0, 1} such that f (x 1, x 2,..., x n ) b 1 + M y 1 f (x 1, x 2,..., x n ) b 2 + M y 2. f (x 1, x 2,..., x n ) b N + M y N N i=1 y i = N K If K = 1 and N = 2 we can use just one variable y i and represent its negation as a (1 y i ), see above slides for details. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 38 / 43

ILP Solvers CPLEX - proprietary IBM http://www-03.ibm.com/software/ products/en/ibmilogcpleoptistud MOSEK - proprietary http://www.mosek.com/ GLPK - free http://www.gnu.org/software/glpk/ LP SOLVE - free http://groups.yahoo.com/group/lp_solve/ GUROBI - proprietary http://www.gurobi.com/ YALMIP - Matlab toolbox for modelling ILP problems Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 39 / 43

Cutting Planes Method Another group of algorithms are cutting planes methods. Its general idea is (similarly to the branch and bound method) to repeat the solution of LP problems. It iteratively adds a constraint that cuts off part of the solution space. The new constraint must fulfill these conditions: The solution found by LP becomes infeasible All integer solutions feasible in the last step have to remain feasible. Among the best known methods are Dantzig Cuts, Gomory Cuts and Chvátal-Gomory Cuts. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 40 / 43

Gomory Cuts Algorithm 1 (Initialization) Solve the problem as an LP by a simplex algorithm 2 (Optimality test) If the solution is an integer, the computation ends 3 (Reduction) Add new constraint (Gomory cut) into the simplex table. Optimize the problem by dual LP, then goto 2 min x 1 + 2x 2 s.t. 3x 1 + 4x 2 6 4x 1 + 3x 2 12 x 1, x 2 0, x 1, x 2 Z Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 41 / 43

ILP - Conclusion NP-hard problem. Used to formulate majority of combinatorial problems. Often solved by branch and bound method. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 42 / 43

References B. H. Korte and Jens Vygen. Combinatorial Optimization: Theory and Algorithms. Springer, fourth edition, 2008. James B. Orlin. 15.053 Optimization Methods in Management Science. MIT OpenCourseWare, 2007. Z. Hanzálek (CTU) Integer Linear Programming (ILP) March 8, 2017 43 / 43