Math of LP and simplex Flashcards
What is the fundamental theorem of linear programming?
The fundamental theorem of linear programming is the fact that if the feasible region X is bounded and non-empty, which means that there exists a bounded optimal solution to the problem, then this optimal value will be obtained in (at least) one extreme point x^(k) in X.
Give the reasoning process behind the fundamental theorem of linear programming
It all starts with the theorem that says that the feasible region of an LP problem is a convex set. The proof of this sort of goes like this:
“we can take any two points that are feasible with respect to a constraint i, and then use the original definition of convexity to show that any point on the line between these two points are also feasible with respect to the constraint i.”. NB: requires standard form.
This proof builds on linearity.
Then the next major step is to understand what happens once we add multiple constraints. In fact, there is a proof (chapter 9) that results in the fact that the intersection of convex sets is also a convex set. Therefore, we know that the feasible region, constructed by individual convex sets, results in a convex set as well.
The next step is to understand that linear functions are convex and concave. Therefore, it does not matter if we max or min.
Now we know that every local optimum is also a global optimum.
The next step is about half spaces. In general, we say that hyperplanes split a space into half spaces. In R^3 the hyperplanes are called planes. In R^2 they are called lines.
Then, the intersection between a finite number of half spaces describes a polyhedron. In LP, we typically have the regular structural/functional constraints together with the non-negativity constraints to build the polyhedron.
With a polyhedron, or more precisely a bounded polyhedron, due to linearity of hyperplanes, we know that the polyhedron is actually a convex combination of the intersection points of the hyperplanes. A convex combination is a set of all points satisfying the equation
x = ∑lambda j x^(j) [j=1, p] and ∑lambda j = 1, and lambda j >= 0 for all j.
Why do we care about convex combination?
Because we can use it to prove that a point in the polyhedron is an extreme point or not. A point in polyhedron is an extreme point if it is not possible to express the point as a strict (0 < lambda < 1) convex combination of two points in X. In other words, only one point is included to describe it.
The last step is a proof by contradiction to show that if we have an optimal point, it must indeed be an extreme point.
This is a powerful result, since it allows simplex to efficiently explore only a very small subset of all the possible points in the feasible region. We say that the search is limited.
what do we do if we have negative variables or free variables?
We need to perform a substitution. If the variable has a non-positive constraint, we can substitute x for (-x1).
if free, we substitute x for (x1 - x2).
the point is that all new variables are non-negative, which allows simplex to run.
How many degrees of freedom is there in the system of equation?
Assuming that the ROWS of the matrix A are all linearly independent, there are n-m degrees of freedom.
What is the matrix form of standard form LP problem?
every LP problem can be converted to:
min z = cx
s.t. Ax = b
and x >= 0
Notation wise, how many variables and how many constraints do we consider as the size of the different vectors/matrices in the standard form?
Number of variables: n
Number of constraints: m
Size of matrix = rows x cols = m x n
this obviously includes slack variables, as we are in standard form.
why do we need a mathematical description of the extreme points to use simplex?
Because simplex will systematically search among all vertices (extreme points) associated with the feasible region.
how do we describe the extreme points mathematically?
We do it by using basic solutions.
The characterization of a vertex is that it lies in the intersection of a number of hyperplanes and that a number of constraints are active in the point. the question is: how many constraints are active in a vertex that we are interested in? Or more specifically, how many constraints need to be active to define a vertex uniquely?
if no constraints are binding, what are we talking about?
An inner point.
Define a basic solution
A basic solution (to a system of equaitons) to Ax = b is obtained if n-m variables are set to 0, the remaining variables are solved to find their value by solving the remaining m x m system of equations.
The variables that are set to 0 are called non-basic.
The remaining variables are called basic.
What is required for a basic solution to exist?
The remaining m x m matrix we get from selecting n-m variables as non-basic, must have columns that are linearly independent. This will ensure that we can get a solution to all the remaining variables.
“The simplex method searches for the basic that …”
… gives the best value according to the given objective function.
Define adjacent vertices
two vertices are adjacent if the set of active constraints in the two points differ in only one element. This means that they share all but one constraints.
Define adjacent basic solutions
Two basic solutions are adjacent if they share m-1 basic variables in common.