Utility Design for Distributed Resource Allocation—Part II: Applications to Submodular, Covering, and Supermodular Problems | IEEE Journals & Magazine | IEEE Xplore