One of the most significant advancements in linear programming is the simplex method, developed by George Dantzig. This algorithm provides a systematic approach to finding the optimal solution to linear programming problems. In this article, we will explore the simplex method, its key concepts, and how it is applied to solve linear programming problems.
The simplex method is a systematic approach to traverse the vertices of the polyhedron containing feasible solutions in a linear programming problem. It aims to find the optimal solution by iteratively improving the objective function value. This method is considered one of the greatest inventions of modern times due to its broad applicability in solving business-related problems.
To illustrate the simplex method, let’s consider a furniture production problem. We want to maximize the revenue generated by producing chairs and tables, subject to constraints on the availability of mahogany and labor. The original problem can be formulated as follows:
In this formulation, x1 represents the number of chairs produced, x2 represents the number of tables produced, and the objective function maximizes the total revenue. The constraints limit the consumption of mahogany and labor within the available capacities.
To apply the simplex method, we transform the original problem into the standard form, which involves converting the inequalities into equalities. We introduce slack variables to represent the surplus capacity of each constraint. In this case, we add h1 and h2 as slack variables for the mahogany and labor constraints, respectively. The problem in standard form becomes:
The slack variables h1 and h2 represent the unused capacities of mahogany and labor, respectively. We still aim to maximize the revenue while satisfying these transformed equalities.
A basic feasible solution is an initial production plan that satisfies all the constraints, with some variables set to zero. In our case, the initial solution where no chairs or tables are produced (x1=0, x2=0) represents a basic feasible solution. This solution generates zero revenue, as expected.
The non-basic variables in a basic feasible solution are set to zero, while the basic variables take positive values. In our initial solution, h1 and h2 are the basic variables, representing the unused capacities of mahogany and labor. The non-basic variables are x1 and x2, which are set to zero. This configuration is called a basic feasible solution and is an important concept in linear programming.
To express the problem in canonical form, we represent the basic variables (h1 and h2) in terms of the non-basic variables (x1 and x2). Similarly, we substitute the non-basic variables in the objective function. This process is known as pivoting. The canonical form of the problem becomes:
In the canonical form, the objective function and constraints are expressed with respect to the basic variables x1 and x2. The reduced costs associated with the non-basic variables x1 and x2 (coefficients in the objective function) indicate the potential improvement in the objective function value if these variables enter the basis.
In each iteration of the simplex method, we analyze the non-basic variables and their coefficients. If all the non-basic variables have coefficients ≤ 0, the current solution is optimal. Negative reduced costs associated with the non-basic variables indicate that increasing these variables would decrease the objective function value.
If there is a non-basic variable with a positive reduced cost, we choose the one with the largest coefficient to enter the basis. To determine the maximum value for this variable, we perform the minimum ratio test using the transformed equations. The minimum ratio identifies the constraint that limits the increase of the non-basic variable while staying feasible.
After selecting the entering variable, we perform pivoting to express the problem in canonical form with respect to the new basic variables. This process continues iteratively until we reach an optimal solution or determine that the problem is unbounded.
The simplex method provides a systematic approach to solving linear programming problems by iteratively improving the objective function value. By transforming the problem into the standard form and expressing it in canonical form, we can identify basic feasible solutions and optimize the objective function. The simplex method is a fundamental tool in linear programming, enabling efficient optimization in various industries and applications.
Download the complete Linear Programming Tutorial Series slide deck.
View the entire series:
GUROBI NEWSLETTER
Latest news and releases
Choose the evaluation license that fits you best, and start working with our Expert Team for technical guidance and support.
Request free trial hours, so you can see how quickly and easily a model can be solved on the cloud.