Solving linear programming problems step-by-step
Project description
Elpee
Solving linear programming problems one step at a time.
Elpee (short for L inear P rogramming) is a Python library for students and academics to viusalize the steps and iterations required to solve constrained linear optimization problems using linear programming methods.
Demo
View how linear programming problems can be solved using the elpee-calc.streamlit.app powered by the elpee library.
Documentation
Follow the documentation to get the best use of elpee.
Install
To use elpee Python library, install it using pip:
(.venv) $ pip install elpee
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file elpee-0.4.5.tar.gz
.
File metadata
- Download URL: elpee-0.4.5.tar.gz
- Upload date:
- Size: 27.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.0 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b3ae9160e7e36264bdbf77d1bebec20b8c93ecb0b44e637139e2a3956ed2d48 |
|
MD5 | 6137972b022bda658e1a3b0d96afc7f2 |
|
BLAKE2b-256 | a99219fa19906fdacb4117b6237b5f0260128a8c81a82970072e873a376f6520 |
File details
Details for the file elpee-0.4.5-py3-none-any.whl
.
File metadata
- Download URL: elpee-0.4.5-py3-none-any.whl
- Upload date:
- Size: 36.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.0 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8798100f3e003faf9e779e473cc9e77761cb18b2edee94947cb4367333c45c4a |
|
MD5 | f5d48c2c8c37691915e17441dfc87da3 |
|
BLAKE2b-256 | 92b13eab7b1a9e9ff93669efb40d3fc1b38312464c74cce7fb08400a10b835d1 |