We will analyze the behavior of the greedy algorithm described in Section 2.1 by means of a potential function argument. In particular, we will assign each packet in wave i weight for some fixed to be determined later, and we will define the potential of a switch on level k to be if k is odd, and if k is even, where w < 1 is also a constant to be determined later. Thus, the potential of a packet in the ith wave at the kth level is if k is odd, and if k is even, and the potential of the system is the sum of potentials of the packets. By varying the values of and w, we can obtain different bounds on the running time of the algorithm as follows.
The key fact necessary to prove Theorem 2.1 is that the potential of the system drops by a constant fraction during each stage. In particular, we will need to prove the following claim.
The main idea behind proving Claim 2.4 is that during any stage of the algorithm, a reasonable number of the heaviest packets move forward, thereby decreasing the potential of the system by a constant fraction. To formalize this intuition, we will need the following series of lemmas.
Proof: Consider any edge e. At some step of the phase, the algorithm looks at the head and tail of e, and rearranges packets (if any) so that the heavier weight packet is sent to the head of e. In subsequent steps, only a packet with greater weight can be moved into the head of e, and only packets with lesser weight can move into the tail of e. Hence at the end of the phase, the weight of the packet at the head of e is at least as great as the weight of the packet at the tail of e, if any. (Nonexistent packets can be considered to have zero weight.)
In what follows, let denote the sum of the weights of the r heaviest upward-destined packets left at the inputs of a splitter after a phase of routing through the splitter. If there are fewer than r upward-destined packets left at the inputs, then denotes the weight of all of them. A similar definition holds for and also for and , which denote the sum of the weights of the r heaviest packets in the upper and lower outputs, respectively.
Proof: For simplicity, we will only argue the result for upward destined packets. The proof for lower-destined packets is identical.
We will prove by induction on r that . For r=1, the result follows from Lemma 2.5 and the fact that every input is adjacent to upper outputs. Now assume the result is true for r=k-1, and look at the k heaviest upward-destined packets left at the inputs of the splitter. By the expansion property, we know that the inputs containing these packets are incident to at least upper outputs. By Lemma 2.5, each of these outputs contains a packet of weight at least (i.e., the weight of the kth heaviest upper-destined packet left at an input). Hence, there are or more upper outputs containing packets with weight at least , and by induction, the heaviest of these account for at least weight. Thus,
thereby verifying the inductive hypothesis.
Proof: For simplicity, we will only consider upward-destined packets. The same argument holds for lower-destined packets. Arrange the packets at the inputs in order of decreasing weight. Since , at most of these packets can belong to any wave. Hence the weight of the th heaviest packet is at most times the weight of the ith heaviest packet for all i. Since the weight of the heaviest packets is by definition, the total weight of all the upper-destined packets at the inputs is at most
as claimed.
Proof: By Lemma 2.6, the total weight of packets on the upper and lower outputs is at least . By Lemma 2.7, the total weight of packets left at the inputs is at most . Hence the total weight on the outputs is at least times the total weight on the inputs, and thus at least a fraction of the weight is on the outputs.
We are now ready to prove Claim 2.4 and Theorem 2.1.
Proof of Claim 2.4: Let denote the weight at the beginning of the stage in levels l and l+1, where l is even. If V is the potential of the system at the beginning of the stage, then
During the first phase of the stage, packets move from even levels to odd levels. This does not change the potential of the system since each even level has the same potential as the next odd level. However, it does ensure that the weight in odd level l+1 is at least and the weight in even level l is at most .
During the second phase, the weight in odd level l+1 is rearranged with the weight in even level l+2 for each l. By Corollary 2.9, and the argument of the previous paragraph, we know that at least weight moves from level l+1 to level l+2 for any l. Hence, the potential at the end of the stage is at most
as claimed.
Proof of Theorem 2.1: To compute an upper bound on the running time of the algorithm, we now need only to compute the initial potential of the system and the potential at which we will be guaranteed that every packet has reached its destination at level .
To compute the initial potential, we will assume without loss of generality that the first L waves start in level 0, the next L waves start in level -1, and so forth. The total weight in the first L waves is at most
Similarly the weight of the ith group ( of L waves is at most
Hence the total initial potential is at most
The potential of a packet from the last wave on level is at most . Hence, all of the packets must have reached level (their destinations) once the total potential falls below this amount. Since the total potential drops by a factor of at every stage, the total number of stages can be at most S, where
Hence, it suffices to choose
Since each stage takes 4d steps, we can multiply by 4d to obtain the bounded stated in the theorem.
In order to show that , we need to show that there exist constants d, , , w < 1, and such that and . The key, of course, is showing that (i.e., that the potential of the system drops during every stage). If , then we can always find a value of w < 1 for which . (In particular, we can choose , for then .) In order for to be greater than , it suffices that . This can be accomplished for any by setting to be sufficiently small. Making small also guarantees that . Hence, we only need to choose d, , and so that , which can be done for any by choosing to be sufficiently small.
For example, we could choose d=11, , , L = 16, , , , and , to show that permutations can be routed in at most steps using the algorithm.