# A Mathematical Model for Efficient and Fair Resource Assignment in Multipath Transport
## Appendix A Mathematical Annex
### Allocation-Specific Constraints  
#### a.2.1 Bottleneck Subflow Fair Allocation (BSF)  
**Constraints for identifying the allocation of multipath flows:** The objective function BSF-II (Equation (9)) uses the aggregated capacity allocation to all multipath flows \(M\) as defined in Equation (8). As already mentioned in the description for this equation, \(m^{st}\) specifies the capacity allocation to a multipath flow \([s,t]\) and is 0 for single-path flows. In contrast to this, the variable \(\varphi^{st}\) is the allocation to _any_ flow \([s,t]\in K\) irrespective whether the flow is a multipath flow or a single path flow. Equation (104) sets the value of \(m^{st}=0\) for the single path flow \([s,t]\in K\). Equation (105) and Equation (106) make sure that, for the multipath flow \([s,t]\in K\), \(m^{st}\) is the end-to-end capacity allocation for that flow i.e., \(m^{st}=\varphi^{st}\) when \(flow\_type^{st}=1\):  
\[m^{st}\leq\beta\cdot flow\_type^{st}\qquad\forall[s,t]\in K, \tag{107}\]  
\[m^{st}\leq\varphi^{st}\qquad\forall[s,t]\in K, \tag{108}\]  
\[m^{st}\geq\varphi^{st}-\beta\cdot(1-flow\_type^{st})\qquad\forall[s,t]\in K. \tag{109}\]  
**Multipath subflow allocation mapping constraints:** Let \(sf\_alloc^{st}_{ohij}\) be the subflow allocation of the subflow \([o,h]\in A\) on the link \((i,j)\in A\) for the flow \([s,t]\in K\). Equation (109) implies that the subflow \([o,h]\in A\) does not get any allocation on the link \((i,j)\in A\) if there is no subflow \([o,h]\in A\) exist on the link \((i,j)\in A\) for the flow \([s,t]\in K\) i.e., \(sf\_alloc^{st}_{ohij}=0\) when \(sf\_id^{st}_{ohij}=0\). Equation (109) ensures that the subflow \([o,h]\in A\) gets some allocation on the link \((i,j)\in A\) when there is a subflow \([o,h]\in A\) on the link \((i,j)\in A\) for the flow \([s,t]\in K\):  
\[sf\_alloc^{st}_{ohij}\leq\beta\cdot sf\_id^{st}_{ohij}\qquad\forall[o,h]\in A,(i,j)\in A,[s,t]\in K, \tag{110}\]  
\[\beta\cdot sf\_alloc^{st}_{ohij}\geq sf\_id^{st}_{ohij}\qquad\forall[o,h]\in A,(i,j)\in A,[s,t]\in K. \tag{111}\]  
Equation (110) and Equation (111) map the flow allocation with the sum of the subflow allocation for a flow on a specific link. For a multipath flow, on a specific link, the sum of the allocation of all subflows of a flow should be equal to the flow allocation for that flow on that link. This implies that \(f^{st}_{ij}=\sum_{(o,h)\in A}sf\_alloc^{st}_{ohij}\) when \(flow\_type^{st}=1\):  
\[f^{st}_{ij}\geq\sum_{(o,h)\in A}sf\_alloc^{st}_{ohij}\qquad\forall h\
eq s,(i, j)\in A,[s,t]\in K, \tag{112}\]  
\[cap_{ij}(1-flow\_type^{st})+\sum_{(o,h)\in A}sf\_alloc^{st}_{ohij}\geq f^{s}_{ ij}\qquad\forall h\
eq s,(i,j)\in A,[s,t]\in K. \tag{113}\]Once a subflow gets an allocation on a link, Equation (A39) makes sure that the allocation of that subflow is the same on all the other links on its path. From any link \(j\) when \(j\) is not a source or destination node, the allocation of the subflow \([o,h]\in A\) of the flow \([s,t]\in K\) is equal on the incoming node \((i,j)\in A\) and the outgoing node \((j,m)\in A\):  
\[\sum_{(i,j)\in A}sf\_alloc^{st}_{ohij}=\sum_{(j,m)\in A}sf\_alloc^{st}_{ohij} \qquad\forall j\in V,j\
eq s,j\
eq t,(o,h)\in A,(i,j)\in A,[s,t]\in K.\] (A39)  
**Bottleneck subflow fair allocation constraints**: Let \(sf\_link\_share_{ij}\) is the maximum share of the capacity that a subflow can get from the link \((i,j)\in A\). Equation (A40) and Equation (A41) ensure equal allocation to all the subflows that are bottlenecked on the link \((i,j)\in A\). The subflow \([o,h]\in A\) gets the maximum share of the capacity on the link \((i,j)\in A\) if the link is identified as bottleneck link (\(sf\_bneck^{st}_{ohij}=1\)) for that subflow.