Convex Optimization Algorithms by Dimitri P Bertsekas