Prerequisites: Should be concurrent or after at least one optimization course. Ideally concurrent or after the second optimization course.
Contents:
- Programming in AMPL/Julia/Python to computationally model optimization problems.
- Identification of metrics of performance, and certificates of infeasibility/optimality through the solver logs using various solvers (such as CPLEX, GUROBI, PuLP, MINOTAUR, Mosek, etc).
- Comparison of different formulations and contrasting their computational performance viz à viz facility location, Traveling Salesman Problem, Scheduling etc. Identifying why certain formulations are better computationally.
- Implementation of fundamental branching rules, cutting planes in branch and cut procedures for discrete optimization algorithms.
- Introduction to Polymake/PORTA to get some hands-on perspective on polyhedral geometry.
- Use of Meta-heuristics for solving optimisation models
- Goal programming, Pareto optimality, Multi-objective optimisation
References:
- Bynum, Hackebeil, Hart, et al, Pyomo - Optimization Modeling in Python, 2021
- Fourer, Gay and Kernighan, AMPL: A Modeling Language for Mathematical Programming, second edition,
- Julia Programming for Operations Research 2/e, Changhyun Kwon, https://juliabook.chkwon.net/book
Remarks:
The primary evaluation methodology is going to be projects, students will be learning these tools while also implementing the same as part of their projects as well.