This is our final project for (Fall 2023) CS 4450 – Introduction to Computer Networks at Cornell University. The objectives for this project was to develop and analyze algorithms for software-defined network traffic engineering using linear programming. One algorithm was made to maximize a network's total throughput and another to minimize the maximum link utilization. For this project we used the topology and demands as described the B4 and Sprint folders at this repository.
- Richard Kim (rk625) @richardshkimm
- Grace Ge (gg398) @gracege678
- Willy Jiang (wjj26) @wjjiang1
- Rebecca Hasser (reh289) @rhasser
- Maelat Mekonen (mmm432) @mmmekonen
Clone the project
git clone https://github.com/richardshkimm/te-project-dao.gitGo to the project directory
cd te-project-daoRunning the code snippet below will output the results of the Gurobipy optimization in the terminal and produce an image for the flow allocation graph
python3 main.py(Inputs topology (Sprint or B4), algorithm (maximize throughput or minimize mlu), and mlu_weight can all be adjusted in our main() function)
To see the solving times for smaller vs larger topologies run the Jupyter Notebook: extra_credit.ipynb