A simpler proof for O ( congestion + dilation ) packet routing - - PowerPoint PPT Presentation
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 )
Packet Routing
◮ Input:
directed graph G = (V, E)
Packet Routing
◮ Input: Paths Pi in a directed graph G = (V, E)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Packet Routing (2)
Lower bounds:
Packet Routing (2)
Lower bounds:
◮ congestion = max e∈E {#i : e ∈ Pi}
Packet Routing (2)
Lower bounds:
◮ congestion = max e∈E {#i : e ∈ Pi} ◮ dilation = maxi |Pi|
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).
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”
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”
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”
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]
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]
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]
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]
Main result
Theorem (R. ’13)
Much simpler proof of O(congestion + dilation)-packet routing (also with O(1)-size edge buffers).
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!
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.
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
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
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]
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] δ
- .
A probabilistic schedule
A probabilistic schedule
A probabilistic schedule
b b b b b b b b b b
A probabilistic schedule
b b b b b b b b b b
level 0 D
A probabilistic schedule
b b b b b b b b b b
level 0 level 1 D1 := √ D
A probabilistic schedule
b b b b b b b b b b
level 0 level 1 level 2 D2 := √D1
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
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
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)
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)
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
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
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
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.
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 ℓ.
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).
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
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
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 ]
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)
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)
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)
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)
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)
O(1)-size edge buffers
O(1)-size edge buffers
Theorem
∃ O(congestion + dilation)-time, O(1)-load schedule where packets wait {0, 1} time units per node.
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
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
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
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
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
A lower bound construction
source sink n packets e1 e2 en
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
A lower bound construction
source sink n packets e1 e2 en
◮ Choose P1, . . . , Pn : go through e1, . . . , en in random order
Observations:
◮ Congestion n
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
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
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
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 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)
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
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
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
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
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
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
n 4 packets
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
Lemma
Fix a schedule. Pr[schedule feasible] ≤ ( 1
2)Θ(n2)
source sink e1 e2 en
◮ Pr[no collision] ≤ ( 1 8)n/8
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.
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!
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.
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]
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
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}