Course: Optimization and Operational Research
Instructor: Jordi Villà-Freixa
In this course we deal with Operations Research (OR), a scientific discipline at the interface of Applied Mathematics, Computer Science and Engineering, defined as the use of quantitative methods to assist analysts and decision-makers in designing, analyzing, and improving the performance or operation of systems. OR can be used in financial systems, scientific or engineering systems, or industrial systems. Its aim is to rationalize, simulate, optimize, model and plan the architecture and operation of complex systems that are increasingly present in industry and large organizations. We will focus on the optimization problem, and we will be using a fully practical approach, using Python/iPython, Colab and libraries like google OR, among others, as our main tools during the course to demonstrate and test what we learn from the theoretical sessions.
Linear algebra, matrix analysis, basic numerical analysis, differential, and integral calculus. Basic knowledge of programming Python.
-
Introduction to Operations Research.
- Introduction to systems modelling; optimality and practicality
- Introduction to the Python/colab environment; GitHub
-
Non-linear optimization.
- Concepts and algorithms in non-linear optimization
- Unconstrained optimization
- Constrained optimization (Lagrange multiplier theorem, Kuhn-Tucker multiplier theorem)
-
The linear programming model
- Fundamental principles of linear programming
- Geometric resolution
- Basic mathematics tools
-
The Simplex method
- Standard form,
- Deviation variables
- Basic feasible solutions
- Artificial variables
-
Duality
- Primal and dual problems, economic interpretation, conditions of optimality, resolution of the dual by the primal and penalty method
-
Sensitivity Analysis
- Sensitivity analysis: the effect of modifying the objective function or the constraints
-
Network analysis
- Graphs and Networks
- Maximum flow / minimal cost
- Network connectivity
- Shortest path problems
- Dynamic programming
- Project management
-
Integer programming
- Branch and bound
- Cutting planes
- Cover inequalities
- Lagrangian relaxation
- Column generation
The repository contains code developed on purpose for the course, as well as a bunch of other code adapted from nice job made by other developers (stated and referenced accordingly when needed).
- “Operations research. A practical Introduction (2nd Ed)” by Michael W. Carter, Camile C. Price and Ghaith Rabadi. CRC Press
Material created on purpose for the course, unless stated. Check the syllabus.
Jordi Villà-Freixa, 2021-2023