Operations Research

1st year
Programme main editor:
Onsite in:
ECTS range:
4-7 ECTS


Cristina Cervelló-Pastor
Rosa Figueiredo


Basic knowledge of data structures and algorithms. Basic python and/or C programming.

Pedagogical objectives:

The course is an introduction to operations research tools for network applications. Emphasis will be on model formulations, linear and integer linear programming with the main objective of solving practical applications. The course will also provide an integrated view of algorithms and applications of key network optimization problems.

The course is aimed at providing the participants with knowledge in applied optimization, with a focus on applying theory and methods in key network optimization problems.

Evaluation modalities:

Mid-term and/or final exam and continuous monitoring.


The course’s core content comprises several topics studied through laboratory sessions.


  • Introduction to mathematical optimization
    • Problem definition, unconstrained optimization, constrained optimization
  • Methodological tools.
    • Modeling combinatorial optimization problems
    • Linear programming, Integer and mixed-integer linear programming.
  • Optimization with engineering Applications, as for example Routing and traffic management, Network design, Network connectivity and reliability, Energy consumption consideration in network optimization.

complementary content:

  • Non-linear optimization, linearization of non-linear problems.
  • Metaheuristics Optimization Algorithms
    • Analysis of different algorithms depending on the progress of the course
    • Heuristic resolution of the presented problems.
  • Multi-objective optimization
  • Use cases extracted from research papers.
  • analyzing and implementing some use cases applying the concepts seen in the first part. The student will have to program the optimization models using PYOMO, Python or Julia.

Required teaching material

[books] • T. Roughgarden, Algorithms Illuminated book series, 2018. • S. Dasgupta, C. Papadimitriou, and U. Vazirani. Algorithms. McGraw-Hill, 2006. • Linear Programming Vasek Chvatal, 1983. • Network flows Ravindra K. Ahuja, Thomas L. Magnanti, and James B. Orlin, 1988. • Integer Programming Laurence Wolsey, 1998. • A.D. Belegundu, T.R. Chandrupatla, "Optimization Concepts and Applications in Engineering," Second Edition. Cambridge University Press, 2nd Edition, 2011. • B. Guenin, J. Knemann, L. Tunel, “A gentle Introduction to Optimization,” Cambridge University Press, 2014. • G. Sierksma, Y. Zwols, “Linear and Integer Optimization,” CRC Press, 2013. • E. Oki, "Linear Programming and Algorithms for Communication Networks," CRC Press, 2013. • D. Simon "Evolutionary Optimization Algorithms. Biologically Inspired and Population-Based Approaches to Computer Intelligence," John Wiley & Sons, Inc., 4th Edition, 2013. • Edwin K. P. Chong, Wu-Sheng Lu, and Stanislaw H. Żak. “An Introduction to Optimization, Fifth Edition With Applications to Machine Learning,” John Wiley & Sons, Inc. New York, 2023. • D. P. Bertsekas, “Network Optimization. Continuous and discrete models,” Athena Scientific, 1998. • Pyomo Documentation Release 6.4.2, Aug. 2022. Devices: [computing/cloud resources] Except for the introduction topic, the rest of the course will be taught through laboratory sessions using open-source tools on a Linux computer. The labs will be divided into laboratory learning sessions and project lab sessions. [devices] Computers with Linux, PYOMO and/or Julia and/or Python 3.x, Jupyter-notebook, Sqlite DB. All the software will be open-source.

Teaching volume:
6-28 hours
0-8 hours
Supervised lab:
8-16 hours
4-18 hours


  • Laboratory-Based Course Structure
  • Open-Source Software Requirements