Proving that there is a schedule of length using constant-size queues is more difficult. Removing the factor in the length of the schedule seems to require delving into second-order terms in the probability calculations, and reducing the queue size to a constant mandates greater care in spreading delays out over the schedule.
Proof: To make the proof more modular, we bound the frame size and relative congestion after each step of the construction in lemmas. These lemmas and their proofs are included within the proof of the theorem. We assume without loss of generality that c=d, so that the bound on the length of the schedule is .
As before, the strategy is to make a succession of refinements to the greedy schedule, . The first refinement is special. It transforms into a schedule in which the relative congestion in each frame of size or more is at most 1. Thereafter, each refinement transforms a schedule with relative congestion at most in any frame of size or greater into a schedule with relative congestion at most in any frame of size or greater, where and , as shown in Figure 4. As well shall see, after j refinements, where , we obtain a schedule with constant relative congestion in every frame of size or greater, where is some constant. From it is straightforward to construct a schedule of length in which at most one packet traverses each edge of the network at each step, and at most a constant number of packets wait in each queue at each step.
Figure 4: A refinement step. Each refinement
transforms a schedule into a slightly longer schedule .
The frame size is greatly reduced in , yet the relative
congestion within a frame remains about the same, i.e., and .
At the start, the relative congestion in a d-frame of is at most 1. We begin by using Lemma 3.2 to produce a schedule of length in which the relative congestion is at most in any frame of size or greater.
Next, we repeatedly refine the schedule to reduce the frame size. As we shall see, the relative congestion and frame size for schedule are given by the recurrences
and
which have solutions and for some j, where .
We have not explicitly defined the values of and for which the recursion terminates. However, in several places in the proof that follows we implicitly use the fact that is sufficiently large that some inequality holds. The recursion terminates when the first of these inequalities fails to hold. When this happens, is bounded from above by some constant. Furthermore, independent of the depth of the recursion, is bounded from above by a constant.
Throughout the following lemmas we make references to quantities such as rI packets or time steps, when in fact rI and may not be integral. Rounding these quantities to integer values when necessary does not affect the correctness of the proof. For ease of exposition, we shall henceforth cease to consider the issue.
An important invariant that we maintain throughout the construction is that in schedule every packet waits at most once every steps. As a consequence, there is a constant such that a packet waits at most once every steps in , which implies both that the queues in cannot grow larger than a constant and that the total length of is . Schedule almost satisfies the requirement that at most one packet traverses each edge in each step. By simulating each step of in a constant number of steps we can meet this requirement with only a factor of 2 increase in the queue size and a constant factor increase in the running time.
The rest of the proof describes the refinement step in detail. For ease of notation, we use I and r in place of and .
The first step in the ith refinement is to break schedule into blocks of consecutive time steps. Each block is rescheduled independently.
For each block, each packet is assigned a delay chosen from 1 to I. We will use the Lovász Local Lemma to show that if the delays are chosen randomly, uniformly, and independently, then with non-zero probability the resulting schedule will have the properties that we want.
A packet that is assigned a delay of x must wait for x steps at the beginning of the block. In order maintain the invariant that in schedule every packet waits at most once every steps, the packet is not delayed for x consecutive steps at the beginning of the block, but instead a delay is inserted every I steps in the first xI steps of the block. A packet that is delayed x steps reaches its destination at the end of the block by step .
In order to independently reschedule the next block, the packets must reside in exactly the same queues at the end of the rescheduled block that they did at the end of the block of . Since some packets arrive early, they must be slowed down. Thus, if a packet is assigned delay x, then I-x delays are inserted in the last steps of the block, one every I steps. Since every packet experiences a total delay of I, the rescheduled block must have length .
Before the delays for schedule have been inserted, a packet is delayed at most once in each block of , provided that , which holds as long as I is larger than some constant. Prior to inserting each new delay into a block, we check if it is within I steps of the single old delay. If the new delay would be too close to the old delay, then it is simply not inserted. The loss of a single delay in a block has a negligible effect on the probability calculations in the lemmas that follow.
The following two lemmas are used several times in the proof of the theorem. Lemma 3.5 shows that if we can bound the relative congestion in frames of size T to 2T-1, then we can bound the relative congestion in all frames of size T or greater. Lemma 3.6 bounds the probability that too many packets use any particular edge g in any small frame in the center of a block after every packet has been delayed for a random number of steps at the beginning of the block.
Proof: Consider a frame of size , where . The first steps of the frame can be broken into T-frames. In each of these frames, at most RT packets use g. The remainder of the -frame consists of a single y-frame, where , in which at most Ry packets use g.
Proof: We begin by computing an upper bound on the probability, , that more than packets use an edge g in a particular -frame. Since a packet may be delayed up to steps before the frame, any packet that used g in the -frame spanning the same steps in the block before the delays were inserted or in the steps before that frame may use g after the delays are inserted. Thus, there are at most packets that can use g in the frame. For each of these, the probability that the packet uses g in the frame after being delayed is at most , provided that the packet's path uses g at most once. Thus, the probability that more than packets use g in the frame is bounded by
Let . We bound the series as follows. The expected number of packets that use g in the frame is . For and , is larger than the expectation, so the first term in the series is the largest, and there are at most terms. Applying the inequalities , for , and for 0 < b < a to this term, we have
For and , we can ensure that , for any constant by making constant large enough.
Next we need to bound the probability that more than packets use g in any -frame of the block. There are at most -frames. Thus . By making the constant large enough, we can ensure that , for any constant .
To bound the relative congestion in frames of size greater than , we appeal to Lemma 3.5. The calculations for frames of size through are similar to those for frames of size . There are at most frames of any one size, and frame sizes between and . By adjusting the constants as before, we can guarantee that the probability p that more than packets use g in any T-frame for T between and is at most for any constant .
Lemma 3.7 shows that by inserting delays at the beginning and end of the block we can reduce the frame size in the center of the block while only slightly increasing the relative congestion. The bounds proved in Lemma 3.7 are shown in Figure 5.
Proof: The proof uses the Lovász Local Lemma. With each edge we associate a bad event. For edge g, a bad event occurs when more than packets use g in any T-frame for . To show that no bad event occurs, we need to bound both the dependence of the bad events and the probability that an individual bad event occurs.
We first bound the dependence, b. At most packets use an edge in the block. Each of these packets travels through at most other edges in the block. Furthermore, . Thus, a bad event depends on other bad events.
For any constant , we can bound the probability that a bad event occurs by by applying Lemma 3.6 with , , , , , and .
Since a bad event depends on only other bad events, we can make 4pb < 1 by making large enough. By the Lovász Local Lemma, there is some way of choosing the packet delays so that no bad event occurs.
Figure 5: Bounds on
frame size and relative congestion after inserting delays into .
Here and .
Inserting delays into the schedule may increase the relative congestion in I-frames (or smaller frames) in the steps at the beginning and end of each block. In order to bound the relative congestion in small frames in these regions, we first move the block boundaries to the centers of the blocks, as shown in Figure 6. Now each block of size has a ``fuzzy'' region of size in its center. Lemma 3.8 shows that after moving the block boundaries, the relative congestion in any frame of size or larger in the block is at most . We will later insert more delays into the schedule and uses Lemmas 3.6 and 3.8 to help bound the relative congestion in small frames in the fuzzy region.
Proof: There are two cases to consider. First, consider a T-frame that lies entirely in the first half of a block, or entirely in the second half of a block. After the delays are inserted, a packet can use an edge in the T-frame only if it used the edge in some -frame in . Thus, at most packets can use an edge in the T-frame. For , the relative congestion is at most . Second, consider a T-frame that spans the center of the block. Suppose that the frame consists of steps before the center and after, so that . Then a packet can use an edge in the steps before the center only if it used the edge in one of the last steps before the end of a block in . Since may be less than I, we can't bound the relative congestion in the last steps at the end of a block. But we know that at most packets used the edge in the last steps, and hence in the last steps. Similarly, a packet can use an edge in the steps after the center only if it used an edge in one of the first steps of a block in . Hence, at most packets use the edge in the steps after the center. Since a total of at most packets use the edge, for the relative congestion is at most .
To reduce the frame size in the fuzzy region, we assign a delay from 1 to to each packet. As before, we will use the Lovász Local Lemma to show that if the delays are chosen randomly, independently, and uniformly then with non-zero probability the resulting schedule has the properties we want. A packet with delay x waits once every steps in the steps before the fuzzy region. In addition, a packet with delay x waits once every steps in the last steps of the rescheduled block. Thus, every packet waits for a total of steps (except we do not insert a delay if it is within I steps of an old delay), and the rescheduled block now has size . Note that in the rescheduled block the width of the fuzzy region grows by time steps; it spans steps through .
Figure 6: A block after recentering. The
``fuzzy region'' in the center of the block is shaded. The line
bisecting the shaded region denotes the block boundary before recentering.
We now show that there is some way of inserting delays into the schedule before the fuzzy region that both reduces the frame size in the fuzzy region and does not increase either the frame size or the relative congestion before or after the fuzzy region by much.
Proof: The proof uses the Lovász Local Lemma as before. With each edge we associate a bad event. For edge g, a bad event occurs
The calculation for the dependence b is the same as in Lemma 3.7. At most packets pass through each edge g, and each of these packets passes through at most other edges. Hence, .
To bound the probability that a bad event occurs, we consider the three cases separately, and sum their individual probabilities of occurrence.
Since no delays are inserted into the fuzzy region, we can use Lemma 3.6 to prove that for any constant , there is an such that the probability that more than packets use g in any T-frame between steps and , for any , is at most . We apply Lemma 3.6 with , , , , , , and .
Before the fuzzy region, the situation is more complex. By the kth step, , a packet with delay x has waited times. Thus, the delay of a packet at the kth step varies essentially uniformly from 0 to . For , or equivalently, , we can show that the relative congestion in any frame of size or greater has not increased much.
The probability that more than packets use an edge g in a particular -frame is given by
Using the same inequalities as in the proof of Lemma 3.6, we have
The calculations for frame of size through are similar. Thus for any constant , for , , and , the probability that more than packets use g in any T-frame between steps and , for any , is at most .
By symmetry, the probability that more than packets use g between steps and , for any , is also at most .
Thus, the probability that a bad event occurs for edge g is at most . Since the dependence is at most , by adjusting the constants and we can apply the Lovász Local Lemma.
For steps 0 to , we use the following lemma to bound the frame size and relative congestion.
Proof: The proof is similar to that of Lemma 3.8.
We have now completed our transformation of schedule into schedule . Let us review the relative congestion and frame sizes in the different parts of a block. Between steps 0 and , the relative congestion in any frame of size or greater is at most . Between this region and the fuzzy region, the relative congestion in any frame of size or greater is at most . In the fuzzy region, the relative congestion in any frame of size or greater is at most . After the fuzzy region, the relative congestion in any frame of size or greater is again , until step , where the relative congestion in any frame of size or greater is . These bounds are shown in Figure 7. Finally we must bound the relative congestion in frames that span the different parts of a block (or two different blocks). Since we have bound the relative congestion in blocks of size or greater, it is safe to say that in the the entire schedule the relative congestion in any frame of size or greater is at most .
Figure 7: Final
bounds on frame size and relative congestion. To reduce the frame
size in the fuzzy regions, delays are inserted only outside the shaded
region. Here , , , , and .