A New Approach to Distributed Task Assignment using Lagrangian Decomposition and Distributed Constraint Satisfaction