Linear programming notes
Summary
- Many problems can be modeled as linear programs (LPs)
- If you can write your problem as an LP, you can use existing, highly optimized solvers to give polynomial time algorithms to solve them
Linear program
Definition of LP
We are given
n
variablesm
linear inequalities in these variables
Matrix form
- A matrix A with m rows and n columns
- A vector
b
of length m - A vector
c
of length n
Find a length-n vector x
such that :
And so that
Is as large as possible
A little more general
- Rewrite to maximize
A geometric view of linear programming
Linear optimization, find the point in the feasible solution, that is farthest from the current plot.
The optimal point would be at the corner of the polygon
History of LP algorithms
- The simplex method
- Not a polynomial time algorithm: for all proposed variants, there are example LPs that take exponential time to solve
- The ellipsoid method
- The first polynomial time algorithm for linear programming
- Horribly slow in practice and essentially never used
- Interior point method
- Polynomial
- Practical
Questions
Maximum flow as LP
We could rewrite the maximum flow problem as a linear program
Minimum cost flow as LP
Maximum Bipartite Matching
Integer linear program
If we add one more kind of constraints, we can get an integer linear program (ILP)
ILPs seem to be much more powerful and expressive than just LPs
In particular, solving ILP has no known polynomial time algorithm
- Post title:Linear programming notes
- Post author:Yuxuan Wu
- Create time:2021-11-18 09:42:23
- Post link:yuxuanwu17.github.io2021/11/18/2021-11-18-Linear-programming-notes/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.