Approximation and optimization : Algorithms, complexity and applications.