SLIDE 1 Sending Messages on Communication Networks
Ronald Koch, Britta Peis, Martin Skutella, Andreas Wiese
TU Berlin
SLIDE 2 The Message Routing Problem
◮ In a distributed system, processes residing at different nodes
- f the network communicate by passing messages.
SLIDE 3 The Message Routing Problem
◮ In a distributed system, processes residing at different nodes
- f the network communicate by passing messages.
◮ It is an important question, whether a given set of messages
{Mi}i∈I can be routed through the network on time.
SLIDE 4
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
SLIDE 5
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
◮ It takes one time unit to send a packet on each link.
SLIDE 6
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit.
SLIDE 7
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 8
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:00
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 9
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:01
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 10
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:02
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 11
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:03
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 12
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:04
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 13
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:05
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 14
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:06
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 15
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:07
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 16
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:08
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 17
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:09
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 18
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:10
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 19
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:11
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 20
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:12
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 21
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:13
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 22
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 23
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:04
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 24
The Model
◮ Message Mi = (si, ti, li) consists of li unit-size packets that
need to be send from si to ti within time horizon T.
00:12
◮ It takes one time unit to send a packet on each link. ◮ At most one packet may traverse a link per time unit. ◮ Each message must be completely received by a node before it
can be traversed to the next one.
SLIDE 25 Special Case: Packet Routing
◮ In the packet routing problem, each message consists of
SLIDE 26 Special Case: Packet Routing
◮ In the packet routing problem, each message consists of
◮ Integral multicommodity flow problem over time with
unit travel times and capacities.
SLIDE 27 Special Case: Packet Routing
◮ In the packet routing problem, each message consists of
00:00
◮ Integral multicommodity flow problem over time with
unit travel times and capacities.
SLIDE 28 Special Case: Packet Routing
◮ In the packet routing problem, each message consists of
00:01
◮ Integral multicommodity flow problem over time with
unit travel times and capacities.
SLIDE 29 Special Case: Packet Routing
◮ In the packet routing problem, each message consists of
00:02
◮ Integral multicommodity flow problem over time with
unit travel times and capacities.
SLIDE 30 Special Case: Packet Routing
◮ In the packet routing problem, each message consists of
00:03
◮ Integral multicommodity flow problem over time with
unit travel times and capacities.
SLIDE 31 Special Case: Packet Routing
◮ In the packet routing problem, each message consists of
00:04
◮ Integral multicommodity flow problem over time with
unit travel times and capacities.
SLIDE 32 Special Case: Packet Routing
◮ In the packet routing problem, each message consists of
00:05
◮ Integral multicommodity flow problem over time with
unit travel times and capacities.
SLIDE 33
Single-Sink-Single-Source Packet and Message Routing
Observation
1-sink-1-source packet routing can be solved efficiently.
Proof.
Calculate a maximum s-t-flow over time with time horizon T.
SLIDE 34 Single-Sink-Single-Source Packet and Message Routing
Observation
1-sink-1-source packet routing can be solved efficiently.
Proof.
Calculate a maximum s-t-flow over time with time horizon T.
Observation
1-sink-1-source message routing is NP-complete.
Proof.
Reduction from 3-PARTITION.
{
s t 1 2 k a1
2
a
3k
a 2B 2B k
SLIDE 35
Contents
The message- and packet routing problem Message routing and job shop scheduling Path-finding algorithm Message- and packet routing on special graph classes Periodic message routing
SLIDE 36
Contents
The message- and packet routing problem Message routing and job shop scheduling Path-finding algorithm Message- and packet routing on special graph classes Periodic message routing
SLIDE 37
Congestion and Dilation
◮ In case the paths {Pi}i∈I are known in advance,
we have to trivial lower bounds on T:
SLIDE 38 Congestion and Dilation
◮ In case the paths {Pi}i∈I are known in advance,
we have to trivial lower bounds on T:
◮ the congestion
C := max
e∈E
li,
SLIDE 39 Congestion and Dilation
◮ In case the paths {Pi}i∈I are known in advance,
we have to trivial lower bounds on T:
◮ the congestion
C := max
e∈E
li,
◮ and the dilation
D := max
i∈I |Pi|li.
SLIDE 40 Congestion and Dilation
◮ In case the paths {Pi}i∈I are known in advance,
we have to trivial lower bounds on T:
◮ the congestion
C := max
e∈E
li,
◮ and the dilation
D := max
i∈I |Pi|li. ◮ Assigning priorities → acyclic job shop scheduling problem!
SLIDE 41
Job Shop Scheduling
◮ Jobs J1, . . . , Jn, machines M1, . . . , Mm, each job consists of a
sequence of operations Ji = ((Mi1, pi1), ..., (Mik, pik)) to be performed in order. Goal: Find feasible schedule with minimal makespan.
SLIDE 42 Job Shop Scheduling
◮ Jobs J1, . . . , Jn, machines M1, . . . , Mm, each job consists of a
sequence of operations Ji = ((Mi1, pi1), ..., (Mik, pik)) to be performed in order. Goal: Find feasible schedule with minimal makespan.
◮ Example:
JR = ((M2, 3), (M3, 3)) JB = ((M1, 1), (M2, 1), (M4, 1), (M5, 1)).
1 2 4 3 5
SLIDE 43 Job Shop Scheduling
◮ Jobs J1, . . . , Jn, machines M1, . . . , Mm, each job consists of a
sequence of operations Ji = ((Mi1, pi1), ..., (Mik, pik)) to be performed in order. Goal: Find feasible schedule with minimal makespan.
◮ Example:
JR = ((M2, 3), (M3, 3)) JB = ((M1, 1), (M2, 1), (M4, 1), (M5, 1)).
1 2 4 3 5
M M M M M
1 2 3 4 5
SLIDE 44
Results on Job Shop Scheduling
◮ AJSS is NP-hard to approximate within a factor of 5 4
[Sevast’janov et al. 93]
SLIDE 45
Results on Job Shop Scheduling
◮ AJSS is NP-hard to approximate within a factor of 5 4
[Sevast’janov et al. 93]
◮ O(C + D log log lmax)-schedule exists [Feige, Scheideler 02]
SLIDE 46
Results on Job Shop Scheduling
◮ AJSS is NP-hard to approximate within a factor of 5 4
[Sevast’janov et al. 93]
◮ O(C + D log log lmax)-schedule exists [Feige, Scheideler 02] ◮ O(C + D)-schedule if all operation lengths are one [Leighton,
Maggs, Richa 94]
SLIDE 47
Results on Job Shop Scheduling
◮ AJSS is NP-hard to approximate within a factor of 5 4
[Sevast’janov et al. 93]
◮ O(C + D log log lmax)-schedule exists [Feige, Scheideler 02] ◮ O(C + D)-schedule if all operation lengths are one [Leighton,
Maggs, Richa 94]
◮ First constant factor approximation for packet routing
[Srinivasan, Teo 01]
SLIDE 48
Results on Job Shop Scheduling
◮ AJSS is NP-hard to approximate within a factor of 5 4
[Sevast’janov et al. 93]
◮ O(C + D log log lmax)-schedule exists [Feige, Scheideler 02] ◮ O(C + D)-schedule if all operation lengths are one [Leighton,
Maggs, Richa 94]
◮ First constant factor approximation for packet routing
[Srinivasan, Teo 01]
◮ Our algorithm finds paths for the message routing problem
with C and D small.
SLIDE 49
Results on Job Shop Scheduling
◮ AJSS is NP-hard to approximate within a factor of 5 4
[Sevast’janov et al. 93]
◮ O(C + D log log lmax)-schedule exists [Feige, Scheideler 02] ◮ O(C + D)-schedule if all operation lengths are one [Leighton,
Maggs, Richa 94]
◮ First constant factor approximation for packet routing
[Srinivasan, Teo 01]
◮ Our algorithm finds paths for the message routing problem
with C and D small.
◮ It improves the result of Srinivasan and Teo for packet routing
by a factor of 2.
SLIDE 50
Contents
The message- and packet routing problem Message routing and job shop scheduling Path-finding algorithm Message- and packet routing on special graph classes Periodic message routing
SLIDE 51
Paths with C and D small
◮ For some fixed D ≤ T define
Pi := {si, ti-paths of length ≤ D li } ∀i ∈ I.
SLIDE 52 Paths with C and D small
◮ For some fixed D ≤ T define
Pi := {si, ti-paths of length ≤ D li } ∀i ∈ I.
◮ We are interested in an optimal {0, 1}-solution of
minx≥0 C ∀i ∈ I :
∀e ∈ E :
SLIDE 53 Paths with C and D small
◮ For some fixed D ≤ T define
Pi := {si, ti-paths of length ≤ D li } ∀i ∈ I.
◮ We are interested in an optimal {0, 1}-solution of
minx≥0 C ∀i ∈ I :
∀e ∈ E :
Theorem
Our algorithm finds a {0, 1}-solution ˆ x such that ˆ C < C ∗ + D, where C ∗ is the congestion of an optimal fractional solution.
SLIDE 54 An optimal fractional solution
Observation
An optimal fractional solution x∗ of minx≥0 C ∀i ∈ I :
∀e ∈ E :
can be found efficiently.
SLIDE 55 An optimal fractional solution
Observation
An optimal fractional solution x∗ of minx≥0 C ∀i ∈ I :
∀e ∈ E :
can be found efficiently.
Proof.
The pricing problem is the constant-length-bounded shortest path problem (→ modified Dijkstra).
SLIDE 56 Rounding algorithm
Algorithm
F ← messages with fixed paths (initially empty). Iteratively:
- 1. Compute a basic optimal solution x∗ of
minx≥0 C ∀i ∈ I :
∀e ∈ E :
i∈F:e∈Pi li
P = 1; (move corresponding i from I to F;)
- 3. Remove variables with x∗
P = 0;
- 4. Remove constraint e with
- i∈I
- P∈Pi:e∈P
li < C ∗ −
li + D.
SLIDE 57 The algorithm is well-defined
Theorem
If 0 < x∗
P < 1 for all paths P, there exists a constraint e with
li < C ∗ −
li + D.
Proof.
Since x∗ is b.f.s., there exist linearly independent tight constraints T1 and T2 of type (1) and (2) with n = |supp(x∗)| = |T1| + |T2|. If ∀e ∈ T2 :
li(1 − x∗
P) ≥ D,
then nD ≤
P∈Pi x∗ P + e∈T2
P)
≤
P + e∈T2:e∈P li(1 − x∗ P))
≤
P + D − Dx∗ P) = Dn.
Contradiction to linear independency!
SLIDE 58
Corollary
Corollary
The algorithm determines paths with small congestion and dilation.
SLIDE 59
Contents
The message- and packet routing problem Message routing and job shop scheduling Path-finding algorithm Message- and packet routing on special graph classes Periodic message routing
SLIDE 60
Message Routing on a Directed Path
◮
SLIDE 61
Message Routing on a Directed Path
◮
SLIDE 62 Message Routing on a Directed Path
◮
Optimal Schedule: Farthest−Destination−First: 19 22
SLIDE 63 Message Routing on a Directed Path
◮
Optimal Schedule: Farthest−Destination−First: 19 22
◮ Theorem (Leung, Tam, Wong, Young 96)
Message routing on a directed path is NP-complete (reduction from 3-PARTITION).
SLIDE 64 Message Routing on a Directed Path
◮
Optimal Schedule: Farthest−Destination−First: 19 22
◮ Theorem (Leung, Tam, Wong, Young 96)
Message routing on a directed path is NP-complete (reduction from 3-PARTITION).
◮ Theorem
Farthest-Destination-First is optimal if si <P sj = ⇒ ti ≤P tj.
SLIDE 65
Further results on special graph classes
Message routing problem:
◮ NP-hard to approximate with a factor < 7 6 on a tree even if
message lengths of 1 and 2, only.
◮ NP-hard on a grid even in the single-sink, single-source case.
Packet routing problem:
◮ FDF optimal on directed paths, in-trees and out-trees. ◮ FDF arbitrarily bad on trees. ◮ 2-approximation on trees. ◮ C + D − 1-approximation on directed trees. ◮ NP-hard to approximate with a factor < 10 9 on trees. ◮ NP-hard to approximate with a factor < 7 6 on planar graphs. ◮ NP-hard to approximate with a factor < 6 5 on general graphs. ◮ 2-approximation on a grid with pairwise different origins and
destinations.
SLIDE 66
Contents
The message- and packet routing problem Message routing and job shop scheduling Path-finding algorithm Message- and packet routing on special graph classes Periodic message routing
SLIDE 67 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 4 4 2
period
SLIDE 68 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 2 4 4 4 2 4 4 4 4 2
SLIDE 69 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 2 4 4 4 2 4 4 4 4 2
◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 70 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 2 4 2 4 4 2 4 4 4
◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 71 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 4 2 4 4 4 2 2 4
t=0
4
◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 72 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 4 4 4 2 2 2 4 4 4
t=1 ◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 73 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 4 4 4 2 2 2 4 4 4
t=1 ◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 74 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 4 2 2 4 4 4 2 4 2 2 4
t=2 ◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 75 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 4 2 2 4 4 4 2 4 2 2 4
t=2 ◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 76 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 4 2 4 4 2 4 2 4 2 2 4
t=3 ◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 77 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 4 2 4 4 2 4 2 4 2 2 4
t=3 ◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 78 Periodic message routing
◮ Each message (here: packet) is released periodically.
2 4 4 4 2 4 4 2 2 2 4 2 4 4 2 4 2 4 4 4
t=4 ◮ Feasible schedule: each packet is sent before the next one is
released.
SLIDE 79 Color algorithm
◮ Send packets according to the color algorithm:
- 1. Order the paths by increasing periods;
- 2. Color a path P with period p with a color class
[cP] ∈ {[0 mod p], [1 mod p], . . . , [(p − 1) mod p]} such that [cP] ∩ [cP′] = ∅ if P and P′ overlap.
- 3. Color the edges ek of {e0, e1, . . . , en} with time-dependent
color (k + t) mod pmax for t = 0, . . . ;
- 4. Send packet P along ek at time step t if ek + t ∈ [cP];
SLIDE 80 Color algorithm
◮ Send packets according to the color algorithm:
- 1. Order the paths by increasing periods;
- 2. Color a path P with period p with a color class
[cP] ∈ {[0 mod p], [1 mod p], . . . , [(p − 1) mod p]} such that [cP] ∩ [cP′] = ∅ if P and P′ overlap.
- 3. Color the edges ek of {e0, e1, . . . , en} with time-dependent
color (k + t) mod pmax for t = 0, . . . ;
- 4. Send packet P along ek at time step t if ek + t ∈ [cP];
◮ Theorem: Feasible schedule if all periods are powers of 2.
SLIDE 81 Color algorithm
◮ Send packets according to the color algorithm:
- 1. Order the paths by increasing periods;
- 2. Color a path P with period p with a color class
[cP] ∈ {[0 mod p], [1 mod p], . . . , [(p − 1) mod p]} such that [cP] ∩ [cP′] = ∅ if P and P′ overlap.
- 3. Color the edges ek of {e0, e1, . . . , en} with time-dependent
color (k + t) mod pmax for t = 0, . . . ;
- 4. Send packet P along ek at time step t if ek + t ∈ [cP];
◮ Theorem: Feasible schedule if all periods are powers of 2. ◮ Thus, for general periods feasible if utilities
u(e) :=
1 pi ≤ 1 2 ∀e ∈ E.
SLIDE 82
Further Research
Solve all the open questions!