A simpler proof for O ( congestion + dilation ) packet routing - - PowerPoint PPT Presentation

a simpler proof for o congestion dilation packet routing
SMART_READER_LITE
LIVE PREVIEW

A simpler proof for O ( congestion + dilation ) packet routing - - PowerPoint PPT Presentation

A simpler proof for O ( congestion + dilation ) packet routing Thomas Rothvo Department of Mathematics, MIT IPCO 2013 Packet Routing Input: directed graph G = ( V, E ) Packet Routing Input: Paths P i in a directed graph G = ( V, E )


slide-1
SLIDE 1

A simpler proof for O(congestion + dilation) packet routing

Thomas Rothvoß

Department of Mathematics, MIT

IPCO 2013

slide-2
SLIDE 2

Packet Routing

◮ Input:

directed graph G = (V, E)

slide-3
SLIDE 3

Packet Routing

◮ Input: Paths Pi in a directed graph G = (V, E)

slide-4
SLIDE 4

Packet Routing

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-5
SLIDE 5

Packet Routing Time: t = 0

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-6
SLIDE 6

Packet Routing Time: t = 0

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-7
SLIDE 7

Packet Routing Time: t = 0

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-8
SLIDE 8

Packet Routing Time: t = 0

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-9
SLIDE 9

Packet Routing Time: t = 1

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-10
SLIDE 10

Packet Routing Time: t = 1

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-11
SLIDE 11

Packet Routing Time: t = 1

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-12
SLIDE 12

Packet Routing Time: t = 1

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-13
SLIDE 13

Packet Routing Time: t = 1

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-14
SLIDE 14

Packet Routing Time: t = 2

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-15
SLIDE 15

Packet Routing Time: t = 2

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-16
SLIDE 16

Packet Routing Time: t = 2

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-17
SLIDE 17

Packet Routing Time: t = 2

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-18
SLIDE 18

Packet Routing Time: t = 2

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-19
SLIDE 19

Packet Routing Time: t = 3

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-20
SLIDE 20

Packet Routing Time: t = 3

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-21
SLIDE 21

Packet Routing Time: t = 3

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-22
SLIDE 22

Packet Routing Time: t = 3

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-23
SLIDE 23

Packet Routing Time: t = 3

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-24
SLIDE 24

Packet Routing Time: t = 4

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-25
SLIDE 25

Packet Routing Time: t = 4

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-26
SLIDE 26

Packet Routing Time: t = 4

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-27
SLIDE 27

Packet Routing Time: t = 4

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-28
SLIDE 28

Packet Routing Time: t = 4

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-29
SLIDE 29

Packet Routing Time: t = 5

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-30
SLIDE 30

Packet Routing Time: t = 5

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-31
SLIDE 31

Packet Routing Time: t = 5

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-32
SLIDE 32

Packet Routing Time: t = 5

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-33
SLIDE 33

Packet Routing Time: t = 5

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-34
SLIDE 34

Packet Routing Time: t = 6

1 2 3 4 5 6

◮ Input: Paths Pi in a directed graph G = (V, E) ◮ Goal: Route packets along paths to minimize makespan

Constraint: edge can be crossed by 1 packet per time unit

slide-35
SLIDE 35

Packet Routing (2)

Lower bounds:

slide-36
SLIDE 36

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi}

slide-37
SLIDE 37

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|

slide-38
SLIDE 38

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|

Theorem (Leighton, Maggs, Rao ’94)

∃ schedule of length O(congestion + dilation) (even with O(1)-size edge buffers).

slide-39
SLIDE 39

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|

Theorem (Leighton, Maggs, Rao ’94)

∃ schedule of length O(congestion + dilation) (even with O(1)-size edge buffers). “highly involved”

slide-40
SLIDE 40

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|

Theorem (Leighton, Maggs, Rao ’94)

∃ schedule of length O(congestion + dilation) (even with O(1)-size edge buffers). “highly involved” “very difficult to understand”

slide-41
SLIDE 41

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|

Theorem (Leighton, Maggs, Rao ’94)

∃ schedule of length O(congestion + dilation) (even with O(1)-size edge buffers). “highly involved” “very difficult to understand” “technical tour de force”

slide-42
SLIDE 42

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|

Theorem (Leighton, Maggs, Rao ’94)

∃ schedule of length O(congestion + dilation) (even with O(1)-size edge buffers). “highly involved” “very difficult to understand” “technical tour de force”

◮ Polytime algorithm [Leighton, Maggs, Richa ’99]

slide-43
SLIDE 43

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|

Theorem (Leighton, Maggs, Rao ’94)

∃ schedule of length O(congestion + dilation) (even with O(1)-size edge buffers). “highly involved” “very difficult to understand” “technical tour de force”

◮ Polytime algorithm [Leighton, Maggs, Richa ’99] ◮ 39 · (C + D) suffices [Scheideler ’98]

slide-44
SLIDE 44

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|

Theorem (Leighton, Maggs, Rao ’94)

∃ schedule of length O(congestion + dilation) (even with O(1)-size edge buffers). “highly involved” “very difficult to understand” “technical tour de force”

◮ Polytime algorithm [Leighton, Maggs, Richa ’99] ◮ 39 · (C + D) suffices [Scheideler ’98] ◮ 24 · (C + D) suffices [Peis, Wiese ’11]

slide-45
SLIDE 45

Packet Routing (2)

Lower bounds:

◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|

Theorem (Leighton, Maggs, Rao ’94)

∃ schedule of length O(congestion + dilation) (even with O(1)-size edge buffers). “highly involved” “very difficult to understand” “technical tour de force”

◮ Polytime algorithm [Leighton, Maggs, Richa ’99] ◮ 39 · (C + D) suffices [Scheideler ’98] ◮ 24 · (C + D) suffices [Peis, Wiese ’11] ◮ O(1)-apx for finding paths + schedule [Srinivasan, Teo ’00]

slide-46
SLIDE 46

Main result

Theorem (R. ’13)

Much simpler proof of O(congestion + dilation)-packet routing (also with O(1)-size edge buffers).

slide-47
SLIDE 47

Main result

Theorem (R. ’13)

Much simpler proof of O(congestion + dilation)-packet routing (also with O(1)-size edge buffers).

◮ [Wiese ’12]: Is (1 + o(1)) · (congestion + dilation) possible? ◮ True if congestion ≫ dilation!

slide-48
SLIDE 48

Main result

Theorem (R. ’13)

Much simpler proof of O(congestion + dilation)-packet routing (also with O(1)-size edge buffers).

◮ [Wiese ’12]: Is (1 + o(1)) · (congestion + dilation) possible? ◮ True if congestion ≫ dilation!

No!!

Theorem (R. ’13)

∃ instance requiring (1 + ε) · (congestion + dilation) time.

slide-49
SLIDE 49

Main result

Theorem (R. ’13)

Much simpler proof of O(congestion + dilation)-packet routing (also with O(1)-size edge buffers).

◮ [Wiese ’12]: Is (1 + o(1)) · (congestion + dilation) possible? ◮ True if congestion ≫ dilation!

No!!

Theorem (R. ’13)

∃ instance requiring (1 + ε) · (congestion + dilation) time. Assumptions:

◮ D := dilation = congestion = |Pi| ∀i

slide-50
SLIDE 50

Main result

Theorem (R. ’13)

Much simpler proof of O(congestion + dilation)-packet routing (also with O(1)-size edge buffers).

◮ [Wiese ’12]: Is (1 + o(1)) · (congestion + dilation) possible? ◮ True if congestion ≫ dilation!

No!!

Theorem (R. ’13)

∃ instance requiring (1 + ε) · (congestion + dilation) time. Assumptions:

◮ D := dilation = congestion = |Pi| ∀i ◮ O(1) packets can cross an edge per time unit

slide-51
SLIDE 51

Preliminaries

Lemma (Lov´ asz Local Lemma)

Let A1, . . . , Am be events such that (1) Pr[Ai] ≤ p (2) each Ai depends on ≤ d other events (3) 4 · p · d ≤ 1 Then Pr m

i=1 ¯

Ai

  • > 0.

◮ Constructive via [Moser, Tardos ’10]

slide-52
SLIDE 52

Preliminaries

Lemma (Lov´ asz Local Lemma)

Let A1, . . . , Am be events such that (1) Pr[Ai] ≤ p (2) each Ai depends on ≤ d other events (3) 4 · p · d ≤ 1 Then Pr m

i=1 ¯

Ai

  • > 0.

◮ Constructive via [Moser, Tardos ’10]

Lemma (Chernov-Hoeffding)

Let Z1, . . . , Zk ∈ [0, δ] be independently RV, sum Z := k

i=1 Zi.

Then Pr[Z > (1 + ε) E[Z]] ≤ exp

  • − ε2

3 · E[Z] δ

  • .
slide-53
SLIDE 53

A probabilistic schedule

slide-54
SLIDE 54

A probabilistic schedule

slide-55
SLIDE 55

A probabilistic schedule

b b b b b b b b b b

slide-56
SLIDE 56

A probabilistic schedule

b b b b b b b b b b

level 0 D

slide-57
SLIDE 57

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 D1 := √ D

slide-58
SLIDE 58

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1

slide-59
SLIDE 59

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1 Waiting rule:

◮ At source: wait α0 ∼ [D] ◮ When entering kth level ℓ interval: Wait αℓ,k ∼ [D1/4 ℓ

]

◮ When leaving kth level ℓ interval: Wait D1/4 ℓ

− αℓ,k

slide-60
SLIDE 60

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1 time O(D) Level 0 waiting time Level 1 waiting time Level 2 waiting time move

slide-61
SLIDE 61

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1 D1/4

1

∼ [D] ∼ [D1/4

1

] time O(D)

slide-62
SLIDE 62

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1 Observations:

◮ total waiting time: D + ℓ≥1 D Dℓ · D1/4 ℓ

= O(D)

slide-63
SLIDE 63

A probabilistic schedule

e

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1 e

b b

Observations:

◮ total waiting time: D + ℓ≥1 D Dℓ · D1/4 ℓ

= O(D)

◮ time that i crosses e depends only on waiting times of

intervals containing e

slide-64
SLIDE 64

A probabilistic schedule

e

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1 e

b b

Observations:

◮ total waiting time: D + ℓ≥1 D Dℓ · D1/4 ℓ

= O(D)

◮ time that i crosses e depends only on waiting times of

intervals containing e

◮ Pr[packet i crosses e at time t] ≤ 1 D & E[load(e, t)] ≤ 1

slide-65
SLIDE 65

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1

Claim

There exist waiting times s.t. load(e, t) ≤ O(1) ∀e, t

slide-66
SLIDE 66

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1

Claim

There exist waiting times s.t. load(e, t) ≤ O(1) ∀e, t Idea:

◮ Fix waiting times on level ℓ = 0, 1, 2, . . . iteratively.

slide-67
SLIDE 67

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1

Claim

There exist waiting times s.t. load(e, t) ≤ O(1) ∀e, t Idea:

◮ Fix waiting times on level ℓ = 0, 1, 2, . . . iteratively. ◮ Show maxe,t{E[load(e, t)]} increases ≤ D − 1

32

in step ℓ.

slide-68
SLIDE 68

A probabilistic schedule

b b b b b b b b b b

level 0 level 1 level 2 D2 := √D1

Claim

There exist waiting times s.t. load(e, t) ≤ O(1) ∀e, t Idea:

◮ Fix waiting times on level ℓ = 0, 1, 2, . . . iteratively. ◮ Show maxe,t{E[load(e, t)]} increases ≤ D − 1

32

in step ℓ.

◮ Eventually load(e, t) ≤ 1 + ℓ≥0 D − 1

32

≤ O(1).

slide-69
SLIDE 69

Proof

◮ Pick level-0 waiting times α ∼ [D]n. ◮ Y (e, t) := E[load(e, t) | α] = ave. load on e at t dep. on α

Lemma

Pr[Y (e, t) ≤ 1 + D− 1

32 ∀e, t] > 0

slide-70
SLIDE 70

Proof

◮ Pick level-0 waiting times α ∼ [D]n. ◮ Y (e, t) := E[load(e, t) | α] = ave. load on e at t dep. on α

Lemma

Pr[Y (e, t) ≤ 1 + D− 1

32 ∀e, t] > 0

◮ E[Y (e, t)] ≤ 1

slide-71
SLIDE 71

Proof

◮ Pick level-0 waiting times α ∼ [D]n. ◮ Y (e, t) := E[load(e, t) | α] = ave. load on e at t dep. on α

Lemma

Pr[Y (e, t) ≤ 1 + D− 1

32 ∀e, t] > 0

◮ E[Y (e, t)] ≤ 1 ◮ Y (e, t) = n i=1 Pr[i crosses e at t | α]

  • ∈[0,

1 ( √ D)1/4 ]

slide-72
SLIDE 72

Proof

◮ Pick level-0 waiting times α ∼ [D]n. ◮ Y (e, t) := E[load(e, t) | α] = ave. load on e at t dep. on α

Lemma

Pr[Y (e, t) ≤ 1 + D− 1

32 ∀e, t] > 0

◮ E[Y (e, t)] ≤ 1 ◮ Y (e, t) = n i=1 Pr[i crosses e at t | α]

  • ∈[0,

1 ( √ D)1/4 ]

◮ Pr[Y (e, t) > 1 + D− 1

32 ] ≤ e−Ω(D1/16)

slide-73
SLIDE 73

Proof

◮ Pick level-0 waiting times α ∼ [D]n. ◮ Y (e, t) := E[load(e, t) | α] = ave. load on e at t dep. on α

Lemma

Pr[Y (e, t) ≤ 1 + D− 1

32 ∀e, t] > 0

◮ E[Y (e, t)] ≤ 1 ◮ Y (e, t) = n i=1 Pr[i crosses e at t | α]

  • ∈[0,

1 ( √ D)1/4 ]

◮ Pr[Y (e, t) > 1 + D− 1

32 ] ≤ e−Ω(D1/16)

  • Rand. var.

packets Y (e, t) Y (e′, t′) i ≤ D ≤ O(D2)

slide-74
SLIDE 74

Proof

◮ Pick level-0 waiting times α ∼ [D]n. ◮ Y (e, t) := E[load(e, t) | α] = ave. load on e at t dep. on α

Lemma

Pr[Y (e, t) ≤ 1 + D− 1

32 ∀e, t] > 0

◮ E[Y (e, t)] ≤ 1 ◮ Y (e, t) = n i=1 Pr[i crosses e at t | α]

  • ∈[0,

1 ( √ D)1/4 ]

◮ Pr[Y (e, t) > 1 + D− 1

32 ] ≤ e−Ω(D1/16)

◮ Dependence degree ≤ O(D3)

  • Rand. var.

packets Y (e, t) Y (e′, t′) i ≤ D ≤ O(D2)

slide-75
SLIDE 75

Proof

◮ Suppose waiting times on level 0, . . . , ℓ − 1 already fixed. ◮ Pick level-ℓ waiting times α ∼ [∆1/4]n× D

∆ .

∆ := Dℓ

◮ Y (e, t) := E[load(e, t) | α] = ave. load on e at t dep. on α

Lemma

Pr[Y (e, t) ≤ E[Y (e, t)] + ∆− 1

32 ∀e, t] > 0

◮ E[Y (e, t)] ≤ 1+o(1) ◮ Y (e, t) = n i=1 Pr[i crosses e at t | α]

  • ∈[0,

1 ( √ ∆)1/4 ]

◮ Pr[Y (e, t) > E[Y (e, t)] + ∆− 1

32 ] ≤ e−Ω(∆1/16)

◮ If nonzero,

Pr[i crosses e at t] ≥

ℓ′≥ℓ 1 D1/4

ℓ′

1 ∆2 ◮ Possible positions & time frame ≤ O(∆) ◮ Dependence degree ≤ O(∆4)

  • Rand. var.

packets Y (e, t) Y (e′, t′) i ≤ O(∆2) ≤ O(∆2)

slide-76
SLIDE 76

Proof

◮ Suppose waiting times on level 0, . . . , ℓ − 1 already fixed. ◮ Pick level-ℓ waiting times α ∼ [∆1/4]n× D

∆ .

∆ := Dℓ

◮ Y (e, t) := E[load(e, t) | α] = ave. load on e at t dep. on α

Lemma

Pr[Y (e, t) ≤ E[Y (e, t)] + ∆− 1

32 ∀e, t] > 0

◮ E[Y (e, t)] ≤ 1+o(1) ◮ Y (e, t) = n i=1 Pr[i crosses e at t | α]

  • ∈[0,

1 ( √ ∆)1/4 ]

◮ Pr[Y (e, t) > E[Y (e, t)] + ∆− 1

32 ] ≤ e−Ω(∆1/16)

◮ If nonzero,

Pr[i crosses e at t] ≥

ℓ′≥ℓ 1 D1/4

ℓ′

1 ∆2 ◮ Possible positions & time frame ≤ O(∆) ◮ Dependence degree ≤ O(∆4)

  • Rand. var.

packets Y (e, t) Y (e′, t′) i ≤ O(∆2) ≤ O(∆2)

slide-77
SLIDE 77

O(1)-size edge buffers

slide-78
SLIDE 78

O(1)-size edge buffers

Theorem

∃ O(congestion + dilation)-time, O(1)-load schedule where packets wait {0, 1} time units per node.

slide-79
SLIDE 79

O(1)-size edge buffers

Theorem

∃ O(congestion + dilation)-time, O(1)-load schedule where packets wait {0, 1} time units per node.

b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b

level 0 level 1 level 2

◮ Assign path edges to intervals s.t. level ℓ interval gets D1/4 ℓ

edges

slide-80
SLIDE 80

O(1)-size edge buffers

Theorem

∃ O(congestion + dilation)-time, O(1)-load schedule where packets wait {0, 1} time units per node.

b b b b b b b b b b b b b b b b b b b

2 2 2 2 2 2 2 2 2

b b b b b b b b b b b b b b b b b b b

level 0 level 1 level 2

◮ Assign path edges to intervals s.t. level ℓ interval gets D1/4 ℓ

edges

slide-81
SLIDE 81

O(1)-size edge buffers

Theorem

∃ O(congestion + dilation)-time, O(1)-load schedule where packets wait {0, 1} time units per node.

b b b b b b b b b b b b b b b b b b b

2 2 2 2 2 2 2 2 2 1 1 1 1 1

b b b b b b b b b b b b b b b b b b b

level 0 level 1 level 2

◮ Assign path edges to intervals s.t. level ℓ interval gets D1/4 ℓ

edges

slide-82
SLIDE 82

O(1)-size edge buffers

Theorem

∃ O(congestion + dilation)-time, O(1)-load schedule where packets wait {0, 1} time units per node.

b b b b b b b b b b b b b b b b b b b

2 2 2 2 2 2 2 2 2 1 1 1 1 1

b b b b b b b b b b b b b b b b b b b

level 0 level 1 level 2

◮ Assign path edges to intervals s.t. level ℓ interval gets D1/4 ℓ

edges

slide-83
SLIDE 83

O(1)-size edge buffers

Theorem

∃ O(congestion + dilation)-time, O(1)-load schedule where packets wait {0, 1} time units per node.

b b b b b b b b b b b b b b b b b b b

2 2 2 2 2 2 2 2 2 1 1 1 1 1

b b b b b b b b b b b b b b b b b b b

level 0 level 1 level 2

◮ Assign path edges to intervals s.t. level ℓ interval gets D1/4 ℓ

edges

◮ Wait on first α ∼ [D1/4 ℓ

] assigned edges

slide-84
SLIDE 84

A lower bound construction

source sink n packets e1 e2 en

slide-85
SLIDE 85

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-86
SLIDE 86

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-87
SLIDE 87

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-88
SLIDE 88

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-89
SLIDE 89

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-90
SLIDE 90

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-91
SLIDE 91

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-92
SLIDE 92

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-93
SLIDE 93

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-94
SLIDE 94

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-95
SLIDE 95

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-96
SLIDE 96

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

slide-97
SLIDE 97

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n

slide-98
SLIDE 98

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3

slide-99
SLIDE 99

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3 ◮ makespan ≥ 3n

slide-100
SLIDE 100

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3 ◮ makespan ≥ 3n ◮ Suppose makespan ≤ (3 + ε)n

slide-101
SLIDE 101

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3 ◮ makespan ≥ 3n ◮ Suppose makespan ≤ (3 + ε)n ◮ Goal: # schedules · Pr[fixed schedule collision free] ≪ 1

slide-102
SLIDE 102

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3 ◮ makespan ≥ 3n ◮ Suppose makespan ≤ (3 + ε)n ◮ Goal: # schedules · Pr[fixed schedule collision free] ≪ 1 ◮ A routing strategy for a single packet is of the form

(park, park, go, wait, go, go, wait, wait, go, go, park)

slide-103
SLIDE 103

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3 ◮ makespan ≥ 3n ◮ Suppose makespan ≤ (3 + ε)n ◮ Goal: # schedules · Pr[fixed schedule collision free] ≪ 1 ◮ A routing strategy for a single packet is of the form

(park, park, go, wait, go, go, wait, wait, go, go, park) time horizon (3 + ε)n

slide-104
SLIDE 104

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3 ◮ makespan ≥ 3n ◮ Suppose makespan ≤ (3 + ε)n ◮ Goal: # schedules · Pr[fixed schedule collision free] ≪ 1 ◮ A routing strategy for a single packet is of the form

(park, park, go, wait, go, go, wait, wait, go, go, park) time horizon (3 + ε)n #go ≈ 2n

slide-105
SLIDE 105

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3 ◮ makespan ≥ 3n ◮ Suppose makespan ≤ (3 + ε)n ◮ Goal: # schedules · Pr[fixed schedule collision free] ≪ 1 ◮ A routing strategy for a single packet is of the form

(park, park, go, wait, go, go, wait, wait, go, go, park) time horizon (3 + ε)n #go ≈ 2n E[# park] ≥ n

slide-106
SLIDE 106

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3 ◮ makespan ≥ 3n ◮ Suppose makespan ≤ (3 + ε)n ◮ Goal: # schedules · Pr[fixed schedule collision free] ≪ 1 ◮ A routing strategy for a single packet is of the form

(park, park, go, wait, go, go, wait, wait, go, go, park) time horizon (3 + ε)n #go ≈ 2n E[# park] ≥ n E[#wait] ≤ εn

slide-107
SLIDE 107

A lower bound construction

source sink n packets e1 e2 en

◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order

Observations:

◮ Congestion n ◮ Dilation 2n + 3 ◮ makespan ≥ 3n ◮ Suppose makespan ≤ (3 + ε)n ◮ Goal: # schedules · Pr[fixed schedule collision free] ≪ 1 ◮ total # routing strategies ≤ (2n ·

4n

εn

  • )n ≤ 2o(n2) for ε → 0
slide-108
SLIDE 108

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-109
SLIDE 109

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

n 4 packets

slide-110
SLIDE 110

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-111
SLIDE 111

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-112
SLIDE 112

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-113
SLIDE 113

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-114
SLIDE 114

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-115
SLIDE 115

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-116
SLIDE 116

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-117
SLIDE 117

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-118
SLIDE 118

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-119
SLIDE 119

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

slide-120
SLIDE 120

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

◮ Pr[no collision] ≤ ( 1 8)n/8

slide-121
SLIDE 121

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

◮ Pr[no collision] ≤ ( 1 8)n/8 ◮ ∃ n 16 time steps in which n 4 packets cross a random edge ej.

slide-122
SLIDE 122

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

◮ Pr[no collision] ≤ ( 1 8)n/8 ◮ ∃ n 16 time steps in which n 4 packets cross a random edge ej. ◮ Problem: Steps not independent!

slide-123
SLIDE 123

Lemma

Fix a schedule. Pr[schedule feasible] ≤ ( 1

2)Θ(n2)

source sink e1 e2 en

◮ Pr[no collision] ≤ ( 1 8)n/8 ◮ ∃ n 16 time steps in which n 4 packets cross a random edge ej. ◮ Problem: Steps not independent! But more careful

analysis works.

slide-124
SLIDE 124

The end

Open question

Can acyclic job shop with preemption be done in O(congestion + dilation)?

◮ O((C + D) · log log(C + D)) suffices [Feige, Scheideler ’02]

slide-125
SLIDE 125

The end

Open question

Can acyclic job shop with preemption be done in O(congestion + dilation)?

◮ O((C + D) · log log(C + D)) suffices [Feige, Scheideler ’02]

Thanks for your attention

slide-126
SLIDE 126

Acyclic job shop with preemption

Given:

◮ Directed (simple) paths Pi ◮ Processing times pi,e ∀i ∈ [n] ∀e ∈ Pi

Constraints:

◮ Packet i takes time pi,e to cross e ∈ Pi ◮ At most one packet can actively move on an edge per time

unit

◮ Preemption: Packet can “stop” in the middle of an edge

(and another packet can be processed) Parameters:

◮ Congestion C := maxe∈E{ i:e∈Pi pi,e} ◮ Dilation D := maxi{ e∈Pi pi,e} ◮ L := max{C, D}

Question: Is O(L) possible? (Known: O(L · log log L))