Solving linear programming problems step-by-step
Project description
Elpee
A linear programming library with step by step implementation.
Setup
Setup the environment using the following steps with conda.
# create new conda environment
conda create -n <env_name>
# select yes to allow installation
# activate conda environment
conda activate <env_name>
# install the requirements for the library
pip install -r requirements.txt
Example Problem
Define the Linear Programming Problem to be solved using the All Stack Starting Method by defining the Objective Function and the Constraint Expressions.
from elpee import LinearProblem
# set up a maximization problem
problem = LinearProblem(is_maximization=True)
# define the objective function
problem.add_objective('x + y')
# add the constraints to the problem
problem.add_constraint('-x + y <= 2')
problem.add_constraint('6*x + 4*y >= 24')
problem.add_constraint('y >= 1')
Add additional configurations to apply Big-M or Dual Simplex Method
problem.use_dual_simplex() # use to configure problem to use dual simplex method
problem.use_bigM() # use to configure problem to use big M method
Apply the Solver to solve the Linear Problem. The iterations to produce the results will be printed on the command line.
from elpee import ElpeeSolver
solution = ElpeeSolver.solve(problem)
Sample Output will be as follows (using dual_simplex).
...Generating Initial Feasible Solution for
MIN x y S1 S2 S3 Sol
P -1.0 -1.0 0 0 0 0
S1 -1.0 1.0 1 0 0 2.0
S2 -6.0 -4.0 0 1 0 -24.0
S3 0 -1.0 0 0 1 -1.0
===========================================================================================
Taking S2 = 0; Entering x as a new basic variable;
...Generating Initial Feasible Solution for
MIN x y S1 S2 S3 Sol
P 0.0 -0.333 0.0 -0.167 0.0 4.0
S1 0.0 1.667 1.0 -0.167 0.0 6.0
x 1.0 0.667 -0.0 -0.167 -0.0 4.0
S3 0 -1.0 0 0 1 -1.0
===========================================================================================
Taking S3 = 0; Entering y as a new basic variable;
Feasible Solution # 1
MIN x y S1 S2 S3 Sol
P 0.0 0.0 0.0 -0.167 -0.333 4.333
S1 0.0 0.0 1.0 -0.167 1.667 4.333
x 1.0 0.0 0.0 -0.167 0.667 3.333
y -0.0 1.0 -0.0 -0.0 -1.0 1.0
===========================================================================================
Optimized Solution Received!
And obtain an interpretation to the solution
Minimum Value for Objective Function = 4.333
Values for Decision Variables :
x = 3.333
y = 1.0
Surplus & Slack variables
Constraint #1 Surplus = 4.333 units
Constraint #2 Surplus : Satisfied at Boundary
Constraint #3 Surplus : Satisfied at Boundary
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
elpee-0.2.1.tar.gz
(59.0 kB
view hashes)
Built Distribution
elpee-0.2.1-py3-none-any.whl
(30.7 kB
view hashes)