I Need to send a number of packets from A to B. A and B are connected by different paths of different lengths (all disjoint). Paths have different capacities too (like I can't overfill them).
I have a number of paths to choose from. I can send packets concurrently.
Which strategy should I follow to get the fastest completion time (of all packets sent)?
Shortest path First? Round Robin?
Is there a way to quantitatively order them based on capacity and length?
If my understanding is correct, this is like minimizing the total completion time of $n$ tasks (packets) on $m$ machines (paths)…You can solve this with integer programming.
Create the following variables:
$z\ge 0$: completion time
$t_{ip}\ge 0$: time at which item $i$ (fills $c_i$ capacities) takes path $p$ (of length $l_p$ and capacity $C_p$)
So you want to minimize the overall completion time: $$ Minimize\quad z$$ subject to: