  In this paper we study the data exchange problem where a set of users is
interested in gaining access to a common file, but where each has only partial
knowledge about it as side-information. Assuming that the file is broken into
packets, the side-information considered is in the form of linear combinations
of the file packets. Given that the collective information of all the users is
sufficient to allow recovery of the entire file, the goal is for each user to
gain access to the file while minimizing some communication cost. We assume
that users can communicate over a noiseless broadcast channel, and that the
communication cost is a sum of each user's cost function over the number of
bits it transmits. For instance, the communication cost could simply be the
total number of bits that needs to be transmitted. In the most general case
studied in this paper, each user can have any arbitrary convex cost function.
We provide deterministic, polynomial-time algorithms (in the number of users
and packets) which find an optimal communication scheme that minimizes the
communication cost. To further lower the complexity, we also propose a simple
randomized algorithm inspired by our deterministic algorithm which is based on
a random linear network coding scheme.
