
Convert linear programs to the standard equality format with nonnegative variables, using surplus variables and constraint splitting, and learn shifting for free variables and matrix representation.
Explain global versus local optimality, identify locally and globally optimal solutions, and compare strict and non-strict optima with relationships that globally optimal implies locally optimal, but not vice versa.
Explore the simplex method by formalizing basic and nonbasic variables, building a dictionary, and performing pivot operations to achieve a feasible, optimal solution.
Examine the duality theorem and the relationship between primal and dual problems. Using the weak duality theorem, the lecture shows that a feasible and unbounded primal implies an infeasible dual.
Explore complementary slackness in linear programming, linking primal and dual solutions through zero reduced costs and zero slacks, and use it to prove optimality and detect degeneracy.
Explore Farkas' lemma and a sharp infeasibility proof for a linear program by constructing the dual, a hyperplane separation, and the dual ray.
This lecture demonstrates how changing X2's objective coefficient affects feasibility and optimality, computes the reduced cost using B and N, and pivots to restore optimality.
Generalize linear programming techniques to handle any change by assessing feasibility and optimality, applying dual simplex to fix issues, and extending analysis to new constraints and columns.
Linear programming is a widely used optimization tool in various applications (data science, engineering, transportation, supply chain, etc.). Linear programming also makes the basic foundation behind complex optimization tools like Mixed Integer Linear 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 the 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 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.
A background in basic linear algebra is needed to understand the proofs. In case you face trouble with any of the lectures or assignments, feel free to reach out to me. I am always eager to help students. You can also schedule office hours from my website once a week (first come, first served) to clear your doubts.