Approximate budget balanced mechanisms with low communication costs for the multicast cost-sharing problem

We investigate the relation between budget balance and communication for the multicast cost-sharing problem in the context of distributed algorithmic mechanism design. We use the formal model introduced by Feigenbaum, Papadimitriou, and Shenker [3]: Our network is a rooted undirected tree T = (V,E) with n nodes. The root r of T models the service provider. The set P of leaves of T represents the users, who wish to receive the transmission of the provider. Let p = |P |. Each e ∈ E has a weight ce. This weight represents the costs of using e for the transmission. If a transmission is sent to a subset R ⊆ P of the users, then it is sent along the edges of the smallest subtree of T containing r and all nodes of R. We call this subtree T (R). The costs c(T (R)) of this subtree is the sum of the weight of its edges. Each i ∈ P has a utility ui which he derives from getting the transmission. The ui are private information. A cost-sharing mechanism determines which of the users receive the multicast transmission and which price they have to pay. The set of each user’s strategies is to report any value bi ≥ 0 as their utility. Based on the input vector b = (b1, . . . , bp), the mechanism decides which users receive the transmission and assigns prices to the users. The value xi(b) denotes the price user i has to pay. σi(b) equals one if i gets the transmission and is zero otherwise. The receiver set R(b) is the set of all users receiving the transmission. The individual welfare wi(b) of user i is defined by wi(b) = σi(b)ui−xi(b). The aim of each user is to maximize his individual welfare. Like Feigenbaum, Papadimitriou, and Shenker [3], we assume that messages arrive reliably, in order, and without significant delay. Each message here consists of a number that is algebraic in the bi and the ce. We mainly care about “hotspot communication costs”, that is, the maximum number of messages per edge should be small, say O(1) or O(polylog(n)).