## 2 Distributed Fair Rate Allocation Algorithm
### Review of Primal and Dual Decompositions  
Let us consider the following equivalent version of Problem (1), which contains the additional variables \(\mathbf{y}=[y_{1},\ldots,y_{N}]^{T}\) with \(\mathbf{y}\in\mathbb{R}^{N}\),  
\[ \begin{array}{rl}\min_{\{r_{j}\}}&-\sum_{j=1}^{N}U_{j}(r_{j})\\ s.t.&m_{j}\leq r_{j}\leq M_{j},&j=1,\ldots,N\\ &r_{j}\leq y_{j},&j=1,\ldots,N\\ &\mathbf{Ay}\preceq\mathbf{c}\end{array}  \tag{3}\]Under this transformation, it is clear that given \(\mathbf{y}\), Problem (3) can be separated into \(N\) independent problems, which are referred to as the primal subproblems in the specialized literature. In our particular case, these primal subproblems are  
\[p_{j}(y_{j})=\left\{ \begin{array}{ll}\min_{r_{j}}&-U_{j}(r_{j})\\ s.t.&m_{j}\leq r_{j}\leq M_{j}\\ &r_{j}\leq y_{j}\end{array} \right. \tag{4}\]  
Notwithstanding, we still need to find the optimal values in \(\mathbf{y}\), that is, \(\mathbf{y}^{*}\). Fortunately, it is known that the primal subproblems define a convex function on the variables \(y_{j}\) and that the Lagrange dual variable \(\lambda_{j}\) associated with the constraint \(r_{j}\leq y_{j}\) is a subgradient [29] of \(p_{j}\) at the point \(y_{j}\)[17] (Section 5.4.4). On the other hand, the primal master problem is defined as  
\[ \begin{array}{ll}\min_{\{y_{j}\}}&\sum_{j=1}^{N}p_{j}(y_{j})\\ s.t.&\mathbf{A}\mathbf{y}\preceq\mathbf{c}\end{array}  \tag{5}\]  
and the goal here is to find the optimal values of \(\mathbf{y}\). Given that the subgradients of the subproblems are readily found once they are solved, the primal master problem can be computed using a projected gradient approach [17] (Section 2.3). In other words, \(\mathbf{s}_{p}=-[\lambda_{1}(y_{1}),\ldots,\lambda_{N}(y_{N})]^{T}=-\mathbf{\lambda}( \mathbf{y})\) is a subgradient of \(\sum_{j=1}^{N}p_{j}(y_{j})\) at \(\mathbf{y}\), where \(\lambda_{j}(y_{j})\) is the value of the inner Lagrange multiplier of \(p_{j}\) given the value of \(y_{j}\), and the following recursion converges to \(\mathbf{y}^{*}\),  
\[\mathbf{y}^{k+1}=[\mathbf{y}^{k}-\alpha_{p}^{k}\mathbf{s}_{p}^{k}]^{\dagger}=[\mathbf{y}^{k}+ \alpha_{p}^{k}\mathbf{\lambda}^{k}(\mathbf{y}^{k})]^{\dagger} \tag{6}\]  
where \(k\) indexes iterations, \(\alpha_{p}^{k}\) is the user-defined step-size in primal decomposition and \([\cdot]^{\dagger}\) is the projection to the set \(\{\mathbf{y}\in\mathbb{R}^{N}\mid\mathbf{A}\mathbf{y}\preceq\mathbf{c}\}\). Dual decomposition is the dual-domain version of primal decomposition and, in this occasion, we focus on the dual problem [18] (Section 5.2). In particular, we relax only the coupling constraint \(\mathbf{A}\mathbf{y}\preceq\mathbf{c}\) in Problem (3) thus defining the following dual master problem,  
\[ \begin{array}{ll}\max_{\mathbf{\mu}}&\sum_{j=1}^{N}d_{j}(\mathbf{\mu})-\mathbf{\mu}^{T} \mathbf{c}\\ s.t.&\mathbf{\mu}\succeq\mathbf{0}\end{array}  \tag{7}\]  
where \(d_{j}(\mathbf{\mu})\) are the dual subproblems, defined as  
\[d_{j}(\mathbf{\mu})=\left\{ \begin{array}{ll}\min_{r_{j},y_{j}^{k}}&-U_{j}(r_{j} )+[\mathbf{A}^{T}]_{j}\,\mathbf{\mu}\,y_{j}\\ s.t.&m_{j}\leq r_{j}\leq M_{j}\\ &r_{j}\leq y_{j}\end{array} \right. \tag{8}\]  
where \([\mathbf{A}^{T}]_{j}\) stands for the j-th row of \(\mathbf{A}^{T}\). As in primal decomposition, a subgradient of a dual subproblem is found at no cost once \(d_{j}(\mathbf{\mu})\) is computed [17] (Section 6.1) and under some non-restrictive conditions, that subgradient is in fact the gradient (see [17] (Section 6.1.1)). In our case, a subgradient is obtained as [30]\(\mathbf{A}\,\mathbf{\delta}_{j}\,y_{j}^{*}(\mathbf{\mu})\), where \(y_{j}^{*}(\mathbf{\mu})\) is the optimal value of \(y_{j}\) given \(\mathbf{\mu}\). Therefore, a subgradient of the dual master problem at \(\mathbf{\mu}\) is \(\mathbf{s}_{d}=\mathbf{A}\mathbf{y}^{*}(\mathbf{\mu})-\mathbf{c}\).