This project features a Python-based implementation of the Simplex Algorithm, a popular method for solving linear programming problems (LPP). The solver is designed to find the optimal solution (maximization) for objective functions subject to a set of linear inequality constraints.
The solver processes problems in their standard form:
-
Objective Function: Maximize
$Z = c_1x_1 + c_2x_2 + ... + c_nx_n$ -
Constraints:
$Ax \le b$ , where$x \ge 0$
The algorithm utilizes:
- Slack Variables: To convert inequalities into equalities.
- Initial Tableau: Constructing the starting matrix for the iterative process.
- Pivoting: Systematically selecting entering and leaving variables based on the optimality condition and the ratio test.
- Optimality Check: Iterating until no further improvements to the objective function can be made.
- Step-by-Step Execution: The Jupyter Notebook format allows for a clear, cell-by-cell walkthrough of the optimization process.
- Tableau Visualization: Displays the transformation of the simplex tableau at each iteration.
- Optimization Logic: Handles the identification of pivot rows and columns to find the basic feasible solution.
- Python-Powered: Utilizes
numpyfor efficient matrix operations and linear algebra.
Simplex.ipynbโ The primary Jupyter Notebook containing the algorithm implementation, logic, and example problems.
- Requirements: Ensure you have Python and Jupyter installed (via Anaconda or pip).
- Dependencies:
pip install numpy pip install matplotlib