Skip to content
Snippets Groups Projects
brodriguez8774's avatar
Brandon Rodriguez authored
75c0e2c5

Python - Network Flow

Description

Python implementation of a "Network Flow" algorithm.

Implements both "Ford-Fulkerson" and "Simplex" versions.

This program uses both the "Simplex" and "Graph Library" assignments from earlier in the semester, included as git submodules.

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

Will prompt the user to run the program as either "Ford Fulkerson" or "Simplex".

Both will output the initial graph, as well as the final output. Ford Fulkerson will also output each iteration of steps, where the final iteration is the end product.

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.