A Lagrangian-based Heuristic for Large-scale Set Covering Problems