# A Mathematical Model for Efficient and Fair Resource Assignment in Multipath Transport
## 3 Mathematical Model
### Extension of the Objective Function for Fairness
#### 3.2.3 Network Flow Fair Allocation (NFF)
This implies the value of the objective function NFF-objective-IV is \((10+90)-0+0=100\), which is higher than the previous allocation. The optimum allocation is then \(10\,Mbps\) to the flow \([a,f]\) and \(90\,Mbps\) to the flow \([m,n]\) by the objective function NFF-objective-IV, which is not an ideal network flow fair solution for this scenario. Figure 11: Example scenario for NFF with optimum allocation. Black arrows/numbers: links with capacities, colored arrows/numbers: flows with capacity assignments. All values in Mbps. Figure 12: Scenario as in Figure 11, but NFF-objective-IV prevents flow \([a,f]\) from using multipath and assigning link \([b,c]\) to flow \([m,n]\) resulting in poor fairness. All versions of objective functions discussed until now may still insufficiently utilize multipath for some scenarios: multipath may be deployed although it degrades fairness or it may not be deployed despite the requirement of efficient network usage. Therefore, the goal is to identify an objective function which does not affect fairness while maintaining multipath so that it can achieve optimum results for any scenario. In order to specify such objective function, a counter \(SF\) for the total number of subflows assigned to all flows is introduced:  
\[SF=\sum_{[s,t]\in K}n\_sf^{st}. \tag{23}\]  
The objective function for the optimum network flow fair solution is formulated in Equation (24) where \(\beta\) is the constant multiplication factor which is used to ensure multipath. The value of \(\beta\) must be larger than the total network capacity to eliminate the effect of network utilization (\(Alloc\)) and fairness (\(\delta\)) on multipath uses. Moreover, \(SF\) has a negligible adverse effect on fairness because \(SF\) only specifies the _number_ of subflows and does not have any effect on the amount of subflow allocation, which means fairness can be adjusted by providing a very small allocation (as small as 0.01 unit) to unnecessary subflows. On the other hand, by using all the possible paths for multipath flows, total network capacity utilization is ensured by the congested link identifier constraints described earlier in this section:  
\[\text{NFF-objective-V:}\] Figure 8:0  
However, NFF-objective-V still might not yield an optimum result if a subflow is assigned a path with a link not used by other flows and that link contributes a smaller capacity to the subflow than a bottlenecked, but a faster link on a different path. The solver would select the unused link to keep \(\delta_{\text{congested}}\) low while, on the other hand, the \(Alloc\) gain would suffer. This suggests that achieving a network flow fair solution which works for any type of scenario is improbable with a single objective function. In order to cope with the conflict of considering both network allocation and fairness in the objective function in any kind of scenario, the optimization needs to be performed in two steps. In both of them, network utilization as well as fairness are optimized; however, the first step puts the priority on fair capacity assignment, whereas, in the second step, a high network utilization is preferred. Equations (25) and (26) show the final objective function pair NFF-objective-VI of the two step process, which yields the optimum network flow fair solution. In the first step, a minimum allocation is set for each flow however still utilizing the network capacity as much as possible. The flow allocation of step-1 is used as the minimum allocation constraint for the step-2 to ensure fairness in step-2. \(min\_alloc^{st}\) is the allocation of the flow \([s,t]\in K\) in step-1. Equation (27) makes sure that each flow gets the minimum fair share from the network in step-2. If any network capacity has not been allocated, which might affect fair allocation, step-2 makes sure to utilize the spare capacity by allocating fairly among the competing flows. In Equation (26), \(|K|\) is the total number of flows inside the network.