Introduction to Lexicographic Reverse Search: lrs

Similar documents
of a bimatrix game David Avis McGill University Gabriel Rosenberg Yale University Rahul Savani University of Warwick

LP. Lecture 3. Chapter 3: degeneracy. degeneracy example cycling the lexicographic method other pivot rules the fundamental theorem of LP

Part 1. The Review of Linear Programming

1 Review Session. 1.1 Lecture 2

OPERATIONS RESEARCH. Linear Programming Problem

Lecture slides by Kevin Wayne

Linear Programming. Linear Programming I. Lecture 1. Linear Programming. Linear Programming

Week 2. The Simplex method was developed by Dantzig in the late 40-ties.

Supplementary lecture notes on linear programming. We will present an algorithm to solve linear programs of the form. maximize.

LINEAR PROGRAMMING I. a refreshing example standard form fundamental questions geometry linear algebra simplex algorithm

CSCI 1951-G Optimization Methods in Finance Part 01: Linear Programming

Linear Programming and the Simplex method

Standard Form An LP is in standard form when: All variables are non-negativenegative All constraints are equalities Putting an LP formulation into sta

TIM 206 Lecture 3: The Simplex Method

Simplex method(s) for solving LPs in standard form

3. THE SIMPLEX ALGORITHM

IE 400: Principles of Engineering Management. Simplex Method Continued

Yinyu Ye, MS&E, Stanford MS&E310 Lecture Note #06. The Simplex Method

CO350 Linear Programming Chapter 8: Degeneracy and Finite Termination

Simplex Algorithm Using Canonical Tableaus

Termination, Cycling, and Degeneracy

2.098/6.255/ Optimization Methods Practice True/False Questions

The Simplex Algorithm and Goal Programming

ORF 522. Linear Programming and Convex Analysis

The Simplex Method for Solving a Linear Program Prof. Stephen Graves

In Chapters 3 and 4 we introduced linear programming

CO350 Linear Programming Chapter 8: Degeneracy and Finite Termination

IE 400 Principles of Engineering Management. The Simplex Algorithm-I: Set 3

Math 16 - Practice Final

The Avis-Kalunzy Algorithm is designed to find a basic feasible solution (BFS) of a given set of constraints. Its input: A R m n and b R m such that

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.

Introduction to Linear and Combinatorial Optimization (ADM I)

A Review of Linear Programming

Optimization WS 13/14:, by Y. Goldstein/K. Reinert, 9. Dezember 2013, 16: Linear programming. Optimization Problems

Dual Basic Solutions. Observation 5.7. Consider LP in standard form with A 2 R m n,rank(a) =m, and dual LP:

min 4x 1 5x 2 + 3x 3 s.t. x 1 + 2x 2 + x 3 = 10 x 1 x 2 6 x 1 + 3x 2 + x 3 14

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

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

ECE 307 Techniques for Engineering Decisions

IE 5531: Engineering Optimization I

IE 5531: Engineering Optimization I

ORF 307: Lecture 2. Linear Programming: Chapter 2 Simplex Methods

CS Algorithms and Complexity

+ 5x 2. = x x. + x 2. Transform the original system into a system x 2 = x x 1. = x 1

Distributed Real-Time Control Systems. Lecture Distributed Control Linear Programming

Optimization (168) Lecture 7-8-9

Lecture 5. x 1,x 2,x 3 0 (1)

Week 3: Simplex Method I

Theory and Internet Protocols

Linear Programming Redux

Review Solutions, Exam 2, Operations Research

Slack Variable. Max Z= 3x 1 + 4x 2 + 5X 3. Subject to: X 1 + X 2 + X x 1 + 4x 2 + X X 1 + X 2 + 4X 3 10 X 1 0, X 2 0, X 3 0

Prelude to the Simplex Algorithm. The Algebraic Approach The search for extreme point solutions.

Sensitivity Analysis

Summary of the simplex method

9.1 Linear Programs in canonical form

Lecture 11 Linear programming : The Revised Simplex Method

Math 354 Summer 2004 Solutions to review problems for Midterm #1

Linear Algebra Review: Linear Independence. IE418 Integer Programming. Linear Algebra Review: Subspaces. Linear Algebra Review: Affine Independence

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

Math Models of OR: Some Definitions

1. Algebraic and geometric treatments Consider an LP problem in the standard form. x 0. Solutions to the system of linear equations

15.081J/6.251J Introduction to Mathematical Programming. Lecture 18: The Ellipsoid method

February 17, Simplex Method Continued

Math 273a: Optimization The Simplex method

Lectures 6, 7 and part of 8

CO 250 Final Exam Guide

AM 121: Intro to Optimization

LP Duality: outline. Duality theory for Linear Programming. alternatives. optimization I Idea: polyhedra

THE UNIVERSITY OF HONG KONG DEPARTMENT OF MATHEMATICS. Operations Research I

Lesson 27 Linear Programming; The Simplex Method

ORF 522. Linear Programming and Convex Analysis

Chapter 1. Preliminaries

Operations Research Lecture 2: Linear Programming Simplex Method

III. Linear Programming

LOWER BOUNDS FOR THE MAXIMUM NUMBER OF SOLUTIONS GENERATED BY THE SIMPLEX METHOD

The simplex algorithm

Example. 1 Rows 1,..., m of the simplex tableau remain lexicographically positive

Simplex Method for LP (II)

Lecture 2: The Simplex method. 1. Repetition of the geometrical simplex method. 2. Linear programming problems on standard form.

The augmented form of this LP is the following linear system of equations:

Metode Kuantitatif Bisnis. Week 4 Linear Programming Simplex Method - Minimize

From the Zonotope Construction to the Minkowski Addition of Convex Polytopes

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

Optimization Methods in Management Science

Contents. 4.5 The(Primal)SimplexMethod NumericalExamplesoftheSimplexMethod

Decision Procedures An Algorithmic Point of View

Developing an Algorithm for LP Preamble to Section 3 (Simplex Method)

AM 121 Introduction to Optimization: Models and Methods Example Questions for Midterm 1

AM 121: Intro to Optimization Models and Methods

OPRE 6201 : 3. Special Cases

Linear programming: algebra

Linear Programming. Jie Wang. University of Massachusetts Lowell Department of Computer Science. J. Wang (UMass Lowell) Linear Programming 1 / 47

OPTIMISATION 3: NOTES ON THE SIMPLEX ALGORITHM

Ω R n is called the constraint set or feasible set. x 1

3 The Simplex Method. 3.1 Basic Solutions

Lecture Simplex Issues: Number of Pivots. ORIE 6300 Mathematical Programming I October 9, 2014

Lecture: Algorithms for LP, SOCP and SDP

The Graphical Method & Algebraic Technique for Solving LP s. Métodos Cuantitativos M. En C. Eduardo Bustos Farías 1

1 Simplex and Matrices

Transcription:

Introduction to Lexicographic Reverse Search: lrs June 29, 2012 Jayant Apte ASPITRG

Outline Introduction Lexicographic Simplex Algorithm Lex-positive and Lex min bases The pitfalls in reverse search Lexicographic Reverse search June 29,2012 Jayant Apte. ASPITRG 2

Introduction Representations of a Polyhedron Reverse Search: Some Trivia Reverse Search: The high level idea June 29,2012 Jayant Apte. ASPITRG 3

H-Representation of a Polyhedron June 29,2012 Jayant Apte. ASPITRG 4

V-Representation of a Polyhedron June 29,2012 Jayant Apte. ASPITRG 5

Switching between the two representations H-representation V-representation: The Vertex Enumeration problem Methods: Reverse Search, Lexicographic Reverse Search Double-description method Reverse search is the most robust method June 29,2012 Jayant Apte. ASPITRG 6

Brief history of Reverse Search Presented by David Avis and Komei Fukuda in a 1992 article A Pivoting Algorithm for Convex Hulls and Vertex Enumeration of Arrangements and Polyhedra" A C implementation: rs Modified by Avis in 1998 to use lexicographic pivoting and implemented in rational arithmetic A C implementation: lrs June 29,2012 Jayant Apte. ASPITRG 7

Applications Finding the vertices and extreme rays given the H- representation of polyhedron Facet enumeration: V-representation to H- representation Enumerating all veritces of Voronoi diagram Computing volume of convex hull of set of points Estimation of number of vertices of polyhedron Nash equilibrium in non-cooperative bi-matrix games June 29,2012 Jayant Apte. ASPITRG 8

Relationship between Simplex Algorithm and Reverse Search Simplex Algorithm is used for solving linear programs Simplex Algorithm starts at any vertex of polyhedron defined by the constraint set Travels along the edges of polyhedron to find the optimum Reverse search runs simplex in reverse Traces all possible paths taken by Simplex algorithm in reverse June 29,2012 Jayant Apte. ASPITRG 9

Relationship between Simplex Algorithm and Reverse Search Ref.David Avis, lrs: A Revised Implementation of the Reverse Search Vertex Enumeration Algorithm June 29,2012 Jayant Apte. ASPITRG 10

Background: Lexicographic Order June 29,2012 Jayant Apte. ASPITRG 11

Vectors Comparing two vectors in lexicographic sense e.g. [5, 4, 1, 7, 4] [5, 4, 0, 9, 8 ] Lex-positive vector First non-zero element is positive e.g. [0, 4, -1, -7, -4], [5, -4, 1, -7, 4] are lexicographically positive vectors e.g. [0-4 -1-7 -4], [-5-4 1-7 4] are lexicographically negative vectors Lex-min vector Out of [1 2 3-5 9],[1 2 0 9 9], [2 3 6-7 1]; [1 2 0 9 9] is lex-min vector June 29,2012 Jayant Apte. ASPITRG 12

Lexicographic Simplex Method June 29,2012 Jayant Apte. ASPITRG 13

The Linear Programming Problem Objective Function Constraint Set d-decision variables m-constraints June 29,2012 Jayant Apte. ASPITRG 14

Example June 29,2012 Jayant Apte. ASPITRG 15

Nature of Constrained Region (0.5,0.5,1.5) (1,1,1) (0,1,1) (0,0,1) (1,1,0) (0,1,0) (1,0,0) (0,0,0) June 29,2012 Jayant Apte. ASPITRG 16

Relationship between inequalities and Vertex: Geometric intuition of Degeneracy Highlighted inequalities are tight at (0,0,1) (0,0,1) June 29,2012 Jayant Apte. ASPITRG 17

Relationship between inequalities and Vertex: Geometric intuition of Degeneracy (0,0,1) June 29,2012 Jayant Apte. ASPITRG 18

Relationship between Co-Basis and Vertex: Geometric intuition of Degeneracy (0,0,1) is a degenerate vertex There are ways of specifying the vertex (0,0,1) In general this number are ways of representing a degenerate vertex, where n=total number of inequalities that are tight at that vertex d=number of dimensions This number can get very large very quickly. One of the places where simplex and by implication reverse search runs into problems. June 29,2012 Jayant Apte. ASPITRG 19

How to solve this LP? Rearrange inequalities to decide a starting vertex Introduce slack variables Convert to matrix form Convert to dictionary form June 29,2012 Jayant Apte. ASPITRG 20

Starting Simplex at a vertex: Rearrangement of the inequalities Rearrange the inequalities so that last 'd' inequalities contain initial vertex (0.5,0.5,1.5) June 29,2012 Jayant Apte. ASPITRG 21

Define Slack Variables Convert inequalities to equalities by introducing slack variables Original variables are called decision variables June 29,2012 Jayant Apte. ASPITRG 22

Our Example June 29,2012 Jayant Apte. ASPITRG 23

Our Example -1 0 0 1 0 0 0 0 0 0 0 0 0-1 0 0 1 0 0 0 0 0 0 0 0 0-1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0-1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 1 0-1 0 1 0 0 0 0 0 0 0 0 1 June 29,2012 Jayant Apte. ASPITRG 24

Terminology d decision variables m constraints Hence m slack variables Basis: B: Ordered m-tuple indexing set of m affinely independent columns of A Co-basis: N: Ordered d-tuple indexing remaining d columns : Sub-matrix of A indexed by B June 29,2012 Jayant Apte. ASPITRG 25

Our example We define initial basis as Hence initial co-basis is -1 0 0 1 0 0 0 0 0 0-1 0 0 1 0 0 0 0 0 0-1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0-1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0-1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 June 29,2012 Jayant Apte. ASPITRG 26

Our example is invertible Is a Basic Feasible Solution(BFS) -1 0 0 1 0 0 0 0 0 0-1 0 0 1 0 0 0 0 0 0-1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0-1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0-1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 June 29,2012 Jayant Apte. ASPITRG 27

Add a cost row Add a cost row at the top June 29,2012 Jayant Apte. ASPITRG 28

Our example 0 1 2 3 4 5 6 7 8 9 10 11 12 1 1 1 1 0 0 0 0 0 0 0 0 0 0-1 0 0 1 0 0 0 0 0 0 0 0 0 0-1 0 0 1 0 0 0 0 0 0 0 0 0 0-1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0-1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0-1 0 1 0 0 0 0 0 0 0 0 1 June 29,2012 Jayant Apte. ASPITRG 29

Converting Linear program to the dictionary format June 29,2012 Jayant Apte. ASPITRG 30

Derive the dictionary from matrix form June 29,2012 Jayant Apte. ASPITRG 31

Our example Cost function value At current vertex The vertex June 29,2012 Jayant Apte. ASPITRG 32

Dictionary Format Change in Cost Corresponding to each Co-basic Variable Cost Corresponding To Dictionary Basic Indices Co-Basic Indices Solution Corresponding To Dictionary June 29,2012 Jayant Apte. ASPITRG 33

Redefine a bit Basis: B: Ordered m+1-tuple indexing set of m+1 affinely independent columns of dictionary & Dictionary is to serve as starting point Call this the solution of the initial dictionary or the initial Call this the initial implying that initial basis is identity matrix June 29,2012 Jayant Apte. ASPITRG 34

Our example 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Basis 0 1 2 3 4 5 6 7 8 9 1 0 0 0 0 0 0 0 0 0 1-1.5-0.5-2.5 0 1 0 0 0 0 0 0 0 0 0 0.5-0.5 0.5 0 0 1 0 0 0 0 0 0 0-1 0.5 0.5 0.5 0 0 0 1 0 0 0 0 0 0 0 0.5 0.5 1.5 0 0 0 0 1 0 0 0 0 0 0 0.5-0.5 0.5 0 0 0 0 0 1 0 0 0 0-1 0.5 0.5 0.5 0 0 0 0 0 0 1 0 0 0 0 0.5 0.5 1.5 0 0 0 0 0 0 0 1 0 0 0-0.5 0.5 0.5 0 0 0 0 0 0 0 0 1 0 1-0.5-0.5 0.5 0 0 0 0 0 0 0 0 0 1 1-1 -1 0 Cost The vertex June 29,2012 Jayant Apte. ASPITRG 35

Simplex Algorithm: The Ingredients It travels from one vertex to another, or more specifically one BFS to another BFS For that it uses pivoting operation to obtain the dictionary corresponding to new BFS. A co-basic variable assumes a nonzero value and is said to 'enter' the basis A basic variable 'leaves' the basis We get a new dictionary which is 'equivalent' to current dictionary in algebraic terms, i.e. It carries the same solution This new dictionary is obtained by means of 'pivot operation'. June 29,2012 Jayant Apte. ASPITRG 36

Choosing the entering variable Choose the entering variable that brings about an increase in cost One of these is supposed to assume a nonzero value Only a negative coefficient at will do as it will mean that is positive and results in an increase in cost If there are many such co-basic variables, choose the one with least subscript If there are no such co-basic variables, current dictionary is optimal and current BFS is the optimum June 29,2012 Jayant Apte. ASPITRG 37

Choosing entering variable Basis 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 0 0 0 0 0 0 0 0 1-1.5-0.5-2.5 0 1 0 0 0 0 0 0 0 0 0 0.5-0.5 0.5 0 0 1 0 0 0 0 0 0 0-1 0.5 0.5 0.5 0 0 0 1 0 0 0 0 0 0 0 0.5 0.5 1.5 0 0 0 0 1 0 0 0 0 0 0 0.5-0.5 0.5 0 0 0 0 0 1 0 0 0 0-1 0.5 0.5 0.5 0 0 0 0 0 0 1 0 0 0 0 0.5 0.5 1.5 0 0 0 0 0 0 0 1 0 0 0-0.5 0.5 0.5 0 0 0 0 0 0 0 0 1 0 1-0.5-0.5 0.5 0 0 0 0 0 0 0 0 0 1 1-1 -1 0 June 29,2012 Jayant Apte. ASPITRG 38

Choosing the leaving variable Recall lexicographic order Construct following matrix: June 29,2012 Jayant Apte. ASPITRG 39

Choosing the leaving variable Let and consider the column. If this column defines an extreme ray. Otherwise, let be the index such that is lexicographically minimum vector of: Such a minimum is unique as has full row rank This notation can be abbreviated as, In case there is no such we set June 29,2012 Jayant Apte. ASPITRG 40

Choosing the Leaving Variable 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Basis 0 1 2 3 4 5 6 7 8 9 1 0 0 0 0 0 0 0 0 0 1-1.5-0.5-2.5 0 1 0 0 0 0 0 0 0 0 0 0.5-0.5 0.5 0 0 1 0 0 0 0 0 0 0-1 0.5 0.5 0.5 0 0 0 1 0 0 0 0 0 0 0 0.5 0.5 1.5 0 0 0 0 1 0 0 0 0 0 0 0.5-0.5 0.5 0 0 0 0 0 1 0 0 0 0-1 0.5 0.5 0.5 0 0 0 0 0 0 1 0 0 0 0 0.5 0.5 1.5 0 0 0 0 0 0 0 1 0 0 0-0.5 0.5 0.5 0 0 0 0 0 0 0 0 1 0 1-0.5-0.5 0.5 0 0 0 0 0 0 0 0 0 1 1-1 -1 0 June 29,2012 Jayant Apte. ASPITRG 41

Lexicographic choice of leaving variable June 29,2012 Jayant Apte. ASPITRG 42

Where to get after each successive iteration? Let be current basis inverse and be the next basis inverse and differ only in 1 column We can take advantage of this fact and write Pre-multiplication by elementary matrix corresponds to row operations Hence, we get new basis inverse by some row operations June 29,2012 Jayant Apte. ASPITRG 43

The pivot Operation June 29,2012 Jayant Apte. ASPITRG 44

This is how to get after each is given as: successive iteration June 29,2012 Jayant Apte. ASPITRG 45

This is how to get after each successive iteration Row multiplication Operation Row corresponding to pivot element is divided by pivot element Hence pivot operation automatically yields new basis inverse June 29,2012 Jayant Apte. ASPITRG 46

Result of pivot (5,11) Basis:0 1 2 3 4 11 6 7 8 9 Co-Basis:10 5 12 Basis 0 1 2 3 4 11 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 0 0 0 3 0 0 0 0-2 0 1-1 0 1 0 0 0-1 0 0 0 0 1 0-1 0 0 0 1 0 0-1 0 0 0 0 0 0 0 0 0 0 0 1 0-1 0 0 0 0 1 0 0 1 0 0 0 0 1-1 0 0 0 0 1 0-1 0 0 0 0 0 0 2 0 0 0 0-2 1 1 1 0 0 0 0 0-1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0-1 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 2 0 0 0 1-1 0 0 1 Identity column June 29,2012 Jayant Apte. ASPITRG 47

Solving Linear Programs: Simplex Algorithm June 29,2012 Jayant Apte. ASPITRG 48

Iteration 1 You Are Here. (0.5,0.5,1.5) (1,1,1) (0,1,1) (0,0,1) (1,1,0) (0,1,0) (1,0,0) (0,0,0) June 29,2012 Jayant Apte. ASPITRG 49

Iteration 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Basis 0 1 2 3 4 5 6 7 8 9 1 0 0 0 0 0 0 0 0 0 1-1.5-0.5-2.5 0 1 0 0 0 0 0 0 0 0 0 0.5-0.5 0.5 0 0 1 0 0 0 0 0 0 0-1 0.5 0.5 0.5 0 0 0 1 0 0 0 0 0 0 0 0.5 0.5 1.5 0 0 0 0 1 0 0 0 0 0 0 0.5-0.5 0.5 0 0 0 0 0 1 0 0 0 0-1 0.5 0.5 0.5 0 0 0 0 0 0 1 0 0 0 0 0.5 0.5 1.5 0 0 0 0 0 0 0 1 0 0 0-0.5 0.5 0.5 0 0 0 0 0 0 0 0 1 0 1-0.5-0.5 0.5 0 0 0 0 0 0 0 0 0 1 1-1 -1 0 Cost The vertex June 29,2012 Jayant Apte. ASPITRG 50

Pivot(5,11) June 29,2012 Jayant Apte. ASPITRG 51

Iteration 2 You Are Here. (0.5,0.5,1.5) (1,1,1) (0,1,1) (0,0,1) (1,1,0) (0,1,0) (1,0,0) (0,0,0) June 29,2012 Jayant Apte. ASPITRG 52

Iteration 2 Basis:0 1 2 3 4 11 6 7 8 9 Co-Basis:10 5 12 Basis 0 1 2 3 4 11 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 0 0 0 3 0 0 0 0-2 0 1-1 0 1 0 0 0-1 0 0 0 0 1 0-1 0 0 0 1 0 0-1 0 0 0 0 0 0 0 0 0 0 0 1 0-1 0 0 0 0 1 0 0 1 0 0 0 0 1-1 0 0 0 0 1 0-1 0 0 0 0 0 0 2 0 0 0 0-2 1 1 1 0 0 0 0 0-1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0-1 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 2 0 0 0 1-1 0 0 1 June 29,2012 Jayant Apte. ASPITRG 53

pivot(4,10) June 29,2012 Jayant Apte. ASPITRG 54

Iteration 3 (0.5,0.5,1.5) (1,1,1) You Are Still Here. Blame degeneracy! (0,1,1) (0,0,1) (1,1,0) (0,1,0) (1,0,0) (0,0,0) June 29,2012 Jayant Apte. ASPITRG 55

Iteration 3 Basis:0 1 2 3 10 11 6 7 8 9 Co-Basis:4 5 12 Basis 0 1 2 3 10 11 6 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 0 0 2 1 0 0 0 0 0 0-1 -1 0 1 0 0-1 0 0 0 0 0 0 0 0 0 0 0 1 0 0-1 0 0 0 0 0 0 0 0 0 0 0 1-1 0 0 0 0 0 0 0 1 1 0 0 0 0 1-1 0 0 0 0 1 0-1 0 0 0 0 0 2 0 0 0 0 0 0 1-1 1 0 0 0 0-1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0-1 1 June 29,2012 Jayant Apte. ASPITRG 56

pivot(6,12) June 29,2012 Jayant Apte. ASPITRG 57

Iteration 4 (0.5,0.5,1.5) (1,1,1) (0,1,1) (0,0,1) (1,1,0) You Are Here. (0,1,0) (1,0,0) (0,0,0) June 29,2012 Jayant Apte. ASPITRG 58

Iteration 4 Basis:0 1 2 3 10 11 12 7 8 9 Co-Basis:4 5 6 Basis 0 1 2 3 10 11 12 7 8 9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0-1 0 0 0 0 0 0 0 0 0 0 0 1 0 0-1 0 0 0 0 0 0 0 0 0 0 0 1 0 0-1 0 0 0 0 0 0 0 0 0 0 0 0-1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 2 0 0 0 0-1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 2 June 29,2012 Jayant Apte. ASPITRG 59

Observations Lexicographic simplex method doesn't travel through all the bases corresponding to a vertex It only visits bases that are lex-positive Recall A basis is lex-positive if the rows indexed d+1,...,m of D are lex-positive Lexicographic pivot rule is reversible! is reversible June 29,2012 Jayant Apte. ASPITRG 60

Reverse Search: The Recipe Start with dictionary corresponding to the optimal vertex Ask yourself 'What pivot would have landed me at this dictionary if i was running simplex?' Go to that dictionary by applying reverse pivot to current dictionary Ask the same question again Generate the so-called 'reverse search tree' June 29,2012 Jayant Apte. ASPITRG 61

What pivot would have landed me at this dictionary if i was running simplex? June 29,2012 Jayant Apte. ASPITRG 62

Pitfalls Initial basis not being the unique optimum basis Degeneracy of other vertices: One vertex corresponding to many (actually too many) bases Can result in program outputting a vertex more than once Earlier version rs suffered from all these June 29,2012 Jayant Apte. ASPITRG 63

Initial Basis not the unique optimum basis Reverse search must begin at the optimal vertex corresponding to any cost. In rs, one would have to find all possible bases corresponding to initial vertex and perform reverse search on them. In lrs, we define initial cost in such a way that initial vertex has a unique Basis We define cost as: This cost makes the top row of the dictionary June 29,2012 Jayant Apte. ASPITRG 64

Degeneracy of vertices Define lex-min bases Clearly if (i)-(iii) was to be true, we could do and get that is lexicographically smaller than summarizes the operation June 29,2012 Jayant Apte. ASPITRG 65

Evolution of lrs All possible Bases Very few vertices rs BFS >> Vertices A reduced set of bases Called lex-positive Bases lex-positive BFS> Vertices A reduced set of bases Called lex-min Bases Lex-min BFS = Vertices June 29,2012 Jayant Apte. ASPITRG 66

Recall these functions June 29,2012 Jayant Apte. ASPITRG 67

Pseudo-code June 29,2012 Jayant Apte. ASPITRG 68

Pseudo-code Examine each cobasic column of dictionary by reverse to see if there exists a lex positive pivot using this column Reverse will be executed d times for each dictionary X Reverse(a)=p Cobasis={a,b,c} Cobasis={p,b,c} 1 June 29,2012 Jayant Apte. ASPITRG 69

Pseudo-code X Reverse(a)=0 Cobasis={a,b,c} Reverse(b)=? June 29,2012 Jayant Apte. ASPITRG 70

Pseudo-code When whie loop terminates, return to the parent of current node: backtrack Correct j is restored by selectpivot Subsequent j=j+1 means next cobasic element of the parent comes under consideration Backtrack X Cobasis={a,b,c} Reverse(c)=0 Reverse(a)=0 Reverse(b)=0 June 29,2012 Jayant Apte. ASPITRG 71

Pseudo-code Execution continues until all the columns of the starting dictionary are examined June 29,2012 Jayant Apte. ASPITRG 72

Lexicographic Reverse Search on our example (0.5,0.5,1.5) (1,1,1) (0,1,1) (0,0,1) (1,1,0) You Are Here. (0,1,0) (1,0,0) (0,0,0) June 29,2012 Jayant Apte. ASPITRG 73

V=(0 0 0) N=( 10 11 12) reverse(4)=0 V=(1 0 1) N=(4 11 8) reverse(11)=5 pivot(5,11) V=(1 0 0) N=(4 11 12) reverse(12)=8 pivot(8,12) reverse(11)=0 V=(1 1 0) N=(4 5 12) reverse(10)=4 pivot(4,10) reverse(10)=4 pivot(4,10) V=(0 1 1) N=(10 5 6) reverse(11)=5 pivot(5,11) V=0 1 0) N=(10 5 12) reverse(12)=9 pivot(9,12) reverse(12)=6reverse(5)=0 pivot(6,12) reverse(9)=0 V=(0 0 1) N=(10 11 9) reverse(10)=7 pivot(7,10) reverse(11)=6 pivot(6,11) V=(0 0 1) N=(7 11 9) reverse(8)=0 V=(0 1 1) N=(10 6 9) reverse(9)=0 reverse(12)=0 V=(0.5 0.5 1.5) N=(7 8 9) reverse(11)=8 pivot(8,11) reverse(9)=8 pivot(8,9) reverse(7)=0 V=(1 1 1) N=(5 6 9) reverse(8)=0 reverse(7)=6 pivot(6,7) reverse(9)=0 V=(1 0 1) N=(8 12 9) reverse(5)=0 reverse(6)=0 reverse(9)=0 V=(0.5 0.5 1.5) N=(6 8 9) reverse(6)=0 reverse(9)=5 pivot(5,9) reverse(8)=0 reverse(8)=0 reverse(12)=0 reverse(9)=0 V=(1 0 0) N=(6 8 5) reverse(6)=0 reverse(8)=0 reverse(5)=0 June 29,2012 Jayant Apte. ASPITRG 74

Conclusion Lexicographic reverse search is an improved reverse search for vertex enumeration It is robust- not affected by degeneracy Yet, it travels more bases than there are vertices, hence requiring lot of computational power June 29,2012 Jayant Apte. ASPITRG 75

Starting dictionary 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 2 0 0 0 0 0 0 0 1 0 0 0-1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 2 0 0 0 0 0 0 0 0 0 1-1 0 1 1 June 29,2012 Jayant Apte. ASPITRG 76

Result of pivot(4,10) (real notation) 1 0 0 0-1 0 0 0 0 0 0 1 1-1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 2 0 0 0 0 0 0 0 1 0 0 0-1 1 1 0 0 0 0-1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 2 June 29,2012 Jayant Apte. ASPITRG 77

Result of pivot(8,12) 1 0 0 0 0 0 0 0-1 0 0 1 0-2 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1-1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0-1 0 0 1 0 1 0 0 0 0 1 0 0 1-1 0 0-1 0 0 0 0 0 0-1 0 0 0 1 0 0 0 1 1 0 0 0 0 2 0 0 0-1 1 0 0 0 1 June 29,2012 Jayant Apte. ASPITRG 78

Result of pivot(5,11) 1 0 0 0 0-1 0 0-1 0 0 0 0-3 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1-1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1-1 1 0-1 0 0 0 0 0 0 0 0 0 1 1 0 1-1 0 0 0 0 1 0 0 0 0-1 0 0 0 1 0 0 0 1 1 0 0 0 0 2 0 0 0-1 1 0 0 0 1 June 29,2012 Jayant Apte. ASPITRG 79

Now backtrack all the way to root June 29,2012 Jayant Apte. ASPITRG 80

Result of pivot(5,11) 1 0 0 0 0-1 0 0 0 0 1 0 1-1 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0-1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 2 0 0 0 0 0 0 0 0 1 0 1 0 1 2 0 0 0 0 0 0 0 0 0 1-1 0 1 1 June 29,2012 Jayant Apte. ASPITRG 81

Result of pivot(4,10) 1 0 0 0-1 -1 0 0 0 0 0 0 1-2 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0-1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 2 0 0 0 0-1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 2 June 29,2012 Jayant Apte. ASPITRG 82

Backtrack 1 step: pivot(10,4) 1 0 0 0 0-1 0 0 0 0 1 0 1-1 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0-1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 2 0 0 0 0 0 0 0 0 1 0 1 0 1 2 0 0 0 0 0 0 0 0 0 1-1 0 1 1 June 29,2012 Jayant Apte. ASPITRG 83

Result of pivot(6,12) 1 0 0 0 0 0-1 0 0 0 1 0 0-2 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0-1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0-1 1 0 0 0 0 0 1 1 0 0 0 0 0 2-1 1 0 0 0 0 0 1 0 0 0 0 0 1-1 0 1 0 1 0 0 1 0 0 0 0 0 1-1 0 0 1-1 0 0 0 June 29,2012 Jayant Apte. ASPITRG 84

Backtrack all the way to root June 29,2012 Jayant Apte. ASPITRG 85

Result of pivot(9,12) 1 0 0 0 0 0 0 0 0-1 2 1 0-1 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 1-1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0-1 1 1 0 1 0 0 0 0 0 0 0 1 0-1 1-1 0 0 0 0 0 0 0 0 0 0 1-1 2 0 0 1 0 0 0 0 0 0 0 0 0 1-1 0 1 1 June 29,2012 Jayant Apte. ASPITRG 86

Result of pivot (7,10) 1 0 0 0 0 0 0-2 0 1 0 3 0-1 0 1 0 0 0 0 0 1 0-1 0-1 0 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 1 0 0 0-1 0 1 0 0 0 0 1 0 0-1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1-1 0 0 0 2 0 1 0 0 0 0 0 0 0 1 0-1 1-1 0 0 0 0 0 0 0 0 0-2 1 1 0 2 0 1 0 0 0 0 0 0 0 1 0 0 0-1 1 1 June 29,2012 Jayant Apte. ASPITRG 87

Result of pivot(8,11) 1 0 0 0 0 0 0 1-1.5-0.5 0 0 0-2.5 0 1 0 0 0 0 0 0 0.5-0.5 0 0 0 0.5 0 0 1 0 0 0 0-1 0.5 0.5 0 0 0 0.5 0 0 0 1 0 0 0 0 0.5 0.5 0 0 0 1.5 0 0 0 0 1 0 0 0-0.5 0.5 0 0 0 0.5 0 0 0 0 0 1 0 1-0.5-0.5 0 0 0 0.5 0 0 0 0 0 0 1 1-1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0.5-0.5 1 0 0 0.5 0 0 0 0 0 0 0-1 0.5 0.5 0 1 0 0.5 0 0 0 0 0 0 0 0 0.5 0.5 0 0 1 1.5 June 29,2012 Jayant Apte. ASPITRG 88

Result of pivot(6,7) 1 0 0 0 0 0-1 0-0.5 0.5 0 0 0-2.5 0 1 0 0 0 0 0 0 0.5-0.5 0 0 0 0.5 0 0 1 0 0 0 1 0-0.5-0.5 0 0 0 0.5 0 0 0 1 0 0 0 0 0.5 0.5 0 0 0 1.5 0 0 0 0 1 0 0 0-0.5 0.5 0 0 0 0.5 0 0 0 0 0 1-1 0 0.5 0.5 0 0 0 0.5 0 0 0 0 0 0 1 1-1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0.5-0.5 1 0 0 0.5 0 0 0 0 0 0 1 0-0.5-0.5 0 1 0 0.5 0 0 0 0 0 0 0 0 0.5 0.5 0 0 1 1.5 June 29,2012 Jayant Apte. ASPITRG 89

Result of pivot(6,10) 1 0 0 0 0-1 0 0-1 0 0 0 0-3 0 1 0 0 0 1-1 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0-1 1 0 0 0 0 0 0 1 0 0 0 0 1-1 1 0-1 0 0 0 0 0 0 0 0 0 0 2-2 0 1 1 0 0 0 1 0 0 0 0 0 2-1 1 0 0 0 0 0 1 0 0 0 0 0 1-1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0-1 1 0 0 0 0 0 1 1 June 29,2012 Jayant Apte. ASPITRG 90

Backtrack: pivot(9,5),pivot(7,6),pivot(11,8) 1 0 0 0 0 0 0-2 0 1 0 3 0-1 0 1 0 0 0 0 0 1 0-1 0-1 0 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 1 0 0 0-1 0 1 0 0 0 0 1 0 0-1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1-1 0 0 0 2 0 1 0 0 0 0 0 0 0 1 0-1 1-1 0 0 0 0 0 0 0 0 0-2 1 1 0 2 0 1 0 0 0 0 0 0 0 1 0 0 0-1 1 1 June 29,2012 Jayant Apte. ASPITRG 91

Result of pivot(8,9) 1 0 0 0 0 0 0 0-1 0 0 1 0-2 0 1 0 0 0 0 0-1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 1 0 0 0-1 0 1 0 0 0 0 1 0 0 1-1 0 0-1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1-1 0 0 0 2 0 1 0 0 0 0 0 0 0-1 1 0 1 1 0 1 0 0 0 0 0 0 0-2 1 1 0 2 0 1 0 0 0 0 0 0 0 1 0 0 0-1 1 1 June 29,2012 Jayant Apte. ASPITRG 92

Backtrack pivot(9,8),pivot(10,7) 1 0 0 0 0 0 0 0 0-1 2 1 0-1 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 0 0 1-1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0-1 1 1 0 1 0 0 0 0 0 0 0 1 0-1 1-1 0 0 0 0 0 0 0 0 0 0 1-1 2 0 0 1 0 0 0 0 0 0 0 0 0 1-1 0 1 1 June 29,2012 Jayant Apte. ASPITRG 93

Result of pivot(6,11) 1 0 0 0 0 0-1 0 0 0 1 0 0-2 0 1 0 0 0 0 0 0 0 0-1 0 0 0 0 0 1 0 0 0 1 0 0-1 1 0 0 1 0 0 0 1 0 0 0 0 0 1-1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1-1 0 0 1-1 0 0 0 0 0 0 0 0 0 1 0 0-1 1 1 0 1 0 0 0 0 0 0 1 1 0-2 2 0 0 1 0 0 0 0 0 0 0 0 1-1 2 0 0 1 0 0 0 0 0 0 0 0 0 1-1 0 1 1 June 29,2012 Jayant Apte. ASPITRG 94

Backtrack to root June 29,2012 Jayant Apte. ASPITRG 95

Proof of uniqueness of initial basis Suppose there exists another lex-positive optimum basis B Recall D matrix. June 29,2012 Jayant Apte. ASPITRG 96

Proof of uniqueness of initial basis B B-B* B*-B B*={0,...m} N*={m+1,...,m+d} Consider pivoting from B* to B. Indices B-B*= must be brought into basis Every pivot will involve subtracting a certain row vector from cost row Since B is also optimum It follows that is lexicographicallly negative June 29,2012 Jayant Apte. ASPITRG 97