The goal in designing an approximation algorithm for a problem is to find tight
worst-case bounds. The study of approximation algorithms gives more knowledge
on the difficulty of the problem and can help designing efficient heuristics. However,
approximation algorithms are specific to the target optimization problem (problem
dependent). This characteristic limits their applicability. Moreover, in practice,
attainable approximations are too far from the global optimal solution, making those
algorithms not very useful for many real-life applications.