Python - Linear Programming Simplex Algorithm
Description
Python implementation of a "Simplex" for Linear Programming problems. Algorithm is acquired from pages (869, , ) in "Algorithms Third Edition by Thomas H Cormen" book.
Changes to Algorithm
The Pivot algorithm (pg 869) seemed to have an error on line 8. Essentially, it was saying to loop through "all columns that are a Basic Variable", but then on the next line, using this values as a "row_index". This was causing of "index out of range" errors.
So instead, I changed that to properly loop through all rows in the matrix.
Python Environment
This project is tested using Python3.7. Written using PyCharm. Tested with Pycharm 2017.2.3 and 2019.2 versions.
Creating a New Env
Most installations of Python3 will allow you to simply run python3.7 -m venv ./.venv
to create a new Python3.7
environment called ".venv" at the current directory folder.
Once created, load this environment with source .venv/bin/activate
on Linux or . .venv/Scripts/activate
on Windows.
Third Party Libraries
- If any additional libraries have been used, then they will be found in
requrements.txt
at the project root. - To install, load your local Python Environment and run
pip install -r requirements.txt
when at the project root.
Running the Program
Run the program via python ./main.py
while at the python
directory.
Expected Output
None so far.
Running Tests
To run all unittests for this project, open a terminal and run the run_unit_tests.sh
bash script.
For more information about testing, see the documents/testing.md
file.
References
See the documents/c_references.md
and documents/python_references
files.