The best heuristics are really approximation algorithms. The most beautiful approximation algorithms are just "stupid" heuristics that work. For example, local search for clustering, greedy clustering (Gonzalez), one for the price of two, various greedy algorithms, etc, etc, etc.
So studying approximation algorithms is really about understanding what heuristics are guaranteed approximation algorithms. The hope is that research on approximation algorithms creates two kinds of cross-fertilization:
- Move ideas that work from heuristics into algorithms design tools. Similarly, move ideas from algorithm design into heuristics/algorithms that work well in practice.
- cross fertilization between a person that just graduated and a position.
In short, the world is not exact, inputs are not exact, target functions optimized by various algorithm problems are not exact and at best represent a fuzzy approximation to what one wants, and computations are not exact. Why would anybody learn exact algorithms? (Answer: Because exact algorithms are just really good approximation algorithms.)
In the real world, there are very few exact algorithms - you need to use approximation to be remotely relevant...