This course is about designing approximation algorithms for difficult
optimization problems for which no optimal algorithms with running
time polynomial in the problem size are known. Approximation
algorithms find feasible solutions that may not be optimal but are not
too far from the optimal one.
We overview various interesting
algorithm design techniques that may prove extremely useful to
graduate students tackling research questions in various fields and to
undergraduates who may encounter interesting problems in their future
projects in the industry.