GitHunt
HU

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

  1. Open the notebook under notebooks/.
  2. 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

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.