Mathematical programming is a field of mathematics that deals with the optimization of complex systems and processes. It has a rich history that dates back to the 1940s when George Dantzig, an American mathematician, developed the simplex method for solving linear programming problems. Since then, it has grown into a vast and dynamic discipline that has found applications in various fields such as finance, transportation, engineering, and operations research.
In this blog post, I will explore the origins of mathematical programming, provide an example of a problem that can be tackled and list some classical problems. I will also discuss some of the software products used in mathematical programming, both open-source and commercial.
Origins of Mathematical Programming
George Dantzig, the father of mathematical programming, was working as a mathematician for the U.S. Air Force in the 1940s when he developed the simplex method. The simplex method is an algorithm for solving linear programming problems, which are optimization problems that involve linear relationships between variables. The simplex method is still widely used today and remains one of the most powerful and efficient algorithms for solving linear programming problems.
Since Dantzig’s breakthrough, the field has evolved into a discipline that encompasses a wide range of optimization problems, including linear programming, nonlinear programming, integer programming, and convex programming. The development of mathematical programming has been driven by the need to find efficient and effective solutions to complex problems in various fields, such as finance, transportation, engineering, and operations research.
Example of a Problem Solved
One of the most common applications of mathematical programming is in the field of transportation. For example, consider a trucking company that needs to transport goods from several factories to several warehouses. The company wants to minimize the total cost of transportation while ensuring that all the goods are delivered on time. This is an example of a transportation problem, which can be solved using these theories and techniques.
To solve the transportation problem, we can use a linear programming model that minimizes transportation costs while satisfying the problem’s constraints. The constraints may include the capacity of each truck, the available resources at each factory and warehouse, and the time constraints for delivering the goods. The solution to the transportation problem provides the optimal assignment of trucks to factories and warehouses and the optimal route for each truck.
Classical Mathematical Programming Problems
In addition to transportation problems, there are several other classical mathematical programming problems that have been widely studied and applied. These include:
Blending: Blending problems involve finding the optimal combination of raw materials to produce a given product with specific characteristics. For example, a company that produces gasoline may want to find the optimal blend of crude oils to produce gasoline with a specific octane rating.
Assignment: Assignment problems involve finding the optimal assignment of tasks to resources, such as people or machines. For example, a company that operates a call center may want to find the optimal assignment of callers to operators.
Combinatorial: Combinatorial problems involve finding the optimal combination of items to achieve a specific objective. For example, a company that produces consumer goods may want to find the optimal combination of products to produce with a specific set of resources.
Software Products
Mathematical programming problems can be solved using a wide range of software products, both open-source and commercial.
Some of the most popular open-source software products for mathematical programming include:
OpenSolver: OpenSolver is a free and open-source interface that mimics “Excel Solver” and allows models written in an Excel spreadsheet to be solved using several open-source solvers such as CBC (which is part of COIN-OR, see below). Both OpenSolver and Excel Solver are my favorite option for smaller problems because of the ubiquity of Excel on almost everyone’s computers.
COIN-OR: COIN-OR is a collection of open-source software tools for operations research, including mathematical programming. COIN-OR includes solvers for linear programming, mixed-integer programming, and other optimization problems.
In addition to open-source software, there are several commercial software products for mathematical programming that are widely used, including:
CPLEX: CPLEX is a commercial optimization software product developed by IBM. CPLEX provides advanced optimization algorithms for linear programming, mixed-integer programming, and quadratic programming problems.
Gurobi: Gurobi is a mathematical programming solver widely used for linear programming, mixed-integer programming, and quadratic programming problems. Gurobi is known for its high performance and scalability, making it a popular choice for solving large-scale optimization problems.
MATLAB: MATLAB is a widely used programming software product that provides a range of optimization algorithms for linear programming, nonlinear programming, and integer programming problems.
Finishing up
Mathematical programming is a field of mathematics that deals with the optimization of complex systems and processes. It has a rich history that dates back to the 1940s and has since grown into a vast and dynamic discipline with applications in various fields such as finance, transportation, engineering, and operations research. The field has developed a range of classical programming problems, including blending, assignment, and combinatorial problems, and there are several software products available, both open-source and commercial, that can be used to solve these problems. Whether you are a researcher, a practitioner, or a student, this is a fascinating and rewarding field that offers a wealth of opportunities for learning and discovery.
PS Shameless plug: I sometimes do projects on linear programming. I have had real corporate jobs (with bosses and salary and all) doing mathematical programming. I have also done some freelance work on Upwork (profile: optimization consultant) and on Fiverr (profile: optimization consultant). Oh, and I have the CAP designation from Informs. If you need help with anything contact me here.
One thought on “What is mathematical programming”