huguryildiz/ee512-optimization-for-communication-networks
Hands-on LP/MIP network optimization models for communication networks (TEDU EE 512).
EE 512 β Network Optimization for Communication Networks
This repository contains hands-on Python (PuLP) implementations of core optimization models used in communication networks, prepared for the graduate-level course EE 512 β Optimization for Communication Networks at TED University.
The material bridges mathematical formulations and solver-based implementations, with clear visualizations to support both learning and teaching.
π Course Context
- Course: EE 512 β Optimization for Communication Networks
- Level: Graduate (MSc / PhD)
- Department: Electrical and Electronics Engineering
- Institution: TED University
- Course link: https://www.tedu.edu.tr/ee-512
π Contents
1) Fundamental Network Optimization Models (LP / MIP)
Implemented using Linear Programming (LP) and Mixed-Integer Programming (MIP):
- Simple LP and MIP Examples
- Shortest Path (Min-Cost Flow formulation)
- Minimum Spanning Tree (MILP β MTZ / rooted arborescence style)
- Maximum Flow
- Minimum sβt Cut
2) Wireless Network Optimization Models (Energy / Lifetime / Throughput / Delay)
Energy-aware and performance-aware routing models on multi-ring wireless topologies:
- Minimum Total Energy Routing
- MinβMax (Bottleneck) Energy Routing
- Maximum Network Lifetime Optimization
- Maximum Throughput (Common-Rate) Routing
- Minimum Hop-Count (Min-Delay) Routing
Each model includes:
- Mathematical formulation (commented at the top of the code)
- PuLP implementation
- Solver output inspection
- Network visualizations and per-node energy plots
π Tools & Libraries
- Python 3
- PuLP (LP/MIP modeling)
- NetworkX (graph construction)
- Matplotlib (visualization)
All models run with the default CBC solver bundled with PuLP (if available in your environment).
βΆοΈ How to Run
Option A β Jupyter / Colab
- Open the notebook under
notebooks/. - Run cells from top to bottom.
Option B β Local Environment
pip install pulp networkx matplotlib
π― Learning Objectives
By studying these notebooks, students will be able to:
- Translate communication-network problems into LP/MIP models.
- Use flow-based modeling for routing, energy, and lifetime.
- Compare objectives: energy vs bottleneck vs throughput vs delay.
- Interpret solver outputs and constraint behavior.
- Visualize routing decisions and resource usage.
π Notes for Students
- The code is intentionally readable (teaching-first), not hyper-optimized.
- Variable names and constraints closely follow slide notation.
- Try modifying:
- energy budgets
E_0, - bandwidth limits
B_ij, - topology parameters (radii, rotations, Rmax),
- objective functions
- energy budgets
to observe trade-offs.
π€ Author
HΓΌseyin UΔur YΔ±ldΔ±z,
Associate Professor, Electrical and Electronics Engineering,
TED University
π License
This repository is intended for educational and academic use.
You may reuse and adapt the material for teaching or research with attribution.