Skip to content
Snippets Groups Projects

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.