Network Design 2015-2016
Network Design (Progetto di Reti) is a 12 CFU integrated course made of two modules: Network Flows (formerly Progetto e Ottimizzazione di Reti) and Network Optimization (formerly Ottimizzazione Combinatoria 2)
- Tuesday 14.00-16.00 Room A.1.2 (Alan Turing Building)
- Thursday 11.00-13.00 Room A.1.3 (Alan Turing Building)
- Tuesday 11.00-13.00 Room A.1.3 (Alan Turing Building)
- Wednesday 9.00-13.00 Room A.1.3 (Alan Turing Building)
Wednesday 11:00 - 13:00From February, 23th
Module Network Flows
- Network Flows Problem: introduction and definitions
- Maximum Flows and the path packing problem. Flows and cuts: Max-Flow/Min-Cut theorem. Augmenting path algorithms: Ford and Fulkerson algorithm, Edmonds and Karp algorithm. Generic Preflow-Push algorithm. Flows with lower bounds.
- Maximum Flows: additional topics and applications. Flows in Unit Capacity Networks. Flows in Bipartite Networks. Network Connectivity.
- Minimum Cuts. Global Minimum Cuts. Node Identification Algorithm. Random Contraction. Applications.
- Minimum-Cost Flow Problems. Definition and applications. Optimality Conditions. The Ford-Bellman algorithm for the shortest path problem. Primal algorithms: Augmenting Circuit Algorithm for the Min Cost Flow Problem.
- Network Simplex Algorithms. Applications of Min Cost Flows.
Module Network Optimization
- Formulations of Integer and Binary Programs: The Assignment Problem; The Stable Set Problem; Set Covering, Packing and Partitioning; Minimum Spanning Tree; Traveling Salesperson Problem (TSP); Formulations of logical conditions.
- Mixed Integer Formulations: Modeling Fixed Costs; Uncapacitated Facility Location; Uncapacitated Lot Sizing; Discrete Alternatives; Disjunctive Formulations.
- Optimality, Relaxation and Bounds. Geometry of R^n: Linear and affine spaces; Polyhedra: dimension, representations, valid inequalities, faces, vertices and facets; Alternative (extended) formulations; Good and Ideal formulations.
- LP based branch-and-bound algorithm: Preprocessing, Branching strategies, Node and variable selection strategies, Primal heuristics.
- Cutting Planes algorithms. Valid inequalities. Automatic Reformulation: Gomory's Fractional Cutting Plane Algorithm. Strong valid inequalities: Cover inequalities, lifted cover inequalities; Clique inequalities; Subtour inequalities. Branch-and-cut algorithm.
- Software tools for Mixed Integer Programming.
- Lagrangian Duality: Lagrangian relaxation; Lagrangian heuristics.
- Network Problems: formulations and algorithms. Constrained Spanning Tree Problems; Constrained Shortest Path Problem; Multicommodity Flows; Symmetric and Asymmetric Traveling Salesman Problem; Vehicle Routing Problem; Steiner Tree Problem; Network Design.
- Heuristics for network problems: local search, tabu search, simulated annealing, MIP based heuristics.
- L.A. Wolsey, Integer Programming, Wiley, 1998.
- Cook, Cunningham, Pulleyblank, Schrijver , Combinatorial Optimization, Wiley,1998.
- Ahuja, Magnanti, Orlin, Network Flows, Prentice Hall, 1993.
Slides and Notebooks
- Network Flows, Part 1
- Network Flows, Part 1, pdf format
- Network Flows, Part 2
- Network Flows, Part 2, pdf format
Setting up the working environment
After a fresh install of Xubuntu 14.04.4, you can setup the working environment by installing the following packages:
sudo apt-get install python-pip
sudo -H pip install pip -U
Python development libraries
sudo apt-get install python-dev
sudo -H pip install jupyter
sudo -H pip install networkx
sudo apt-get install glpk-utils
sudo -H pip install pulp
sudo apt-get install python-pygraphviz
sudo pip install tabulate