## 2 Distributed Fair Rate Allocation Algorithm
### Convergence to the Optimal Rate Allocation
In that situation and given the tree structure of the network, it is verified that  
\[\sum_{j\in\mathcal{A}_{m}^{k}}\hat{y}_{j}^{k}=\sum_{j\in\mathcal{A}_{m}^{k}}y_ {j}^{*} \tag{22}\]  
For example, in Figure 4 we immediately notice that \(\sum_{j\in\mathcal{A}_{m}^{k}}\hat{y}_{j}^{k}=c_{3}\) and \(\sum_{j\in\mathcal{A}_{1}^{k}}\hat{y}_{j}^{k}=c_{1}-c_{3}\). Therefore, we can conclude that i) some values of \(\hat{y}_{j}^{k}\) with \(j\in\mathcal{A}_{m}^{k}\) attain \(\hat{y}_{j}^{k}\geq y_{j}^{*}\) while the rest accomplish \(\hat{y}_{j}^{k}\leq y_{j}^{*}\) and ii) all the values \(\hat{y}_{j}^{k}\) with \(j\in\mathcal{A}_{m}^{k}\) either increase or decrease after the primal projection. This result is easily extrapolated to the dual values \(\hat{\lambda}_{j}^{k}\) obtained from the primal subproblems when \(\hat{y}_{j}^{k}\) are the inputs if we take into account Proposition 1. We write it down in the following proposition. **Proposition 2**: _The dual values \(\hat{\lambda}_{j}^{k}\) that result from the computation of the primal subproblems of the CDM at the k-th iteration accomplish: (i) some values of \(\hat{\lambda}_{j}^{k}\) with \(j\in\mathcal{A}_{m}^{k}\) attain \(\hat{\lambda}_{j}^{k}\geq\lambda_{j}^{*}\) while the rest accomplish \(\hat{\lambda}_{j}^{k}\leq\lambda_{j}^{*}\) and (ii) all the values \(\hat{\lambda}_{j}^{k}\) with \(j\in\mathcal{A}_{m}^{k}\) either increase or decrease with respect to \(\lambda_{j}^{k}\) (note that \(\lambda_{l}^{k}=\lambda_{n}^{k}\) if \(l,n\in\mathcal{A}_{m}^{k}\))._  
In the dual projection, we choose one value \(\hat{\lambda}_{j}^{k}\) from each subset \(\mathcal{A}_{m}^{k}\). In particular, the selected value has to accomplish (SR1)-(SR2), that is: (i) the corresponding \(\hat{y}_{j}^{k}\) verifies \(\hat{y}_{j}^{k}\in(m_{j},M_{j})\) and (ii) it is the closest value in the subset to \(\lambda_{j}^{k}\) for any \(j\in\mathcal{A}_{m}^{k}\). The following proposition guarantees the existence of the required value. **Proposition 3**: _Let \(\boldsymbol{y}^{k}\) be the result of the dual subproblems of the CDM at the k-th iteration. Then, the primal projection provides at least one node with \(\hat{y}_{j}^{k}\in(m_{j},M_{j})\) at each subset \(\mathcal{A}_{m}^{k}\)._  
Proof. : See the Appendix. Given that \(U_{j}(r_{j})\) is concave and strictly increasing, it is straightforward to see that \(y_{j}\) must equal \(r_{j}\) in Problem (3). Furthermore, some of the KKT optimality conditions of the problem reveal us that  
\[\frac{\partial U_{j}}{\partial r_{j}}-\lambda_{j}+\alpha_{j}- \beta_{j} = 0 \tag{23}\] \[\lambda_{j}-[\boldsymbol{A}^{T}]_{j}\boldsymbol{\mu} = 0\] (24) \[\alpha_{j}(m_{j}-r_{j}) = 0\] (25) \[\beta_{j}(M_{j}-r_{j}) = 0 \tag{26}\]  
where \(\alpha_{j}\) and \(\beta_{j}\) are the dual variables associated with the constraints \(r_{j}\geq m_{j}\) and \(r_{j}\leq M_{j}\), respectively. Therefore, if we fix \(y_{j}\) equal to \(\hat{y}_{j}^{k}\), with \(\hat{y}_{j}^{k}\in(m_{j},M_{j})\), then \(\alpha_{j}\) and \(\beta_{j}\) must be \(0\) due to the slackness constraints, _i.e_, Equations (25-26). Applying this observation and \(r_{j}=\hat{y}_{j}^{k}\) to Equation (23), we realize that \(\lambda_{j}\) is uniquely determined. Besides, taking also Equation (24) into account, we can conclude that a good election of \(\hat{y}_{j}^{k}\) provides us useful information about the linear combination \([\boldsymbol{A}^{T}]_{j}\boldsymbol{\mu}\). In the CDM, this argumentation justifies our interest in the values of \(\hat{y}_{j}^{k}\) that attain \(\hat{y}_{j}^{k}\in(m_{j},M_{j})\). Otherwise the values of \(\alpha_{j}\) and \(\beta_{j}\) are unknown and we can not use \(\hat{\lambda}_{j}^{k}\) to determine \(\boldsymbol{\mu}^{k+1}\). Finally, in the dual projection we construct the determined linear system \(\mathbf{\lambda}_{D}^{k}=\mathbf{B}_{D}^{k}\mathbf{\mu}_{D}^{k+1}\) with the selected values \(\hat{\lambda}_{j}^{k}\), thus computing the values in \(\mathbf{\mu}^{k+1}\) corresponding to the active constraints (the remaining ones are fixed to zero).