
Learn the basics of mathematical optimization and linear programming, including objective functions, feasible sets, and when constraints are linear. Discover why linear programs require linear objectives and continuous variables.
Formulate and solve a linear program to maximize revenue from four cabinet types under wood and labor constraints, using variables x1, x2, x3, and x4, and non-negativity.
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.
The lecture explains when an optimal solution exists, defines lower bounds and supremum, and shows that a closed and bounded (compact) domain with a continuous function guarantees a global minimum.
Discover how convexity ensures optimization reliability: convex sets and convex combinations keep line segments inside, while convex functions enable global optima in convex optimization and linear programs.
Learn how to solve linear programs, starting with two-variable cases and progressing to higher-dimensional problems with simplifying assumptions, then generalize, and analyze the revised simplex method and its complexity.
Learn solving linear programs with two variables by graphing the feasible region and moving the objective function to find the optimal vertex, such as x=4, y=2 giving value 16.
Explore simplex intuition for linear programs with variables by converting to standard equality form, introducing surplus variables, and performing entering and exiting variable steps to reach optimality or detect unboundedness.
Explore the simplex method by formalizing basic and nonbasic variables, building a dictionary, and performing pivot operations to achieve a feasible, optimal solution.
Explore the two-faced simplex method for linear programs, building an auxiliary problem to test feasibility, and use degeneracy and cycling avoidance with the blind rule and practical heuristics.
Discover the revised simplex method, including basic and non basic variable decomposition, reduced costs, entering and exiting variable rules, device simplex for efficient computation, and a ratio test example.
Analyze simplex complexity, possible dictionaries, and cycling avoidance rules; note practical behavior with about M times logging dictionaries on average, plus interior point methods and incremental reuse of solutions.
Explore linear programming duality by introducing duality, computing the dual from the primal, and examining strong duality, complementary slackness, and Fargas Lemma.
Derive the dual from a primal linear program by combining constraints to obtain lower bounds, and show the dual optimum equals the primal optimum.
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 strong duality in linear programming by linking primal and dual solutions through the simplex method, reduced costs, and optimal dictionaries.
Explore primal and dual feasibility, including feasible and bounded, infeasible and unbounded cases, and the special situation where both are invisible, with duality linking their infinite objectives.
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.
Explore sensitivity analysis in linear programming, covering changes to right-hand side, objective coefficients, and variables, using revised and dual simplex methods to assess feasibility and optimality.
This lecture explains how changing the right-hand side of constraints affects feasibility and optimal value in linear programming, using dual values and dual simplex to adjust solutions.
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.
Add a new variable and evaluate its impact on feasibility and optimality by computing reduced costs from dual costs and applying primal simplex 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.
Review the basics of convex optimization and linear programming, including the simplex method, dual programs, Fargas Lemma, and sensitivity analysis, then explore modeling, mixed integer linear programming, and column generation.
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.