Linear Programming basics
What you'll learn
- Describe what a linear program is.
- Solve a linear program using graphical and simplex methods.
- Compute the dual of the given linear program.
- Use the primal and dual values to prove optimality or infeasibility of the given linear program..
- Compute how the solution value changes under minor modification of the given linear program.
- Basic knowledge of linear algebra is required to understand various proofs presented.
- No programming experience needed.
Linear programming is a widely used optimization tool in various application (data science, engineering, transportation, supply chain, etc.). Linear programming also makes the basic foundation behind complex optimization tools like Mixed Integer Liner Programming (MILP) and Column generation. In this course, we will study the basic theoretical concepts related to linear programming.
The course is organized as follows. In the first section, we will introduce linear programming, and we will explore the convexity and types of optimalities. Then, in the second section, we will build up on the basics to learn ways to solve the linear program using simplex method. We will then explore the concept of linear programming duality. We will also go through some of the hardest to understand concepts like strong duality, complementary slackness and Farkas' lemma. Furthermore, we try to understand these concepts in an easy-to-follow way. This allows one to obtain lower bounds on the minimization problem and provide a proof of optimality or Infeasibility. In the last section, we will explore how to perform sensitivity analysis (the effects of changing parts of a linear program). At the end of each section, there are assignments to help you evaluate your knowledge.
As you would have noticed, this course doesn't explore modeling optimization problems as a linear program much. That is a separate topic and deserves an entire course on it.
Who this course is for:
- Students and professionals working with optimization and artificial intelligence.
I graduated from BITS Pilani Goa Campus in 2015 with B. E. (Hons.) Computer Science and M. Sc. (Hons.) Mathematics. After graduation, I worked with Google from 2015 to 2020 with operations research team. With the operations research team I worked as a developer of Google OR-Tools. I Left Google in 2020 to start my PhD under the supervision of Prof. Andrea Lodi and Prof. Guy Desaulniers in applied mathematics.
My research interests: