Linear Programming Motivation: The Diet Problem

Similar documents
Mathematical and Algorithmic Foundations Linear Programming and Matchings

Linear programming and duality theory

Outline. CS38 Introduction to Algorithms. Linear programming 5/21/2014. Linear programming. Lecture 15 May 20, 2014

Section Notes 5. Review of Linear Programming. Applied Math / Engineering Sciences 121. Week of October 15, 2017

Lecture Notes 2: The Simplex Algorithm

Duality. Primal program P: Maximize n. Dual program D: Minimize m. j=1 c jx j subject to n. j=1. i=1 b iy i subject to m. i=1

CS 473: Algorithms. Ruta Mehta. Spring University of Illinois, Urbana-Champaign. Ruta (UIUC) CS473 1 Spring / 29

Linear Programming Duality and Algorithms

CS 473: Algorithms. Ruta Mehta. Spring University of Illinois, Urbana-Champaign. Ruta (UIUC) CS473 1 Spring / 36

3. The Simplex algorithmn The Simplex algorithmn 3.1 Forms of linear programs

Lecture notes on the simplex method September We will present an algorithm to solve linear programs of the form. maximize.

DM545 Linear and Integer Programming. Lecture 2. The Simplex Method. Marco Chiarandini

Section Notes 4. Duality, Sensitivity, and the Dual Simplex Algorithm. Applied Math / Engineering Sciences 121. Week of October 8, 2018

Introduction to Mathematical Programming IE496. Final Review. Dr. Ted Ralphs

Linear Programming and its Applications

Linear Programming. Course review MS-E2140. v. 1.1

Advanced Operations Research Techniques IE316. Quiz 2 Review. Dr. Ted Ralphs

CS675: Convex and Combinatorial Optimization Spring 2018 The Simplex Algorithm. Instructor: Shaddin Dughmi

Some Advanced Topics in Linear Programming

11 Linear Programming

Linear Programming: Introduction

4 LINEAR PROGRAMMING (LP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Heuristic Optimization Today: Linear Programming. Tobias Friedrich Chair for Algorithm Engineering Hasso Plattner Institute, Potsdam

Artificial Intelligence

Linear Programming. Linear programming provides methods for allocating limited resources among competing activities in an optimal way.

An iteration of the simplex method (a pivot )

Algorithmic Game Theory and Applications. Lecture 6: The Simplex Algorithm

Econ 172A - Slides from Lecture 2

The Simplex Algorithm

Linear Programming. Larry Blume. Cornell University & The Santa Fe Institute & IHS

6.854 Advanced Algorithms. Scribes: Jay Kumar Sundararajan. Duality

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

AM 121: Intro to Optimization Models and Methods Fall 2017

Linear Programming. Linear Programming. Linear Programming. Example: Profit Maximization (1/4) Iris Hui-Ru Jiang Fall Linear programming

CS 473: Algorithms. Ruta Mehta. Spring University of Illinois, Urbana-Champaign. Ruta (UIUC) CS473 1 Spring / 50

College of Computer & Information Science Fall 2007 Northeastern University 14 September 2007

Dual-fitting analysis of Greedy for Set Cover

Discrete Optimization 2010 Lecture 5 Min-Cost Flows & Total Unimodularity

New Directions in Linear Programming

Lecture 5: Duality Theory

Advanced Algorithms Linear Programming

16.410/413 Principles of Autonomy and Decision Making

Math Models of OR: The Simplex Algorithm: Practical Considerations

Linear Programming in Small Dimensions

15-451/651: Design & Analysis of Algorithms October 11, 2018 Lecture #13: Linear Programming I last changed: October 9, 2018

Linear and Integer Programming :Algorithms in the Real World. Related Optimization Problems. How important is optimization?

Math 5593 Linear Programming Lecture Notes

Outline. Combinatorial Optimization 2. Finite Systems of Linear Inequalities. Finite Systems of Linear Inequalities. Theorem (Weyl s theorem :)

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs

Finite Math Linear Programming 1 May / 7

5. DUAL LP, SOLUTION INTERPRETATION, AND POST-OPTIMALITY

MA4254: Discrete Optimization. Defeng Sun. Department of Mathematics National University of Singapore Office: S Telephone:

4 Linear Programming (LP) E. Amaldi -- Foundations of Operations Research -- Politecnico di Milano 1

Integer Programming Theory

AMS : Combinatorial Optimization Homework Problems - Week V

Lecture 6: Faces, Facets

Read: H&L chapters 1-6

Linear Programming. Readings: Read text section 11.6, and sections 1 and 2 of Tom Ferguson s notes (see course homepage).

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

Lecture 16 October 23, 2014

The simplex method and the diameter of a 0-1 polytope

Design and Analysis of Algorithms (V)

Linear Programming Problems

Lesson 17. Geometry and Algebra of Corner Points

Recap, and outline of Lecture 18

In this chapter we introduce some of the basic concepts that will be useful for the study of integer programming problems.

1. Lecture notes on bipartite matching

J Linear Programming Algorithms

Solutions for Operations Research Final Exam

CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension

R n a T i x = b i} is a Hyperplane.

Notes taken by Mea Wang. February 11, 2005

Civil Engineering Systems Analysis Lecture XIV. Instructor: Prof. Naveen Eluru Department of Civil Engineering and Applied Mechanics

Chapter II. Linear Programming

CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I. Instructor: Shaddin Dughmi

ORF 307: Lecture 14. Linear Programming: Chapter 14: Network Flows: Algorithms

Approximation Algorithms

maximize minimize b T y subject to A T y c, 0 apple y. The problem on the right is in standard form so we can take its dual to get the LP c T x

Approximation Algorithms: The Primal-Dual Method. My T. Thai

COMP331/557. Chapter 2: The Geometry of Linear Programming. (Bertsimas & Tsitsiklis, Chapter 2)

NATCOR Convex Optimization Linear Programming 1

LECTURE 6: INTERIOR POINT METHOD. 1. Motivation 2. Basic concepts 3. Primal affine scaling algorithm 4. Dual affine scaling algorithm

Approximation Algorithms

1. Lecture notes on bipartite matching February 4th,

3 No-Wait Job Shops with Variable Processing Times

Math 414 Lecture 30. The greedy algorithm provides the initial transportation matrix.

Discrete Optimization. Lecture Notes 2

Introduction. Linear because it requires linear functions. Programming as synonymous of planning.

Combinatorial Optimization

Linear Programming Terminology

4 Integer Linear Programming (ILP)

Chapter 15 Introduction to Linear Programming

4.1 Graphical solution of a linear program and standard form

4 Greedy Approximation for Set Cover

OPERATIONS RESEARCH. Linear Programming Problem

Polytopes Course Notes

Linear Programming. Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015

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

LP Geometry: outline. A general LP. minimize x c T x s.t. a T i. x b i, i 2 M 1 a T i x = b i, i 2 M 3 x j 0, j 2 N 1. where

Identical text Minor difference Moved in S&W Wrong in S&W Not copied from Wiki 1

Transcription:

Agenda We ve done Greedy Method Divide and Conquer Dynamic Programming Network Flows & Applications NP-completeness Now Linear Programming and the Simplex Method Hung Q. Ngo (SUNY at Buffalo) CSE 531 1 / 59 Linear Programming Motivation: The Diet Problem Setting n foods (beef, apple, potato chips, pho, bún bò, etc.) m nutritional elements (vitamins, calories, etc.) each gram of jth food contains a ij units of nutritional element i a good meal needs b i units of nutritional element i each gram of jth food costs c j Objective design the most economical meal yet dietarily sufficient (Halliburton must solve this problem!) Hung Q. Ngo (SUNY at Buffalo) CSE 531 3 / 59

The Diet Problem as a Linear Program Let x j be the weight of food j in a dietarily sufficient meal. min c 1 x 1 + c 2 x 2 + + c n x n subject to a 11 x 1 + a 12 x 2 +... + a 1n x n b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n b 2........ a m1 x 1 + a m2 x 2 +... + a mn x n b m x j 0, j = 1,..., n, Hung Q. Ngo (SUNY at Buffalo) CSE 531 4 / 59 Linear Programming Motivation: The Max-Flow Problem Maximize the value of f: val(f) = e=(s,v) E Subject to 0 f e c e, e E f e f e = 0, e=(u,v) E e=(v,w) E f e v s, t Hung Q. Ngo (SUNY at Buffalo) CSE 531 5 / 59

Formalizing the Linear Programming Problem Linear objective function max or min 8 3 x 1 + 2x 2 + x 3 6x 4 + x 5 Linear constraints, can take many forms Inequality constraints 3x 1 + 4x 5 2x 6 3 2x 1 + 2x 2 + x 3 0 Equality constraints x 2 x 4 + x 3 = 3 Non-negativity constraints (special case of inequality) x 1, x 5, x 7 0 Hung Q. Ngo (SUNY at Buffalo) CSE 531 7 / 59 Some notational conventions All vectors are column vectors c 1 c n x 1 x 2 c 2 c =., x =., A = x n a 11 a 12... a 1n a 21 a 22... a 2n........, b = a m1 a m2... a mn b 1 b 2. b m. Hung Q. Ngo (SUNY at Buffalo) CSE 531 8 / 59

Linear Program: Standard Form min / max c 1 x 1 + c 2 x 2 + + c n x n subject to a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2 or, in matrix notations,...... =. a m1 x 1 + a m2 x 2 +... + a mn x n = b m x j 0, j = 1,..., n, min / max { c T x Ax = b, x 0 } Hung Q. Ngo (SUNY at Buffalo) CSE 531 9 / 59 Linear Program: Canonical Form min Version min c 1 x 1 + c 2 x 2 + + c n x n subject to a 11 x 1 + a 12 x 2 +... + a 1n x n b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n b 2 or, in matrix notations,....... a m1 x 1 + a m2 x 2 +... + a mn x n b m x j 0, j = 1,..., n, min { c T x Ax b, x 0 } Hung Q. Ngo (SUNY at Buffalo) CSE 531 10 / 59

Linear Program: Canonical Form max Version max c 1 x 1 + c 2 x 2 + + c n x n subject to a 11 x 1 + a 12 x 2 +... + a 1n x n b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n b 2 or, in matrix notations,....... a m1 x 1 + a m2 x 2 +... + a mn x n b m x j 0, j = 1,..., n, max { c T x Ax b, x 0 } Hung Q. Ngo (SUNY at Buffalo) CSE 531 11 / 59 Conversions Between Forms of Linear Programs max c T x = min( c) T x j a ijx j = b i is equivalent to j a ijx j b i and j a ijx j b i. j a ijx j b i is equivalent to j a ijx j b i j a ijx j b i is equivalent to j a ijx j + s i = b i, s i 0. The variable s i is called a slack variable. When x j 0, replace all occurrences of x j by x j, and replace x j 0 by x j 0. When x j is not restricted in sign, replace it by (u j v j ), and u j, v j 0. Hung Q. Ngo (SUNY at Buffalo) CSE 531 12 / 59

Example of Converting Linear Programs Write min x 1 x 2 + 4x 3 subject to 3x 1 x 2 = 3 x 2 + 2x 4 4 x 1 + x 3 3 x 1, x 2 0 in standard (min / max) form and canonical (min / max) form. Hung Q. Ngo (SUNY at Buffalo) CSE 531 13 / 59 LP Geometry: Example 1 max 2x + y subject to 2x + y 2 5x + 3y 15 x + y 4 x 0, y 0 Hung Q. Ngo (SUNY at Buffalo) CSE 531 15 / 59

Example 1 Feasible Region Hung Q. Ngo (SUNY at Buffalo) CSE 531 16 / 59 Example 1 Objective Function Hung Q. Ngo (SUNY at Buffalo) CSE 531 17 / 59

LP Geometry: Example 2 max 2x + y subject to 2x + 3y 8 8x + 3y 12 4x + 3y 24 Hung Q. Ngo (SUNY at Buffalo) CSE 531 18 / 59 Example 2 Feasible Region Hung Q. Ngo (SUNY at Buffalo) CSE 531 19 / 59

Example 2 Objective Function Hung Q. Ngo (SUNY at Buffalo) CSE 531 20 / 59 Half Space and Hyperplane Each inequality a T x b defines a half-space. a T x b a a T x b Each equality a T x = b defines a hyperplane. Hung Q. Ngo (SUNY at Buffalo) CSE 531 21 / 59

Polyhedron, Vertices, Direction of Optimization A polyhedron is the set of points x satisfying Ax b (or equivalently A x b ) c T x = d 1 d 2 < d 1 c T x is improved moving along this direction vertex c c T x = d 2 Hung Q. Ngo (SUNY at Buffalo) CSE 531 22 / 59 Linear Programming Duality: A Motivating Example max 3x 1 + 2x 2 + 4x 3 subject to x 1 + x 2 + 2x 3 4 2x 1 + 3x 3 5 4x 1 + x 2 + 3x 3 7 x 1, x 2, x 3 0. Someone claims x T = [ 1 3 0 ] is optimal with cost 9. Feasibility is easy. How could we verify optimality? We ask the person for a proof! Hung Q. Ngo (SUNY at Buffalo) CSE 531 24 / 59

Her Proof of the Optimality of x Done! 5 3 ( x 1 + x 2 + 2x 3 ) 5 3 4 0 ( 2x 1 + 3x 3 ) 0 5 1 3 ( 4x 1 + x 2 + 3x 3 )... 1 3 7 Ma ia hii Ma ia huu Ma ia hoo Ma ia haha... 3x 1 + 2x 2 + 4x 3 9 Hung Q. Ngo (SUNY at Buffalo) CSE 531 25 / 59 OK, How Did... I do that? Beside listening to Numa Numa, find non-negative multipliers y 1 ( x 1 + x 2 + 2x 3 ) 4y 1 y 2 ( 2x 1 + 3x 3 ) 5y 2 y 3 ( 4x 1 + x 2 + 3x 3 ) 7y 3 (y 1 +2y 2 +4y 3 )x 1 +(y 1 +y 3 )x 2 +(2y 1 +3y 2 +3y 3 )x 3 (4y 1 +5y 2 +7y 3 ) Want LHS to be like 3x 1 + 2x 2 + 4x 3. Thus, as long as y 1 + 2y 2 + 4y 3 3 y 1 + y 3 2 2y 1 + 3y 2 + 3y 3 4 y 1, y 2, y 3 0. we have 3x 1 + 2x 2 + 4x 3 4y 1 + 5y 2 + 7y 3 Hung Q. Ngo (SUNY at Buffalo) CSE 531 26 / 59

How to Get the Best Multipliers Answer: minimize the upper bound. min 4y 1 + 5y 2 + 7y 3 y 1 + 2y 2 + 4y 3 3 y 1 + y 3 2 2y 1 + 3y 2 + 3y 3 4 y 1, y 2, y 3 0. Hung Q. Ngo (SUNY at Buffalo) CSE 531 27 / 59 What We Have Just Shown If x is feasible for the Primal Program max 3x 1 + 2x 2 + 4x 3 subject to x 1 + x 2 + 2x 3 4 2x 1 + 3x 3 5 4x 1 + x 2 + 3x 3 7 x 1, x 2, x 3 0. and y is feasible for the Dual Program min 4y 1 + 5y 2 + 7y 3 y 1 + 2y 2 + 4y 3 3 y 1 + y 3 2 2y 1 + 3y 2 + 3y 3 4 y 1, y 2, y 3 0. then 3x 1 + 2x 2 + 4x 3 4y 1 + 5y 2 + 7y 3 Hung Q. Ngo (SUNY at Buffalo) CSE 531 28 / 59

Primal-Dual Pairs - Canonical Form min c T x (primal/dual program) subject to Ax b x 0 max b T y (dual/primal program) subject to A T y c y 0. Note The dual of the dual is the primal! Hung Q. Ngo (SUNY at Buffalo) CSE 531 29 / 59 Primal-Dual Pairs - Standard Form min / max c T x (primal program) subject to Ax = b x 0 max / min b T y (dual program) subject to A T y c no non-negativity restriction!. Hung Q. Ngo (SUNY at Buffalo) CSE 531 30 / 59

General Rules for Writing Dual Programs Maximization problem Minimization problem Constraints Variables ith constraint ith variable 0 ith constraint ith variable 0 ith constraint = ith variable unrestricted Variables Constraints jth variable 0 jth constraint jth variable 0 jth constraint jth variable unrestricted jth constraint = Table: Rules for converting between primals and duals. Note The dual of the dual is the primal! Hung Q. Ngo (SUNY at Buffalo) CSE 531 31 / 59 Weak Duality Canonical Form Version Consider the following primal-dual pair in canonical form Theorem (Weak Duality) Primal LP: min{c T x Ax b, x 0}, Dual LP: max{b T y A T y c, y 0}. Suppose x is primal feasible, and y is dual feasible for the LPs defined above, then c T x b T y. Corollary If x is an primal-optimal and y is an dual-optimal, then c T x b T y. Corollary If x is primal-feasible, y is dual-feasible, and c T x = b T y, then x and y are optimal for their respective programs. Hung Q. Ngo (SUNY at Buffalo) CSE 531 32 / 59

Weak Duality Standard Form Version Consider the following primal-dual pair in standard form Primal LP: min{c T x Ax = b, x 0}, Dual LP: Theorem (Weak Duality) max{b T y A T y c}. Suppose x is primal feasible, and y is dual feasible for the LPs defined above, then c T x b T y. Corollary If x is an primal-optimal and y is an dual-optimal, then c T x b T y. Corollary If x is primal-feasible, y is dual-feasible, and c T x = b T y, then x and y are optimal for their respective programs. Hung Q. Ngo (SUNY at Buffalo) CSE 531 33 / 59 Strong Duality Theorem (Strong Duality) If the primal LP has an optimal solution x, then the dual LP has an optimal solution y such that c T x = b T y. Dual Feasible Infeasible Optimal Unbounded Feasible Optimal X Nah Nah Primal Unbounded Nah Nah X Infeasible Nah X X Hung Q. Ngo (SUNY at Buffalo) CSE 531 34 / 59

The Diet Problem Revisited The dual program for the diet problem: max b 1 y 1 + b 2 y 2 + + b m y m subject to a 11 y 1 + a 21 y 2 +... + a m1 y m c 1 a 12 y 1 + a 22 y 2 +... + a 2n y m c 2........ a 1n y 1 + a 2n y 2 +... + a mn y m c n y j 0, j = 1,..., m, (Possible) Interpretation: y i is the price per unit of nutrient i that a whole-seller sets to manufacture different types of foods. Hung Q. Ngo (SUNY at Buffalo) CSE 531 35 / 59 The Max-Flow Problem Revisited The dual program for the Max-Flow LP Formulation: min c uv y uv uv E subject to y uv z u + z v 0 uv E z s = 1 z t = 0 y uv 0 uv E Theorem (Max-Flow Min-Cut) Maximum flow value equal minimum cut capacity. Proof. Let (y, z ) be optimal to the dual above. Set W = {v z v 1}, then total flow out of W is equal to cap(()w, W ). Hung Q. Ngo (SUNY at Buffalo) CSE 531 36 / 59

The Simplex Method: High-Level Overview Consider a linear program min{c T x x P }, P is a polyhedron 1 Find a vertex of P, if P is not empty (the LP is feasible) 2 Find a neighboring vertex with better cost If found, then repeat step 2 Otherwise, either report unbounded or optimal solution Hung Q. Ngo (SUNY at Buffalo) CSE 531 38 / 59 Questions 1 When is P not empty? 2 When does P have a vertex? (i.e. P is pointed) 3 What is a vertex, anyhow? 4 How to find an initial vertex? 5 What if no vertex is optimal? 6 How to find a better neighboring vertex 7 Will the algorithm terminate? 8 How long does it take? Hung Q. Ngo (SUNY at Buffalo) CSE 531 39 / 59

3. What is a vertex, anyhow? u w y +y vertex v Many ways to define a vertex v: v P a vertex iff y 0 with v + y, v y P v P a vertex iff u w such that v = (u + w)/2 v P a vertex iff it s the unique intersection of n independent faces Hung Q. Ngo (SUNY at Buffalo) CSE 531 40 / 59 Questions 1 When is P not empty? 2 When does P have a vertex? (i.e. P is pointed) 3 What is a vertex, anyhow? 4 How to find an initial vertex? 5 What if no vertex is optimal? 6 How to find a better neighboring vertex 7 Will the algorithm terminate? 8 How long does it take? Hung Q. Ngo (SUNY at Buffalo) CSE 531 41 / 59

2. When is P pointed? Question Define a polyhedron which has no vertex? Lemma P is pointed iff it contains no line Lemma P = {x Ax = b, x 0}, if not empty, always has a vertex. Lemma v P = {x Ax = b, x 0} is a vertex iff the columns of A corresponding to non-zero coordinates of v are linearly independent Hung Q. Ngo (SUNY at Buffalo) CSE 531 42 / 59 Questions 1 When is P not empty? 2 When does P have a vertex? (i.e. P is pointed) 3 What is a vertex, anyhow? 4 How to find an initial vertex? 5 What if no vertex is optimal? 6 How to find a better neighboring vertex 7 Will the algorithm terminate? 8 How long does it take? Hung Q. Ngo (SUNY at Buffalo) CSE 531 43 / 59

5. What if no vertex is optimal? Lemma Let P = {x Ax = b, x 0}. If min { c T x x P } is bounded (i.e. it has an optimal solution), then for all x P, there is a vertex v P such that c T v c T x. Theorem The linear program min{c T x Ax = b, x 0} either 1 is infeasible, 2 is unbounded, or 3 has an optimal solution at a vertex. Hung Q. Ngo (SUNY at Buffalo) CSE 531 44 / 59 Questions 1 When is P not empty? 2 When does P have a vertex? (i.e. P is pointed) 3 What is a vertex, anyhow? 4 How to find an initial vertex? 5 What if no vertex is optimal? 6 How to find a better neighboring vertex 7 Will the algorithm terminate? 8 How long does it take? Hung Q. Ngo (SUNY at Buffalo) CSE 531 45 / 59

6. How to find a better neighboring vertex The answer is the core of the Simplex method This is basically one iteration of the method Consider a concrete example: max 3x 1 + 2x 2 + 4x 3 subject to x 1 + x 2 + 2x 3 4 2x 1 + 3x 3 5 4x 1 + x 2 + 3x 3 7 x 1, x 2, x 3 0. Hung Q. Ngo (SUNY at Buffalo) CSE 531 46 / 59 Sample execution of the Simplex algorithm Converting to standard form max 3x 1 +2x 2 +4x 3 subject to x 1 +x 2 +2x 3 +x 4 = 4 2x 1 +3x 3 +x 5 = 5 4x 1 +x 2 +3x 3 +x 6 = 7 x 1, x 2, x 3, x 4, x 5, x 6 0. x = [ 0 0 0 4 5 7 ] T is a vertex! Define B = {4, 5, 6}, N = {1, 2, 3}. The variables x i, i N are called free variables. The x i with i B are basic variables. How does one improve x? Increase x 3 as much as possible! (x 1 or x 2 works too.) Hung Q. Ngo (SUNY at Buffalo) CSE 531 47 / 59

Sample execution of the Simplex algorithm x 3 can only be at most 5/3, forcing x 4 = 2/3, x 5 = 0, x 5 = 2 x T = [ 0 0 5/3 2/3 0 2 ] is the new vertex (why?!!!) The new objective value is 20/3 x 3 enters the basis B, x 5 leaves the basis B = {3, 4, 6}, N = {1, 2, 5} Rewrite the linear program max 3x 1 +2x 2 +4x 3 subject to 1 3 x 1 +x 2 +x 4 = 2 3 2 3 x 1 +x 3 + 1 3 x 5 = 5 3 2x 1 +x 2 +x 6 = 2 x 1, x 2, x 3, x 4, x 5, x 6 0. Hung Q. Ngo (SUNY at Buffalo) CSE 531 48 / 59 Sample execution of the Simplex algorithm We also want the objective function to depend only on the free variables: ( 5 3x 1 + 2x 2 + 4x 3 = 3x 1 + 2x 2 + 4 3 2 3 x 1 1 ) 3 x 5 The linear program is thus equivalent to = 1 3 x 1 + 2x 2 4 3 x 5 + 20 3 1 max 3 x 1 +2x 2 4 3 x 5 + 20 3 subject to 1 3 x 1 +x 2 +x 4 = 2 3 2 3 x 1 +x 3 + 1 3 x 5 = 5 3 2x 1 +x 2 +x 6 = 2 Increase x 2 to 2/3, so that x 2 enters, x 4 leaves. x 1, x 2, x 3, x 4, x 5, x 6 0. Hung Q. Ngo (SUNY at Buffalo) CSE 531 49 / 59

Sample execution of the Simplex algorithm max x 1 2x 4 + 8 subject to 1 3 x 1 +x 2 +x 4 = 2 3 2 3 x 1 +x 3 + 1 3 x 5 = 5 3 7 3 x 1 x 4 1 3 x 5 +x 6 = 4 3 x 1, x 2, x 3, x 4, x 5, x 6 0. At this point, only x 1 to increase. If all its coefficients are non-positive (like 1/3 above), then the LP is unbounded Fortunately, this is not the case here Increase x 1 to 4/7, so that x 1 enters, x 6 leaves. Hung Q. Ngo (SUNY at Buffalo) CSE 531 50 / 59 Sample execution of the Simplex algorithm max 11 7 x 4 + 1 7 x 5 3 7 x 6 + 60 7 subject to +x 2 + 6 7 x 4 5 7 x 5 + 1 7 x 6 = 6 7 Now, x 5 enters again, x 3 leaves. +x 3 + 2 7 x 4 + 3 7 x 5 2 7 x 6 = 9 7 x 1 3 7 x 4 1 7 x 5 + 3 7 x 6 = 4 7 x 1, x 2, x 3, x 4, x 5, x 6 0. Hung Q. Ngo (SUNY at Buffalo) CSE 531 51 / 59

Sample execution of the Simplex algorithm max 1 3 x 3 34 21 x 4 1 3 x 6 + 9 subject to +x 2 + 49 15 x 3 + 188 105 x 4 1 3 x 6 = 3 + 7 3 x 3 + 2 3 x 4 +x 5 2 3 x 6 = 3 x 1 + 1 3 x 3 1 3 x 4 + 1 3 x 6 = 1 x 1, x 2, x 3, x 4, x 5, x 6 0. Yeah! No more improvement is possible. We have reached the optimal vertex v = [ 1 3 0 0 3 0 ] T. The optimal cost is 9. Hung Q. Ngo (SUNY at Buffalo) CSE 531 52 / 59 Questions 1 When is P not empty? 2 When does P have a vertex? (i.e. P is pointed) 3 What is a vertex, anyhow? 4 How to find an initial vertex? 5 What if no vertex is optimal? 6 How to find a better neighboring vertex 7 Will the algorithm terminate? 8 How long does it take? Hung Q. Ngo (SUNY at Buffalo) CSE 531 53 / 59

7&8 Termination and Running Time Termination There are finitely many vertices ( ( n m) ) Terminating = non-cycling, i.e. never come back to a vertex Many cycling prevention methods: perturbation method, lexicographic rule, Bland s pivoting rule, etc. Bland s pivoting rule: pick smallest possible j to leave the basis, then smallest possible i to enter the basis Running time Klee & Minty (1969) showed that Simplex could take exponential time Hung Q. Ngo (SUNY at Buffalo) CSE 531 54 / 59 Summary: Simplex with Bland s Rule 1 Start from a vertex v of P. 2 Determine B and N; Let y T B = ct B A 1 B. 3 If ( c T N yt B a j) 0, then vertex v is optimal. Moreover, 4 Else, let c T v = c T Bv B + c T Nv N = c T B ( A 1 B a j k ( A 1 B b A 1 B A Nv N ) + c T N v N j = min { j N : ( c j y T Ba j ) < 0 }. 5 If A 1 B a j 0, then report unbounded LP and Stop! 6 Otherwise, pick smallest k B such that ( A 1 B a ) j > 0 and that k { } (A 1 B b) k (A 1 ) B = min b) i ( ) : i B, A 1 B a ) j i > 0. ( A 1 B a j 7 x k leaves, x j enters: B = B {j} {k}, N = N {k} {j}. Go back to step 3. Hung Q. Ngo (SUNY at Buffalo) CSE 531 55 / 59 i

By Product: Strong Duality Theorem (Strong Duality) If the primal LP has an optimal solution x, then the dual LP has an optimal solution y such that c T x = b T y. Proof. Suppose Simplex returns vertex x (at B and N) Recall yb T = ct B A 1 B, then ct x = yb T b [ ] [ ] A T A T y B = B cb y B = A T N y B A T N [ cb c N ] = c. Set y = y T B. Done! Hung Q. Ngo (SUNY at Buffalo) CSE 531 56 / 59 Questions 1 When is P not empty? 2 When does P have a vertex? (i.e. P is pointed) 3 What is a vertex, anyhow? 4 How to find an initial vertex? 5 What if no vertex is optimal? 6 How to find a better neighboring vertex 7 Will the algorithm terminate? 8 How long does it take? Hung Q. Ngo (SUNY at Buffalo) CSE 531 57 / 59

1&4 Feasibility and the Initial Vertex In P = {x Ax = b, x 0}, we can assume b 0 (why?). Let A = [ A I ] Let P = {z A z = b, z 0}. A vertex of P is z = [0,..., 0, b 1,..., b m ] T P is feasible iff the following LP has optimum value 0 { m } min z n+i z P i=1 From an optimal vertex z, ignore the last m coordinates to obtain a vertex of P Hung Q. Ngo (SUNY at Buffalo) CSE 531 58 / 59 Questions 1 When is P not empty? 2 When does P have a vertex? (i.e. P is pointed) 3 What is a vertex, anyhow? 4 How to find an initial vertex? 5 What if no vertex is optimal? 6 How to find a better neighboring vertex 7 Will the algorithm terminate? 8 How long does it take? Hung Q. Ngo (SUNY at Buffalo) CSE 531 59 / 59