Introduction to Optimization by Pablo Pedregal