jayant lrs

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

Upload: jayant-apte

Post on 23-Jun-2015

182 views

Category:

Business


2 download

TRANSCRIPT

Page 1: Jayant lrs

Introduction to Lexicographic Reverse Search: lrs

June 29, 2012

Jayant ApteASPITRG

Page 2: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 2

Outline

●Introduction●Lexicographic Simplex Algorithm●Lex-positive and Lex min bases●The pitfalls in reverse search●Lexicographic Reverse search

Page 3: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 3

Introduction

● Representations of a Polyhedron● Reverse Search: Some Trivia● Reverse Search: The high level idea

Page 4: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 4

H-Representation of a Polyhedron

Page 5: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 5

V-Representation of a Polyhedron

Page 6: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 6

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

Page 7: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 7

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

Page 8: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 8

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

Page 9: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 9

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

Page 10: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 10

Relationship between Simplex Algorithm and Reverse Search

Ref.David Avis, lrs: A Revised Implementation of the Reverse Search Vertex Enumeration Algorithm

Page 11: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 11

Background: Lexicographic Order

Page 12: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 12

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

Page 13: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 13

Lexicographic Simplex Method

Page 14: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 14

The Linear Programming Problem

Constraint Set

Objective Function

●d-decision variables●m-constraints

Page 15: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 15

Example

Page 16: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 16

Nature of Constrained Region

(1,0,0)

(0,0,0)

(0,1,0)

(1,1,0)

(0,1,1)

(0.5,0.5,1.5)(1,1,1)

(0,0,1)

Page 17: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 17

Relationship between inequalities and Vertex: Geometric intuition of Degeneracy

(0,0,1)

Highlighted inequalities are tight at (0,0,1)

Page 18: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 18

Relationship between inequalities and Vertex: Geometric intuition of Degeneracy

(0,0,1)

Page 19: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 19

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.

Page 20: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 20

How to solve this LP?

● Rearrange inequalities to decide a starting vertex

● Introduce slack variables ● Convert to matrix form● Convert to dictionary form

Page 21: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 21

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)

Page 22: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 22

Define Slack Variables

●Convert inequalities to equalities by introducing slack variables

●Original variables are called decision variables

Page 23: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 23

Our Example

Page 24: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 24

Our Example

-1 0 0 1 0 0 0 0 0 0 0 00 -1 0 0 1 0 0 0 0 0 0 00 0 -1 0 0 1 0 0 0 0 0 01 0 0 0 0 0 1 0 0 0 0 00 1 0 0 0 0 0 1 0 0 0 00 1 1 0 0 0 0 0 1 0 0 00 -1 1 0 0 0 0 0 0 1 0 01 0 1 0 0 0 0 0 0 0 1 0-1 0 1 0 0 0 0 0 0 0 0 1

Page 25: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 25

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

Page 26: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 26

Our example

-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 00 0 00 0 00 0 00 0 00 0 01 0 00 1 00 0 1

We define initial basis as

Hence initial co-basis is

Page 27: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 27

is invertible

Our example

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 00 0 00 0 00 0 00 0 00 0 01 0 00 1 00 0 1

Page 28: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 28

Add a cost row

● Add a cost row at the top

Page 29: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 29

Our example

1 1 1 1 0 0 0 0 0 0 0 0 00 -1 0 0 1 0 0 0 0 0 0 0 00 0 -1 0 0 1 0 0 0 0 0 0 00 0 0 -1 0 0 1 0 0 0 0 0 00 1 0 0 0 0 0 1 0 0 0 0 00 0 1 0 0 0 0 0 1 0 0 0 00 0 1 1 0 0 0 0 0 1 0 0 00 0 -1 1 0 0 0 0 0 0 1 0 00 1 0 1 0 0 0 0 0 0 0 1 00 -1 0 1 0 0 0 0 0 0 0 0 1

0 1 2 3 4 5 6 7 8 9 10 11 12

Page 30: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 30

Converting Linear program to the dictionary format

Page 31: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 31

Derive the dictionary from matrix form

Page 32: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 32

Our example

The vertex

Cost function value At current vertex

Page 33: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 33

Dictionary Format

Solution CorrespondingTo Dictionary

Cost Corresponding To Dictionary

Change in Cost Corresponding to each Co-basic Variable

Basic Indices Co-Basic Indices

Page 34: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 34

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 initial implying that initial basis is identity matrix

Call this the solution of the initial dictionary or the initial

Page 35: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 35

Our example

1 0 0 0 0 0 0 0 0 0 1 -1.5 -0.5 -2.50 1 0 0 0 0 0 0 0 0 0 0.5 -0.5 0.50 0 1 0 0 0 0 0 0 0 -1 0.5 0.5 0.50 0 0 1 0 0 0 0 0 0 0 0.5 0.5 1.50 0 0 0 1 0 0 0 0 0 0 0.5 -0.5 0.50 0 0 0 0 1 0 0 0 0 -1 0.5 0.5 0.50 0 0 0 0 0 1 0 0 0 0 0.5 0.5 1.50 0 0 0 0 0 0 1 0 0 0 -0.5 0.5 0.50 0 0 0 0 0 0 0 1 0 1 -0.5 -0.5 0.50 0 0 0 0 0 0 0 0 1 1 -1 -1 0

0 1 2 3 4 5 6 7 8 9 10 11 12 13

0123456789

Basis

The vertex

Cost

Page 36: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 36

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'.

Page 37: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 37

Choosing the entering variable

● Choose the entering variable that brings about an increase in cost

● 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

One of these is supposed to assume a nonzero value

Page 38: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 38

Choosing entering variable

0 1 2 3 4 5 6 7 8 9 10 11 12 13

0123456789

Basis

1 0 0 0 0 0 0 0 0 0 1 -1.5 -0.5 -2.50 1 0 0 0 0 0 0 0 0 0 0.5 -0.5 0.50 0 1 0 0 0 0 0 0 0 -1 0.5 0.5 0.50 0 0 1 0 0 0 0 0 0 0 0.5 0.5 1.50 0 0 0 1 0 0 0 0 0 0 0.5 -0.5 0.50 0 0 0 0 1 0 0 0 0 -1 0.5 0.5 0.50 0 0 0 0 0 1 0 0 0 0 0.5 0.5 1.50 0 0 0 0 0 0 1 0 0 0 -0.5 0.5 0.50 0 0 0 0 0 0 0 1 0 1 -0.5 -0.5 0.50 0 0 0 0 0 0 0 0 1 1 -1 -1 0

Page 39: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 39

Choosing the leaving variable

● Recall lexicographic order● Construct following matrix:

Page 40: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 40

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

Page 41: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 41

Choosing the Leaving Variable

0 1 2 3 4 5 6 7 8 9 10 11 12 13

0123456789

Basis

1 0 0 0 0 0 0 0 0 0 1 -1.5 -0.5 -2.50 1 0 0 0 0 0 0 0 0 0 0.5 -0.5 0.50 0 1 0 0 0 0 0 0 0 -1 0.5 0.5 0.50 0 0 1 0 0 0 0 0 0 0 0.5 0.5 1.50 0 0 0 1 0 0 0 0 0 0 0.5 -0.5 0.50 0 0 0 0 1 0 0 0 0 -1 0.5 0.5 0.50 0 0 0 0 0 1 0 0 0 0 0.5 0.5 1.50 0 0 0 0 0 0 1 0 0 0 -0.5 0.5 0.50 0 0 0 0 0 0 0 1 0 1 -0.5 -0.5 0.50 0 0 0 0 0 0 0 0 1 1 -1 -1 0

Page 42: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 42

Lexicographic choice of leaving variable

Page 43: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 43

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

Page 44: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 44

The pivot Operation

Page 45: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 45

● is given as:

This is how to get after each successive iteration

Page 46: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 46

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

Page 47: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 47

Result of pivot (5,11)

1 0 0 0 0 3 0 0 0 0 -2 0 1 -10 1 0 0 0 -1 0 0 0 0 1 0 -1 00 0 1 0 0 -1 0 0 0 0 0 0 0 00 0 0 1 0 -1 0 0 0 0 1 0 0 10 0 0 0 1 -1 0 0 0 0 1 0 -1 00 0 0 0 0 2 0 0 0 0 -2 1 1 10 0 0 0 0 -1 1 0 0 0 1 0 0 10 0 0 0 0 1 0 1 0 0 -1 0 1 10 0 0 0 0 1 0 0 1 0 0 0 0 10 0 0 0 0 2 0 0 0 1 -1 0 0 1

Basis:0 1 2 3 4 11 6 7 8 9 Co-Basis:10 5 12

0 1 2 3 4 5 6 7 8 9 10 11 12 130

1

2

3

4

11

6

7

8

9

Basis

Identity column

Page 48: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 48

Solving Linear Programs: Simplex Algorithm

Page 49: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 49

Iteration 1

(1,0,0)

(0,0,0)

(0,1,0)

(1,1,0)

(0,1,1)

(0.5,0.5,1.5) (1,1,1)

(0,0,1)

You Are Here.

Page 50: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 50

Iteration 1

1 0 0 0 0 0 0 0 0 0 1 -1.5 -0.5 -2.50 1 0 0 0 0 0 0 0 0 0 0.5 -0.5 0.50 0 1 0 0 0 0 0 0 0 -1 0.5 0.5 0.50 0 0 1 0 0 0 0 0 0 0 0.5 0.5 1.50 0 0 0 1 0 0 0 0 0 0 0.5 -0.5 0.50 0 0 0 0 1 0 0 0 0 -1 0.5 0.5 0.50 0 0 0 0 0 1 0 0 0 0 0.5 0.5 1.50 0 0 0 0 0 0 1 0 0 0 -0.5 0.5 0.50 0 0 0 0 0 0 0 1 0 1 -0.5 -0.5 0.50 0 0 0 0 0 0 0 0 1 1 -1 -1 0

0 1 2 3 4 5 6 7 8 9 10 11 12 13

0123456789

Basis

The vertex

Cost

Page 51: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 51

Pivot(5,11)

Page 52: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 52

Iteration 2

(1,0,0)

(0,0,0)

(0,1,0)

(1,1,0)

(0,1,1)

(0.5,0.5,1.5) (1,1,1)

(0,0,1)

You Are Here.

Page 53: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 53

Iteration 2

1 0 0 0 0 3 0 0 0 0 -2 0 1 -10 1 0 0 0 -1 0 0 0 0 1 0 -1 00 0 1 0 0 -1 0 0 0 0 0 0 0 00 0 0 1 0 -1 0 0 0 0 1 0 0 10 0 0 0 1 -1 0 0 0 0 1 0 -1 00 0 0 0 0 2 0 0 0 0 -2 1 1 10 0 0 0 0 -1 1 0 0 0 1 0 0 10 0 0 0 0 1 0 1 0 0 -1 0 1 10 0 0 0 0 1 0 0 1 0 0 0 0 10 0 0 0 0 2 0 0 0 1 -1 0 0 1

Basis:0 1 2 3 4 11 6 7 8 9 Co-Basis:10 5 12

0 1 2 3 4 5 6 7 8 9 10 11 12 13

01234116789

Basis

Page 54: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 54

pivot(4,10)

Page 55: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 55

Iteration 3

(1,0,0)

(0,0,0)

(0,1,0)

(1,1,0)

(0,1,1)

(0.5,0.5,1.5) (1,1,1)

(0,0,1)

You Are Still Here.Blame degeneracy!

Page 56: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 56

Iteration 3

1 0 0 0 2 1 0 0 0 0 0 0 -1 -10 1 0 0 -1 0 0 0 0 0 0 0 0 00 0 1 0 0 -1 0 0 0 0 0 0 0 00 0 0 1 -1 0 0 0 0 0 0 0 1 10 0 0 0 1 -1 0 0 0 0 1 0 -1 00 0 0 0 2 0 0 0 0 0 0 1 -1 10 0 0 0 -1 0 1 0 0 0 0 0 1 10 0 0 0 1 0 0 1 0 0 0 0 0 10 0 0 0 0 1 0 0 1 0 0 0 0 10 0 0 0 1 1 0 0 0 1 0 0 -1 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13

Basis:0 1 2 3 10 11 6 7 8 9 Co-Basis:4 5 12

012310116789

Basis

Page 57: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 57

pivot(6,12)

Page 58: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 58

Iteration 4

(1,0,0)

(0,0,0)

(0,1,0)

(1,1,0)

(0,1,1)

(0.5,0.5,1.5) (1,1,1)

(0,0,1)

You Are Here.

Page 59: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 59

Iteration 4

1 0 0 0 1 1 1 0 0 0 0 0 0 00 1 0 0 -1 0 0 0 0 0 0 0 0 00 0 1 0 0 -1 0 0 0 0 0 0 0 00 0 0 1 0 0 -1 0 0 0 0 0 0 00 0 0 0 0 -1 1 0 0 0 1 0 0 10 0 0 0 1 0 1 0 0 0 0 1 0 20 0 0 0 -1 0 1 0 0 0 0 0 1 10 0 0 0 1 0 0 1 0 0 0 0 0 10 0 0 0 0 1 0 0 1 0 0 0 0 10 0 0 0 0 1 1 0 0 1 0 0 0 2

0123101112789

Basis

Basis:0 1 2 3 10 11 12 7 8 9 Co-Basis:4 5 6

0 1 2 3 4 5 6 7 8 9 10 11 12 13

Page 60: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 60

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

Page 61: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 61

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'

Page 62: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 62

What pivot would have landed me at this dictionary if i was running simplex?

Page 63: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 63

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

Page 64: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 64

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

Page 65: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 65

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

Page 66: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 66

Evolution of lrs

All possible BasesVery few vertices

rs|BFS|>>|Vertices|

A reduced set of basesCalled lex-positive Bases

|lex-positive BFS>|Vertices||

A reduced set of basesCalled lex-min Bases

|Lex-min BFS|=|Vertices|

Page 67: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 67

Recall these functions

Page 68: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 68

Pseudo-code

Page 69: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 69

Pseudo-code

X

Reverse(a)=p

Cobasis={a,b,c}

1Cobasis={p,b,c}

●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

Page 70: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 70

Pseudo-code

X

Reverse(a)=0

Cobasis={a,b,c}

Reverse(b)=?

Page 71: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 71

Pseudo-code

X

Reverse(a)=0

Cobasis={a,b,c}

Reverse(b)=0

Reverse(c)=0

Backtrack

● 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

Page 72: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 72

Pseudo-code

●Execution continues until all the columns of the starting dictionary are examined

Page 73: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 73

Lexicographic Reverse Search on our example

(1,0,0)

(0,0,0)

(0,1,0)

(1,1,0)

(0,1,1)

(0.5,0.5,1.5) (1,1,1)

(0,0,1)

You Are Here.

Page 74: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 74

V=(0 0 0)N=( 10 11 12)

V=(1 0 0)N=(4 11 12)

reverse(10)=4pivot(4,10) reverse(11)=5

pivot(5,11)

reverse(12)=9pivot(9,12)

reverse(12)=8pivot(8,12)

reverse(11)=5pivot(5,11)

reverse(10)=4pivot(4,10)

reverse(12)=6pivot(6,12)

reverse(11)=6pivot(6,11)

reverse(10)=7pivot(7,10)

reverse(9)=8pivot(8,9)

reverse(11)=8pivot(8,11)

reverse(7)=6pivot(6,7)

reverse(9)=5pivot(5,9)

V=(1 0 1)N=(4 11 8)

V=0 1 0)N=(10 5 12)

V=(0 0 1)N=(10 11 9)

V=(1 1 0)N=(4 5 12)

reverse(5)=0

reverse(4)=0

reverse(11)=0

reverse(8)=0

reverse(9)=0

V=(0 1 1)N=(10 5 6)

V=(0.5 0.5 1.5)N=(7 8 9)

V=(1 0 1)N=(8 12 9)

V=(1 0 0)N=(6 8 5)

V=(1 1 1)N=(5 6 9)

V=(0 1 1)N=(10 6 9)

V=(0 0 1)N=(7 11 9)

reverse(9)=0

reverse(5)=0 reverse(6)=0 reverse(9)=0

reverse(7)=0

reverse(8)=0 reverse(12)=0

reverse(9)=0

V=(0.5 0.5 1.5)N=(6 8 9)

reverse(6)=0 reverse(8)=0 reverse(5)=0

reverse(6)=0

reverse(8)=0 reverse(8)=0 reverse(12)=0 reverse(9)=0

Page 75: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 75

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

Page 76: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 76

Starting dictionary

1 0 0 0 0 0 0 0 0 0 1 1 1 00 1 0 0 0 0 0 0 0 0 -1 0 0 00 0 1 0 0 0 0 0 0 0 0 -1 0 00 0 0 1 0 0 0 0 0 0 0 0 -1 00 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 0 1 0 0 0 0 1 1 20 0 0 0 0 0 0 1 0 0 0 -1 1 10 0 0 0 0 0 0 0 1 0 1 0 1 20 0 0 0 0 0 0 0 0 1 -1 0 1 1

Page 77: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 77

Result of pivot(4,10)(real notation)

1 0 0 0 -1 0 0 0 0 0 0 1 1 -10 1 0 0 1 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 0 0 -1 0 00 0 0 1 0 0 0 0 0 0 0 0 -1 00 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 0 1 0 0 0 0 1 1 20 0 0 0 0 0 0 1 0 0 0 -1 1 10 0 0 0 -1 0 0 0 1 0 0 0 1 10 0 0 0 1 0 0 0 0 1 0 0 1 2

Page 78: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 78

Result of pivot(8,12)

1 0 0 0 0 0 0 0 -1 0 0 1 0 -20 1 0 0 1 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 0 0 -1 0 00 0 0 1 -1 0 0 0 1 0 0 0 0 10 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 1 0 1 0 -1 0 0 1 0 10 0 0 0 1 0 0 1 -1 0 0 -1 0 00 0 0 0 -1 0 0 0 1 0 0 0 1 10 0 0 0 2 0 0 0 -1 1 0 0 0 1

Page 79: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 79

Result of pivot(5,11)

1 0 0 0 0 -1 0 0 -1 0 0 0 0 -30 1 0 0 1 0 0 0 0 0 0 0 0 10 0 1 0 0 1 0 0 0 0 0 0 0 10 0 0 1 -1 0 0 0 1 0 0 0 0 10 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 1 -1 1 0 -1 0 0 0 0 00 0 0 0 1 1 0 1 -1 0 0 0 0 10 0 0 0 -1 0 0 0 1 0 0 0 1 10 0 0 0 2 0 0 0 -1 1 0 0 0 1

Page 80: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 80

Now backtrack all the way to root

Page 81: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 81

Result of pivot(5,11)

1 0 0 0 0 -1 0 0 0 0 1 0 1 -10 1 0 0 0 0 0 0 0 0 -1 0 0 00 0 1 0 0 1 0 0 0 0 0 0 0 10 0 0 1 0 0 0 0 0 0 0 0 -1 00 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 -1 1 0 0 0 0 0 1 10 0 0 0 0 1 0 1 0 0 0 0 1 20 0 0 0 0 0 0 0 1 0 1 0 1 20 0 0 0 0 0 0 0 0 1 -1 0 1 1

Page 82: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 82

Result of pivot(4,10)

1 0 0 0 -1 -1 0 0 0 0 0 0 1 -20 1 0 0 1 0 0 0 0 0 0 0 0 10 0 1 0 0 1 0 0 0 0 0 0 0 10 0 0 1 0 0 0 0 0 0 0 0 -1 00 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 -1 1 0 0 0 0 0 1 10 0 0 0 0 1 0 1 0 0 0 0 1 20 0 0 0 -1 0 0 0 1 0 0 0 1 10 0 0 0 1 0 0 0 0 1 0 0 1 2

Page 83: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 83

Backtrack 1 step: pivot(10,4)

1 0 0 0 0 -1 0 0 0 0 1 0 1 -10 1 0 0 0 0 0 0 0 0 -1 0 0 00 0 1 0 0 1 0 0 0 0 0 0 0 10 0 0 1 0 0 0 0 0 0 0 0 -1 00 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 -1 1 0 0 0 0 0 1 10 0 0 0 0 1 0 1 0 0 0 0 1 20 0 0 0 0 0 0 0 1 0 1 0 1 20 0 0 0 0 0 0 0 0 1 -1 0 1 1

Page 84: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 84

Result of pivot(6,12)

1 0 0 0 0 0 -1 0 0 0 1 0 0 -20 1 0 0 0 0 0 0 0 0 -1 0 0 00 0 1 0 0 1 0 0 0 0 0 0 0 10 0 0 1 0 -1 1 0 0 0 0 0 0 10 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 -1 1 0 0 0 0 0 1 10 0 0 0 0 2 -1 1 0 0 0 0 0 10 0 0 0 0 1 -1 0 1 0 1 0 0 10 0 0 0 0 1 -1 0 0 1 -1 0 0 0

Page 85: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 85

Backtrack all the way to root

Page 86: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 86

Result of pivot(9,12)

1 0 0 0 0 0 0 0 0 -1 2 1 0 -10 1 0 0 0 0 0 0 0 0 -1 0 0 00 0 1 0 0 0 0 0 0 0 0 -1 0 00 0 0 1 0 0 0 0 0 1 -1 0 0 10 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 0 1 0 0 -1 1 1 0 10 0 0 0 0 0 0 1 0 -1 1 -1 0 00 0 0 0 0 0 0 0 1 -1 2 0 0 10 0 0 0 0 0 0 0 0 1 -1 0 1 1

Page 87: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 87

Result of pivot (7,10)

1 0 0 0 0 0 0 -2 0 1 0 3 0 -10 1 0 0 0 0 0 1 0 -1 0 -1 0 00 0 1 0 0 0 0 0 0 0 0 -1 0 00 0 0 1 0 0 0 1 0 0 0 -1 0 10 0 0 0 1 0 0 -1 0 1 0 1 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 0 1 -1 0 0 0 2 0 10 0 0 0 0 0 0 1 0 -1 1 -1 0 00 0 0 0 0 0 0 -2 1 1 0 2 0 10 0 0 0 0 0 0 1 0 0 0 -1 1 1

Page 88: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 88

Result of pivot(8,11)

1 0 0 0 0 0 0 1 -1.5 -0.5 0 0 0 -2.50 1 0 0 0 0 0 0 0.5 -0.5 0 0 0 0.50 0 1 0 0 0 0 -1 0.5 0.5 0 0 0 0.50 0 0 1 0 0 0 0 0.5 0.5 0 0 0 1.50 0 0 0 1 0 0 0 -0.5 0.5 0 0 0 0.50 0 0 0 0 1 0 1 -0.5 -0.5 0 0 0 0.50 0 0 0 0 0 1 1 -1 -1 0 0 0 00 0 0 0 0 0 0 0 0.5 -0.5 1 0 0 0.50 0 0 0 0 0 0 -1 0.5 0.5 0 1 0 0.50 0 0 0 0 0 0 0 0.5 0.5 0 0 1 1.5

Page 89: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 89

Result of pivot(6,7)

1 0 0 0 0 0 -1 0 -0.5 0.5 0 0 0 -2.50 1 0 0 0 0 0 0 0.5 -0.5 0 0 0 0.50 0 1 0 0 0 1 0 -0.5 -0.5 0 0 0 0.50 0 0 1 0 0 0 0 0.5 0.5 0 0 0 1.50 0 0 0 1 0 0 0 -0.5 0.5 0 0 0 0.50 0 0 0 0 1 -1 0 0.5 0.5 0 0 0 0.50 0 0 0 0 0 1 1 -1 -1 0 0 0 00 0 0 0 0 0 0 0 0.5 -0.5 1 0 0 0.50 0 0 0 0 0 1 0 -0.5 -0.5 0 1 0 0.50 0 0 0 0 0 0 0 0.5 0.5 0 0 1 1.5

Page 90: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 90

Result of pivot(6,10)

1 0 0 0 0 -1 0 0 -1 0 0 0 0 -30 1 0 0 0 1 -1 0 1 0 0 0 0 10 0 1 0 0 1 0 0 0 0 0 0 0 10 0 0 1 0 -1 1 0 0 0 0 0 0 10 0 0 0 1 -1 1 0 -1 0 0 0 0 00 0 0 0 0 2 -2 0 1 1 0 0 0 10 0 0 0 0 2 -1 1 0 0 0 0 0 10 0 0 0 0 1 -1 0 1 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 -1 1 0 0 0 0 0 1 1

Page 91: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 91

Backtrack: pivot(9,5),pivot(7,6),pivot(11,8)

1 0 0 0 0 0 0 -2 0 1 0 3 0 -10 1 0 0 0 0 0 1 0 -1 0 -1 0 00 0 1 0 0 0 0 0 0 0 0 -1 0 00 0 0 1 0 0 0 1 0 0 0 -1 0 10 0 0 0 1 0 0 -1 0 1 0 1 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 0 1 -1 0 0 0 2 0 10 0 0 0 0 0 0 1 0 -1 1 -1 0 00 0 0 0 0 0 0 -2 1 1 0 2 0 10 0 0 0 0 0 0 1 0 0 0 -1 1 1

Page 92: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 92

Result of pivot(8,9)

1 0 0 0 0 0 0 0 -1 0 0 1 0 -20 1 0 0 0 0 0 -1 1 0 0 1 0 10 0 1 0 0 0 0 0 0 0 0 -1 0 00 0 0 1 0 0 0 1 0 0 0 -1 0 10 0 0 0 1 0 0 1 -1 0 0 -1 0 00 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 0 1 -1 0 0 0 2 0 10 0 0 0 0 0 0 -1 1 0 1 1 0 10 0 0 0 0 0 0 -2 1 1 0 2 0 10 0 0 0 0 0 0 1 0 0 0 -1 1 1

Page 93: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 93

Backtrack pivot(9,8),pivot(10,7)

1 0 0 0 0 0 0 0 0 -1 2 1 0 -10 1 0 0 0 0 0 0 0 0 -1 0 0 00 0 1 0 0 0 0 0 0 0 0 -1 0 00 0 0 1 0 0 0 0 0 1 -1 0 0 10 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 0 0 0 0 0 1 0 10 0 0 0 0 0 1 0 0 -1 1 1 0 10 0 0 0 0 0 0 1 0 -1 1 -1 0 00 0 0 0 0 0 0 0 1 -1 2 0 0 10 0 0 0 0 0 0 0 0 1 -1 0 1 1

Page 94: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 94

Result of pivot(6,11)

1 0 0 0 0 0 -1 0 0 0 1 0 0 -20 1 0 0 0 0 0 0 0 0 -1 0 0 00 0 1 0 0 0 1 0 0 -1 1 0 0 10 0 0 1 0 0 0 0 0 1 -1 0 0 10 0 0 0 1 0 0 0 0 0 1 0 0 10 0 0 0 0 1 -1 0 0 1 -1 0 0 00 0 0 0 0 0 1 0 0 -1 1 1 0 10 0 0 0 0 0 1 1 0 -2 2 0 0 10 0 0 0 0 0 0 0 1 -1 2 0 0 10 0 0 0 0 0 0 0 0 1 -1 0 1 1

Page 95: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 95

Backtrack to root

Page 96: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 96

Proof of uniqueness of initial basis● Suppose there exists another lex-positive

optimum basis B● Recall D matrix.

Page 97: Jayant lrs

June 29,2012 Jayant Apte. ASPITRG 97

Proof of uniqueness of initial basis

● 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

B-B* B*-BB

B*={0,...m}N*={m+1,...,m+d}