Lecture 3: Lagrangian duality and algorithms for