DA1003

Course title: Optimization Lab

Lab hours: 3 hours

Typical Slot: P

Description: 

The goal of the course is to equip students to visualize functions and implement in Python the algorithms learnt as part of the optimization for engineers course.

Course content:

  1. Python basics, basics of simulation, contour plotting for function visualization
  2. Unconstrained optimization – implementations – gradient methods, step size – exact/inexact search methods Implementation of Newton’s method Autograd vs explicit gradient computations
  3. Constrained optimization algorithms – linear programming – simplex method implementation Projected Gradient Descent implementation, Quadratic optimization implementation
  4. Verifying KKT conditions.
  5. Applications to curve fitting, root finding and other data science applications such as linear regression.

Prerequisite: DA1000, DA1001

Books:

  • Nocedal, Jorge and Wright, Stephen. Numerical optimization. Springer, 1999
  • Luenberger, David G., and Yinyu Ye. Linear and nonlinear programming. 4th edition. Springer, 2015.
  • Boyd, Stephen, and Lieven Vandenberghe. Convex optimization. Cambridge university press, 2004.

Previous Instance of the course:

  • 2025 (Jan-May; Dr. Gitakrishnan Ramadurai)