This is a C++ console application designed to solve Linear Programming (LP) problems. The program takes a linear programming problem in any standard or non-standard form, converts it into a canonical form, and automatically applies the most suitable mathematical method to find the optimal solution.
- Supports both MIN and MAX objective functions.
- Handles various types of relational constraints (<=, >=, =) and automatically adjusts the matrix.
- Offers an optional feature to print the dictionary (tableau) after every iteration loop to track the algorithm's progress.
- Capable of identifying and notifying the user of special LP conditions such as Unbounded problems, Infeasible problems, and problems with Infinite solutions.
-
Standard Simplex Method: Used for standard canonical forms where all constant terms
$b_i$ are non-negative. -
Bland's Rule: Applied to prevent cycling when degeneracy is detected (e.g., when
$b_i = 0$ ). -
Two-Phase Simplex Method: Automatically triggered when auxiliary/artificial variables are needed, particularly when
$b_i < 0$ or when the constraints generate them.