  Distributed resource allocation is a central task in network systems such as
smart grids, water distribution networks, and urban transportation systems.
When solving such problems in practice it is often important to have
nonasymptotic feasibility guarantees for the iterates, since overallocation of
resources easily causes systems to break down. In this paper, we develop a
distributed resource reallocation algorithm where every iteration produces a
feasible allocation. The algorithm is fully distributed in the sense that nodes
communicate only with neighbors over a given communication network. We prove
that under mild conditions the algorithm converges to a point arbitrarily close
to the optimal resource allocation. Numerical experiments demonstrate the
competitive practical performance of the algorithm.
