Skip to main content

IE2xx : Optimization Modeling LAB

Prerequisites:  Should be concurrent or after at least one optimization course. Ideally concurrent or after the second optimization course.


  • 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


  • 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,


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.