
Mathematical programming is a powerful framework for modeling and solving optimization problems. It allows decision-makers to express objectives, constraints, and variables using mathematical notation. In this chapter, we explore the foundations of mathematical programming and introduce how it applies to real-world mathematical programming problems.
History of Mathematical Programming
Mathematical programming, also known as mathematical optimization, originated with the invention of linear programming by George Dantzig in 1947. Since then, it has become an indispensable tool for decision-making and resource allocation in a wide range of industries, including finance, logistics, manufacturing, and transportation.
What Are Mathematical Programming Problems?
Mathematical programming problems involve optimizing a mathematical objective function—such as minimizing cost or maximizing efficiency—subject to a set of constraints. These problems may be linear, integer, or nonlinear in nature, depending on the structure of the model.
For example, a company might want to determine the optimal way to allocate limited resources across multiple projects. This situation can be modeled as a mathematical programming problem, and solved using Gurobi’s industry-leading solver.
The Key Components of Mathematical Programming
The field of mathematical programming encompasses a three-step process.
Create your mathematical model. You start by translating your real-world problems mathematically, defining the questions you're asking (decision variables), your limitations (constraints), and the goals you need to achieve (objectives).
Develop algorithms. Develop algorithms that solve these mathematical programming models. Thankfully, there are many mathematical programming "solver" solutions available, including Gurobi, that include the algorithms you'll need.
Run the algorithms. Finally, you run your model through the solver to find the answer to your problem (i.e., answers to your questions, based on your unique objectives and constraints).
The Difference Between Mathematical Programming and Computer Programming
Mathematical programming is a problem-solving approach that uses mathematical models and algorithms to optimize decision-making processes. Computer programming, on the other hand, is about writing code to create software or systems that computers can execute. While they both involve the word "programming," they have different focuses and objectives.
Exploring Linear Programming
Linear Programming (LP) is a widely used mathematical programming technique that involves optimizing (minimizing or maximizing) a linear objective function (your defined goals) subject to a set of linear constraints (your defined limitations). LP is particularly useful in situations where resources need to be allocated efficiently or where decisions need to be made to maximize or minimize a certain outcome.
To illustrate the concepts of LP, we will introduce a typical case study known as the "Furniture Problem." Throughout this series, we will use the Furniture Problem to demonstrate the step-by-step process of formulating and solving LP models. By applying LP techniques to this practical scenario, you will gain a comprehensive understanding of how mathematical programming can be applied in real-world situations.
In addition to the case study, we will provide a general formulation for LP and MIP problems. Understanding the basic structure and components of LP models will enable you to tackle a wide range of optimization problems effectively.
Resources
Download the complete Linear Programming Tutorial Series slide deck.
View the entire series:
Welcome: Linear Programming Tutorial
Chapter 1: Mathematical Programming
Chapter 2: Introduction to Linear Programming
Chapter 3: Mixed Integer Linear Programming Problems
Chapter 4: Furniture Factory Problem
Chapter 5: Simplex Method
Chapter 6: Modeling and Solving Linear Programming Problems
Chapter 7: Sensitivity Analysis of Linear Programming Problems
Chapter 8: Multiple Optimal Solutions
Chapter 9: Unbounded Linear Programming Problems
Chapter 10: Infeasible Linear Programming Problems
Chapter 11: Linear Programming Overview – Further Considerations
Chapter 12: Duality in Linear Programming
Chapter 13: Optimality Conditions
Chapter 14: Dual Simplex Method
