Linear and non-linear programming - Luenberger, D.G (Springer, 2008)