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:
- Python basics, basics of simulation, contour plotting for function visualization
- Unconstrained optimization – implementations – gradient methods, step size – exact/inexact search methods Implementation of Newton’s method Autograd vs explicit gradient computations
- Constrained optimization algorithms – linear programming – simplex method implementation Projected Gradient Descent implementation, Quadratic optimization implementation
- Verifying KKT conditions.
- 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)