Solve linear optimization problems
Linear programming (LP) is minimizing or maximizing a linear objective function subject to bounds, linear equality, and inequality constraints. Example problems include blending in process industries, production planning in manufacturing, cash flow matching in finance, and planning in energy and transportation.
Linear programming is the mathematical problem of finding a vector x that minimizes the function:
\[\min_{x} \left\{f^{\mathsf{T}}x\right\}\]
Subject to the constraints:
\[\begin{eqnarray}Ax \leq b & \quad & \text{(inequality constraint)} \\A_{eq}x = b_{eq} & \quad & \text{(equality constraint)} \\lb \leq x \leq ub & \quad & \text{(bound constraint)}\end{eqnarray}\]
You can use MATLAB® to implement the following commonly used algorithms to solve linear optimization problems:
- Interior point: Uses a primal-dual predictor-corrector algorithm and is especially useful for large-scale linear programs that have structure or can be defined using sparse matrices.
- Simplex: Uses a systematic procedure for generating and testing candidate vertex solutions to a linear program. The simplex algorithm and the related dual-simplex algorithm are the most widely used algorithms for linear programming.
Algorithms for some special cases of linear programs where the constraints have a network structure are typically faster than the general-purpose interior-point and simplex algorithms. Special cases include:
- Maximum network flow: Uses augmenting-path and push-relabel algorithms.
- Shortest path: Uses Dijkstra, Bellman-Ford, and search algorithms.
- Linear assignment: Uses a bipartite matching algorithm.
For more information on algorithms and linear programming, see Optimization Toolbox™.
Examples and How To
Use Cases
Software Reference
See also: Optimization Toolbox, Global Optimization Toolbox, integer programming, quadratic programming, nonlinear programming, multiobjective optimization, prescriptive analytics, Convex Optimization
Optimization Techniques Training Course
In this course you’ll learn applied optimization techniques in the MATLAB® environment, focusing on using Optimization Toolbox™ and Global Optimization Toolbox.