CS270: Lecture 2. Admin: CS270: Lecture 2. Admin: Check Piazza. - - PowerPoint PPT Presentation

cs270 lecture 2
SMART_READER_LITE
LIVE PREVIEW

CS270: Lecture 2. Admin: CS270: Lecture 2. Admin: Check Piazza. - - PowerPoint PPT Presentation

CS270: Lecture 2. Admin: CS270: Lecture 2. Admin: Check Piazza. CS270: Lecture 2. Admin: Check Piazza. Today: Finish Path Routing. ???? Path Routing. Given G = ( V , E ) , ( s 1 , t 1 ) ,..., ( s k , t k ) , find a set of k paths


slide-1
SLIDE 1

CS270: Lecture 2.

Admin:

slide-2
SLIDE 2

CS270: Lecture 2.

Admin: Check Piazza.

slide-3
SLIDE 3

CS270: Lecture 2.

Admin: Check Piazza. Today:

◮ Finish Path Routing. ◮ ????

slide-4
SLIDE 4

Path Routing.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths connecting si and ti and minimize max load on any edge. s1 t1 s2 t2 s3 t3

slide-5
SLIDE 5

Path Routing.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths connecting si and ti and minimize max load on any edge. s1 t1 s2 t2 s3 t3

slide-6
SLIDE 6

Path Routing.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths connecting si and ti and minimize max load on any edge. s1 t1 s2 t2 s3 t3

slide-7
SLIDE 7

Path Routing.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths connecting si and ti and minimize max load on any edge. s1 t1 s2 t2 s3 t3

slide-8
SLIDE 8

Path Routing.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths connecting si and ti and minimize max load on any edge. s1 t1 s2 t2 s3 t3

slide-9
SLIDE 9

Path Routing.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths connecting si and ti and minimize max load on any edge. s1 t1 s2 t2 s3 t3 Value: 3

slide-10
SLIDE 10

Path Routing.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths connecting si and ti and minimize max load on any edge. s1 t1 s2 t2 s3 t3 Value: 3

slide-11
SLIDE 11

Path Routing.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths connecting si and ti and minimize max load on any edge. s1 t1 s2 t2 s3 t3 Value: 3 —————

slide-12
SLIDE 12

Path Routing.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths connecting si and ti and minimize max load on any edge. s1 t1 s2 t2 s3 t3 Value: 3 ————— Value: 2

slide-13
SLIDE 13

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs.

slide-14
SLIDE 14

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

slide-15
SLIDE 15

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3 Assign

1 11 on each of 11 edges.

slide-16
SLIDE 16

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3 Assign

1 11 on each of 11 edges.

Toll paid:

slide-17
SLIDE 17

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 11 1 11 1 11

Assign

1 11 on each of 11 edges.

Toll paid:

3 11

slide-18
SLIDE 18

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 11 1 11 1 11

Assign

1 11 on each of 11 edges.

Toll paid:

3 11

+ 3

11

slide-19
SLIDE 19

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 11 1 11 1 11

Assign

1 11 on each of 11 edges.

Toll paid:

3 11

+ 3

11 + 3 11

slide-20
SLIDE 20

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3 Assign

1 11 on each of 11 edges.

Toll paid:

3 11

+ 3

11 + 3 11 = 9 11

slide-21
SLIDE 21

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3 Assign

1 11 on each of 11 edges.

Toll paid:

3 11

+ 3

11 + 3 11 = 9 11

Can we do better?

slide-22
SLIDE 22

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 2 1 2

Assign

1 11 on each of 11 edges.

Toll paid:

3 11

+ 3

11 + 3 11 = 9 11

Can we do better? Assign 1/2 on these two edges.

slide-23
SLIDE 23

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 2 1 2

Assign

1 11 on each of 11 edges.

Toll paid:

3 11

+ 3

11 + 3 11 = 9 11

Can we do better? Assign 1/2 on these two edges. Toll paid:

slide-24
SLIDE 24

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 2 1 2

Assign

1 11 on each of 11 edges.

Toll paid:

3 11

+ 3

11 + 3 11 = 9 11

Can we do better? Assign 1/2 on these two edges. Toll paid: 1

2 + 1 2 + 1 2

slide-25
SLIDE 25

Another problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 2 1 2

Assign

1 11 on each of 11 edges.

Toll paid:

3 11

+ 3

11 + 3 11 = 9 11

Can we do better? Assign 1/2 on these two edges. Toll paid: 1

2 + 1 2 + 1 2 = 3 2

slide-26
SLIDE 26

Terminology

Routing: Paths p1,p2,...,pk, pi connects si and ti.

slide-27
SLIDE 27

Terminology

Routing: Paths p1,p2,...,pk, pi connects si and ti. Congestion of edge, e: c(e)

slide-28
SLIDE 28

Terminology

Routing: Paths p1,p2,...,pk, pi connects si and ti. Congestion of edge, e: c(e) number of paths in routing that contain e.

slide-29
SLIDE 29

Terminology

Routing: Paths p1,p2,...,pk, pi connects si and ti. Congestion of edge, e: c(e) number of paths in routing that contain e. Congestion of routing:

slide-30
SLIDE 30

Terminology

Routing: Paths p1,p2,...,pk, pi connects si and ti. Congestion of edge, e: c(e) number of paths in routing that contain e. Congestion of routing: maximum congestion of any edge.

slide-31
SLIDE 31

Terminology

Routing: Paths p1,p2,...,pk, pi connects si and ti. Congestion of edge, e: c(e) number of paths in routing that contain e. Congestion of routing: maximum congestion of any edge. Find routing that minimizes congestion (or maximum congestion.)

slide-32
SLIDE 32

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs.

slide-33
SLIDE 33

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3 Assign

1 11 on each of 11 edges.

slide-34
SLIDE 34

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3 Assign

1 11 on each of 11 edges.

Total toll:

slide-35
SLIDE 35

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3 Assign

1 11 on each of 11 edges.

Total toll:

3 11 + 3 11 + 3 11

slide-36
SLIDE 36

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3 Assign

1 11 on each of 11 edges.

Total toll:

3 11 + 3 11 + 3 11 = 9 11

slide-37
SLIDE 37

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3 Assign

1 11 on each of 11 edges.

Total toll:

3 11 + 3 11 + 3 11 = 9 11

Can we do better?

slide-38
SLIDE 38

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 2 1 2

Assign

1 11 on each of 11 edges.

Total toll:

3 11 + 3 11 + 3 11 = 9 11

Can we do better? Assign 1/2 on these two edges.

slide-39
SLIDE 39

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 2 1 2

Assign

1 11 on each of 11 edges.

Total toll:

3 11 + 3 11 + 3 11 = 9 11

Can we do better? Assign 1/2 on these two edges. Total toll:

slide-40
SLIDE 40

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 2 1 2

Assign

1 11 on each of 11 edges.

Total toll:

3 11 + 3 11 + 3 11 = 9 11

Can we do better? Assign 1/2 on these two edges. Total toll: 1

2 + 1 2 + 1 2

slide-41
SLIDE 41

Toll problem.

Given G = (V,E), (s1,t1),...,(sk,tk), find a set of k paths assign one unit of “toll” to edges to maximize total toll for connecting pairs. s1 t1 s2 t2 s3 t3

1 2 1 2

Assign

1 11 on each of 11 edges.

Total toll:

3 11 + 3 11 + 3 11 = 9 11

Can we do better? Assign 1/2 on these two edges. Total toll: 1

2 + 1 2 + 1 2 = 3 2

slide-42
SLIDE 42

Toll: Terminology.

d(e) - toll assigned to edge e.

slide-43
SLIDE 43

Toll: Terminology.

d(e) - toll assigned to edge e.

slide-44
SLIDE 44

Toll: Terminology.

d(e) - toll assigned to edge e. Note: ∑e d(e) = 1.

slide-45
SLIDE 45

Toll: Terminology.

d(e) - toll assigned to edge e. Note: ∑e d(e) = 1. d(p) - total toll assigned to path p.

slide-46
SLIDE 46

Toll: Terminology.

d(e) - toll assigned to edge e. Note: ∑e d(e) = 1. d(p) - total toll assigned to path p. d(u,v) - total assigned to shortest path between u and v.

slide-47
SLIDE 47

Toll: Terminology.

d(e) - toll assigned to edge e. Note: ∑e d(e) = 1. d(p) - total toll assigned to path p. d(u,v) - total assigned to shortest path between u and v. d(x) - polymorpic

slide-48
SLIDE 48

Toll: Terminology.

d(e) - toll assigned to edge e. Note: ∑e d(e) = 1. d(p) - total toll assigned to path p. d(u,v) - total assigned to shortest path between u and v. d(x) - polymorpic x could be edge, path, or pair.

slide-49
SLIDE 49

Toll: Terminology.

d(e) - toll assigned to edge e. Note: ∑e d(e) = 1. d(p) - total toll assigned to path p. d(u,v) - total assigned to shortest path between u and v. d(x) - polymorpic x could be edge, path, or pair.

slide-50
SLIDE 50

Toll: Terminology.

d(e) - toll assigned to edge e. Note: ∑e d(e) = 1. d(p) - total toll assigned to path p. d(u,v) - total assigned to shortest path between u and v. d(x) - polymorpic polymorphic x could be edge, path, or pair.

slide-51
SLIDE 51

Toll is lower bound on Path Routing.

From before: Max bigger than minimum weighted average:

slide-52
SLIDE 52

Toll is lower bound on Path Routing.

From before: Max bigger than minimum weighted average: maxe c(e) ≥ ∑e c(e)d(e) Total length is total congestion:

slide-53
SLIDE 53

Toll is lower bound on Path Routing.

From before: Max bigger than minimum weighted average: maxe c(e) ≥ ∑e c(e)d(e) Total length is total congestion: ∑e c(e)d(e) = ∑i d(pi)

slide-54
SLIDE 54

Toll is lower bound on Path Routing.

From before: Max bigger than minimum weighted average: maxe c(e) ≥ ∑e c(e)d(e) Total length is total congestion: ∑e c(e)d(e) = ∑i d(pi) Each path, pi, in routing has length d(pi) ≥ d(si,ti).

slide-55
SLIDE 55

Toll is lower bound on Path Routing.

From before: Max bigger than minimum weighted average: maxe c(e) ≥ ∑e c(e)d(e) Total length is total congestion: ∑e c(e)d(e) = ∑i d(pi) Each path, pi, in routing has length d(pi) ≥ d(si,ti). max

e

c(e) ≥ ∑

e

c(e)d(e) =∑

i

d(pi) ≥ ∑

i

d(si,ti).

slide-56
SLIDE 56

Toll is lower bound on Path Routing.

From before: Max bigger than minimum weighted average: maxe c(e) ≥ ∑e c(e)d(e) Total length is total congestion: ∑e c(e)d(e) = ∑i d(pi) Each path, pi, in routing has length d(pi) ≥ d(si,ti). max

e

c(e) ≥ ∑

e

c(e)d(e) =∑

i

d(pi) ≥ ∑

i

d(si,ti).

slide-57
SLIDE 57

Toll is lower bound on Path Routing.

From before: Max bigger than minimum weighted average: maxe c(e) ≥ ∑e c(e)d(e) Total length is total congestion: ∑e c(e)d(e) = ∑i d(pi) Each path, pi, in routing has length d(pi) ≥ d(si,ti). max

e

c(e) ≥ ∑

e

c(e)d(e) =∑

i

d(pi) ≥ ∑

i

d(si,ti).

slide-58
SLIDE 58

Toll is lower bound on Path Routing.

From before: Max bigger than minimum weighted average: maxe c(e) ≥ ∑e c(e)d(e) Total length is total congestion: ∑e c(e)d(e) = ∑i d(pi) Each path, pi, in routing has length d(pi) ≥ d(si,ti). max

e

c(e) ≥ ∑

e

c(e)d(e) =∑

i

d(pi) ≥ ∑

i

d(si,ti). A toll solution is lower bound on any routing solution.

slide-59
SLIDE 59

Toll is lower bound on Path Routing.

From before: Max bigger than minimum weighted average: maxe c(e) ≥ ∑e c(e)d(e) Total length is total congestion: ∑e c(e)d(e) = ∑i d(pi) Each path, pi, in routing has length d(pi) ≥ d(si,ti). max

e

c(e) ≥ ∑

e

c(e)d(e) =∑

i

d(pi) ≥ ∑

i

d(si,ti). A toll solution is lower bound on any routing solution. Any routing solution is an upper bound on a toll solution.

slide-60
SLIDE 60

Algorithm.

Assign tolls according to routing.

slide-61
SLIDE 61

Algorithm.

Assign tolls according to routing. How to route?

slide-62
SLIDE 62

Algorithm.

Assign tolls according to routing. How to route? Shortest paths!

slide-63
SLIDE 63

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls.

slide-64
SLIDE 64

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls?

slide-65
SLIDE 65

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls? Higher tolls on congested edges.

slide-66
SLIDE 66

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls? Higher tolls on congested edges. Toll: d(e) =∝ 2c(e).

slide-67
SLIDE 67

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls? Higher tolls on congested edges. Toll: d(e) =∝ 2c(e). ∑e d(e) = 1.

slide-68
SLIDE 68

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls? Higher tolls on congested edges. Toll: d(e) =∝ 2c(e). ∑e d(e) = 1. Equilibrium:

slide-69
SLIDE 69

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls? Higher tolls on congested edges. Toll: d(e) =∝ 2c(e). ∑e d(e) = 1. Equilibrium: The shortest path routing has has d(e) ∝ 2c(e).

slide-70
SLIDE 70

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls? Higher tolls on congested edges. Toll: d(e) =∝ 2c(e). ∑e d(e) = 1. Equilibrium: The shortest path routing has has d(e) ∝ 2c(e). “The routing is stable, the tolls are stable.”

slide-71
SLIDE 71

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls? Higher tolls on congested edges. Toll: d(e) =∝ 2c(e). ∑e d(e) = 1. Equilibrium: The shortest path routing has has d(e) ∝ 2c(e). “The routing is stable, the tolls are stable.” Routing: each path pi in routing is a shortest path w.r.t d(·)

slide-72
SLIDE 72

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls? Higher tolls on congested edges. Toll: d(e) =∝ 2c(e). ∑e d(e) = 1. Equilibrium: The shortest path routing has has d(e) ∝ 2c(e). “The routing is stable, the tolls are stable.” Routing: each path pi in routing is a shortest path w.r.t d(·) Tolls: ...where d(e) is defined w.r.t. to current routing.

slide-73
SLIDE 73

Algorithm.

Assign tolls according to routing. How to route? Shortest paths! Assign routing according to tolls. How to assign tolls? Higher tolls on congested edges. Toll: d(e) =∝ 2c(e). ∑e d(e) = 1. Equilibrium: The shortest path routing has has d(e) ∝ 2c(e). “The routing is stable, the tolls are stable.” Routing: each path pi in routing is a shortest path w.r.t d(·) Tolls: ...where d(e) is defined w.r.t. to current routing. Subtlety here due to ∑e d(e) = 1.

slide-74
SLIDE 74

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

slide-75
SLIDE 75

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e)

slide-76
SLIDE 76

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e) = ∑

e

2c(e) ∑e′ 2c(e′) c(e)

slide-77
SLIDE 77

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e) = ∑

e

2c(e) ∑e′ 2c(e′) c(e) = ∑e 2c(e)c(e) ∑e 2c(e)

slide-78
SLIDE 78

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e) = ∑

e

2c(e) ∑e′ 2c(e′) c(e) = ∑e 2c(e)c(e) ∑e 2c(e)

slide-79
SLIDE 79

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e) = ∑

e

2c(e) ∑e′ 2c(e′) c(e) = ∑e 2c(e)c(e) ∑e 2c(e) Let ct = cmax −2logm. ≥ ∑e:c(e)>ct 2c(e)c(e) ∑e:c(e)>ct 2c(e) + ∑e:c(e)≤ct 2c(e)

slide-80
SLIDE 80

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e) = ∑

e

2c(e) ∑e′ 2c(e′) c(e) = ∑e 2c(e)c(e) ∑e 2c(e) Let ct = cmax −2logm. ≥ ∑e:c(e)>ct 2c(e)c(e) ∑e:c(e)>ct 2c(e) + ∑e:c(e)≤ct 2c(e)

slide-81
SLIDE 81

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

For e with c(e) ≤ cmax −2logm; 2c(e) ≤ 2cmax−2logm = 2cmax

m2 .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e) = ∑

e

2c(e) ∑e′ 2c(e′) c(e) = ∑e 2c(e)c(e) ∑e 2c(e) Let ct = cmax −2logm. ≥ ∑e:c(e)>ct 2c(e)c(e) ∑e:c(e)>ct 2c(e) + ∑e:c(e)≤ct 2c(e) ≥ (ct)∑e:c(e)>ct 2c(e) (1+ 1

m)∑e:c(e)>ct 2c(e)

slide-82
SLIDE 82

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

For e with c(e) ≤ cmax −2logm; 2c(e) ≤ 2cmax−2logm = 2cmax

m2 .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e) = ∑

e

2c(e) ∑e′ 2c(e′) c(e) = ∑e 2c(e)c(e) ∑e 2c(e) Let ct = cmax −2logm. ≥ ∑e:c(e)>ct 2c(e)c(e) ∑e:c(e)>ct 2c(e) + ∑e:c(e)≤ct 2c(e) ≥ (ct)∑e:c(e)>ct 2c(e) (1+ 1

m)∑e:c(e)>ct 2c(e)

≥ (ct) 1+ 1

m

= cmax −2logm (1+ 1

m)

slide-83
SLIDE 83

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

For e with c(e) ≤ cmax −2logm; 2c(e) ≤ 2cmax−2logm = 2cmax

m2 .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e) = ∑

e

2c(e) ∑e′ 2c(e′) c(e) = ∑e 2c(e)c(e) ∑e 2c(e) Let ct = cmax −2logm. ≥ ∑e:c(e)>ct 2c(e)c(e) ∑e:c(e)>ct 2c(e) + ∑e:c(e)≤ct 2c(e) ≥ (ct)∑e:c(e)>ct 2c(e) (1+ 1

m)∑e:c(e)>ct 2c(e)

≥ (ct) 1+ 1

m

= cmax −2logm (1+ 1

m)

Or cmax ≤ (1+ 1

m)copt +2logm.

slide-84
SLIDE 84

How good is equilibrium?

Path is routed along shortest path and d(e) =

2c(e) ∑e′ 2c(e′) .

For e with c(e) ≤ cmax −2logm; 2c(e) ≤ 2cmax−2logm = 2cmax

m2 .

copt ≥ ∑

i

d(si,ti) = ∑

e

d(e)c(e) = ∑

e

2c(e) ∑e′ 2c(e′) c(e) = ∑e 2c(e)c(e) ∑e 2c(e) Let ct = cmax −2logm. ≥ ∑e:c(e)>ct 2c(e)c(e) ∑e:c(e)>ct 2c(e) + ∑e:c(e)≤ct 2c(e) ≥ (ct)∑e:c(e)>ct 2c(e) (1+ 1

m)∑e:c(e)>ct 2c(e)

≥ (ct) 1+ 1

m

= cmax −2logm (1+ 1

m)

Or cmax ≤ (1+ 1

m)copt +2logm.

(Almost) within additive term of 2logm of optimal!

slide-85
SLIDE 85

Getting to equilibrium.

Maybe no equilibrium!

slide-86
SLIDE 86

Getting to equilibrium.

Maybe no equilibrium! Approximate equilibrium:

slide-87
SLIDE 87

Getting to equilibrium.

Maybe no equilibrium! Approximate equilibrium: Each path is routed along a path with length within a factor of 3 of the shortest path and d(e) ∝ 2c(e).

slide-88
SLIDE 88

Getting to equilibrium.

Maybe no equilibrium! Approximate equilibrium: Each path is routed along a path with length within a factor of 3 of the shortest path and d(e) ∝ 2c(e). Lose a factor of three at the beginning.

slide-89
SLIDE 89

Getting to equilibrium.

Maybe no equilibrium! Approximate equilibrium: Each path is routed along a path with length within a factor of 3 of the shortest path and d(e) ∝ 2c(e). Lose a factor of three at the beginning. copt ≥ ∑i d(si,ti) ≥ 1

3 ∑e d(pi)

slide-90
SLIDE 90

Getting to equilibrium.

Maybe no equilibrium! Approximate equilibrium: Each path is routed along a path with length within a factor of 3 of the shortest path and d(e) ∝ 2c(e). Lose a factor of three at the beginning. copt ≥ ∑i d(si,ti) ≥ 1

3 ∑e d(pi) = 1 3 ∑e d(e)c(e)

slide-91
SLIDE 91

Getting to equilibrium.

Maybe no equilibrium! Approximate equilibrium: Each path is routed along a path with length within a factor of 3 of the shortest path and d(e) ∝ 2c(e). Lose a factor of three at the beginning. copt ≥ ∑i d(si,ti) ≥ 1

3 ∑e d(pi) = 1 3 ∑e d(e)c(e)

We obtain cmax = 3(1+ 1

m)copt +2logm.

slide-92
SLIDE 92

Getting to equilibrium.

Maybe no equilibrium! Approximate equilibrium: Each path is routed along a path with length within a factor of 3 of the shortest path and d(e) ∝ 2c(e). Lose a factor of three at the beginning. copt ≥ ∑i d(si,ti) ≥ 1

3 ∑e d(pi) = 1 3 ∑e d(e)c(e)

We obtain cmax = 3(1+ 1

m)copt +2logm.

This is worse!

slide-93
SLIDE 93

Getting to equilibrium.

Maybe no equilibrium! Approximate equilibrium: Each path is routed along a path with length within a factor of 3 of the shortest path and d(e) ∝ 2c(e). Lose a factor of three at the beginning. copt ≥ ∑i d(si,ti) ≥ 1

3 ∑e d(pi) = 1 3 ∑e d(e)c(e)

We obtain cmax = 3(1+ 1

m)copt +2logm.

This is worse! What do we gain?

slide-94
SLIDE 94

An algorithm!

slide-95
SLIDE 95

An algorithm!

Repeat: reroute any path that is off by a factor of 3.

slide-96
SLIDE 96

An algorithm!

Repeat: reroute any path that is off by a factor of 3. (Note: d(e) recomputed every rerouting.)

slide-97
SLIDE 97

An algorithm!

Repeat: reroute any path that is off by a factor of 3. (Note: d(e) recomputed every rerouting.) si ti p: w(p) = X p′: w(p′) ≤ X/3

slide-98
SLIDE 98

An algorithm!

Repeat: reroute any path that is off by a factor of 3. (Note: d(e) recomputed every rerouting.) si ti p: w(p) = X p′: w(p′) ≤ X/3 Potential function: ∑e w(e), w(e) = 2c(e)

slide-99
SLIDE 99

An algorithm!

Repeat: reroute any path that is off by a factor of 3. (Note: d(e) recomputed every rerouting.) si ti p: w(p) = X = ⇒ w′(p) = X/2 −1 for c(e) p′: w(p′) ≤ X/3 Potential function: ∑e w(e), w(e) = 2c(e) Moving path:

slide-100
SLIDE 100

An algorithm!

Repeat: reroute any path that is off by a factor of 3. (Note: d(e) recomputed every rerouting.) si ti p: w(p) = X = ⇒ w′(p) = X/2 −1 for c(e) +1 for c(e) p′: w(p′) ≤ X/3 = ⇒ w′(p′) ≤ 2X/3 Potential function: ∑e w(e), w(e) = 2c(e) Moving path: Divides w(e) along long path (with w(p) of X) by two.

slide-101
SLIDE 101

An algorithm!

Repeat: reroute any path that is off by a factor of 3. (Note: d(e) recomputed every rerouting.) si ti p: w(p) = X = ⇒ w′(p) = X/2 −1 for c(e) +1 for c(e) p′: w(p′) ≤ X/3 = ⇒ w′(p′) ≤ 2X/3 Potential function: ∑e w(e), w(e) = 2c(e) Moving path: Divides w(e) along long path (with w(p) of X) by two. Multiplies w(e) along shorter (w(p) ≤ X/3) path by two.

slide-102
SLIDE 102

An algorithm!

Repeat: reroute any path that is off by a factor of 3. (Note: d(e) recomputed every rerouting.) si ti p: w(p) = X = ⇒ w′(p) = X/2 −1 for c(e) +1 for c(e) p′: w(p′) ≤ X/3 = ⇒ w′(p′) ≤ 2X/3 Potential function: ∑e w(e), w(e) = 2c(e) Moving path: Divides w(e) along long path (with w(p) of X) by two. Multiplies w(e) along shorter (w(p) ≤ X/3) path by two. − X

2 + X 3 = − X 6 .

slide-103
SLIDE 103

An algorithm!

Repeat: reroute any path that is off by a factor of 3. (Note: d(e) recomputed every rerouting.) si ti p: w(p) = X = ⇒ w′(p) = X/2 −1 for c(e) +1 for c(e) p′: w(p′) ≤ X/3 = ⇒ w′(p′) ≤ 2X/3 Potential function: ∑e w(e), w(e) = 2c(e) Moving path: Divides w(e) along long path (with w(p) of X) by two. Multiplies w(e) along shorter (w(p) ≤ X/3) path by two. − X

2 + X 3 = − X 6 .

Potential function decreases.

slide-104
SLIDE 104

An algorithm!

Repeat: reroute any path that is off by a factor of 3. (Note: d(e) recomputed every rerouting.) si ti p: w(p) = X = ⇒ w′(p) = X/2 −1 for c(e) +1 for c(e) p′: w(p′) ≤ X/3 = ⇒ w′(p′) ≤ 2X/3 Potential function: ∑e w(e), w(e) = 2c(e) Moving path: Divides w(e) along long path (with w(p) of X) by two. Multiplies w(e) along shorter (w(p) ≤ X/3) path by two. − X

2 + X 3 = − X 6 .

Potential function decreases. = ⇒ termination and existence.

slide-105
SLIDE 105

Tuning...

slide-106
SLIDE 106

Tuning...

Replace d(e) = (1+ε)c(e).

slide-107
SLIDE 107

Tuning...

Replace d(e) = (1+ε)c(e). Replace factor of 3 by (1+2ε)

slide-108
SLIDE 108

Tuning...

Replace d(e) = (1+ε)c(e). Replace factor of 3 by (1+2ε) cmax ≤ (1+2ε)copt +2logm/ε.. (Roughly)

slide-109
SLIDE 109

Tuning...

Replace d(e) = (1+ε)c(e). Replace factor of 3 by (1+2ε) cmax ≤ (1+2ε)copt +2logm/ε.. (Roughly) Fractional paths?

slide-110
SLIDE 110

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e).

slide-111
SLIDE 111

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on congested edges.

slide-112
SLIDE 112

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on congested edges. Routing player routes on only cheap paths.

slide-113
SLIDE 113

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

i

d(si,ti) =

slide-114
SLIDE 114

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths.

i

d(si,ti) = ∑

i

d(pi)

slide-115
SLIDE 115

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e)

slide-116
SLIDE 116

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch d(e) ≥ 0.

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e) =

e:d(e)>0

c(e)d(e)

slide-117
SLIDE 117

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch d(e) ≥ 0. Only Toll on max congestion.

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e) =

e:d(e)>0

c(e)d(e) =

e:d(e)>0

d(e)(max

e

c(e))

slide-118
SLIDE 118

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch d(e) ≥ 0. Only Toll on max congestion. ∑e d(e) = 1

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e) =

e:d(e)>0

c(e)d(e) =

e:d(e)>0

d(e)(max

e

c(e)) = max

e

c(e)

slide-119
SLIDE 119

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch d(e) ≥ 0. Only Toll on max congestion. ∑e d(e) = 1

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e) =

e:d(e)>0

c(e)d(e) =

e:d(e)>0

d(e)(max

e

c(e)) = max

e

c(e)

slide-120
SLIDE 120

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch d(e) ≥ 0. Only Toll on max congestion. ∑e d(e) = 1

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e) =

e:d(e)>0

c(e)d(e) =

e:d(e)>0

d(e)(max

e

c(e)) = max

e

c(e) Any routing solution value ≥ Any toll solution value.

slide-121
SLIDE 121

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch d(e) ≥ 0. Only Toll on max congestion. ∑e d(e) = 1

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e) =

e:d(e)>0

c(e)d(e) =

e:d(e)>0

d(e)(max

e

c(e)) = max

e

c(e) Any routing solution value ≥ Any toll solution value. Both these solutions are optimal!!!!!

slide-122
SLIDE 122

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch d(e) ≥ 0. Only Toll on max congestion. ∑e d(e) = 1

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e) =

e:d(e)>0

c(e)d(e) =

e:d(e)>0

d(e)(max

e

c(e)) = max

e

c(e) Any routing solution value ≥ Any toll solution value. Both these solutions are optimal!!!!! Complementary slackness.

slide-123
SLIDE 123

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch d(e) ≥ 0. Only Toll on max congestion. ∑e d(e) = 1

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e) =

e:d(e)>0

c(e)d(e) =

e:d(e)>0

d(e)(max

e

c(e)) = max

e

c(e) Any routing solution value ≥ Any toll solution value. Both these solutions are optimal!!!!! Complementary slackness. Why all the mess before?

slide-124
SLIDE 124

Revisit Equilibrium.

Solution Pair: ({pi},d(˙ )). Toll Solution Value: ∑i d(si,ti). Path Routing Value: maxe c(e). Toll player assigns toll on only maximally congested edges. Routing player routes on only cheapest paths.

Routing R uses shortest paths. Summation Switch d(e) ≥ 0. Only Toll on max congestion. ∑e d(e) = 1

i

d(si,ti) = ∑

i

d(pi) = ∑

e

c(e)d(e) =

e:d(e)>0

c(e)d(e) =

e:d(e)>0

d(e)(max

e

c(e)) = max

e

c(e) Any routing solution value ≥ Any toll solution value. Both these solutions are optimal!!!!! Complementary slackness. Why all the mess before? To get an algorithm!

slide-125
SLIDE 125

Algorithm:exact?

s t

slide-126
SLIDE 126

Algorithm:exact?

s t Not shortest when tolls on top.

slide-127
SLIDE 127

Algorithm:exact?

s t Not shortest when tolls on top. Hmmm...

slide-128
SLIDE 128

Algorithm:exact?

s t Not shortest when tolls on top. Hmmm... Uh oh?

slide-129
SLIDE 129

Algorithm:exact?

s t Not shortest when tolls on top. Hmmm... Uh oh? Route half a unit on both!

slide-130
SLIDE 130

Algorithm:exact?

s t Not shortest when tolls on top. Hmmm... Uh oh? Route half a unit on both! Hey! Fractional!

slide-131
SLIDE 131

Algorithm:exact?

s t Not shortest when tolls on top. Hmmm... Uh oh? Route half a unit on both! Hey! Fractional! Use previous algorithms but route two paths between each pair.

slide-132
SLIDE 132

Algorithm:exact?

s t Not shortest when tolls on top. Hmmm... Uh oh? Route half a unit on both! Hey! Fractional! Use previous algorithms but route two paths between each pair. Half integral!

slide-133
SLIDE 133

Algorithm:exact?

s t Not shortest when tolls on top. Hmmm... Uh oh? Route half a unit on both! Hey! Fractional! Use previous algorithms but route two paths between each pair. Half integral! Optimality: (3)Cmax +2logm/2.

slide-134
SLIDE 134

Algorithm:exact?

s t Not shortest when tolls on top. Hmmm... Uh oh? Route half a unit on both! Hey! Fractional! Use previous algorithms but route two paths between each pair. Half integral! Optimality: (3)Cmax +2logm/2. Additive factor shrinking!

slide-135
SLIDE 135

Algorithm:exact?

s t Not shortest when tolls on top. Hmmm... Uh oh? Route half a unit on both! Hey! Fractional! Use previous algorithms but route two paths between each pair. Half integral! Optimality: (3)Cmax +2logm/2. Additive factor shrinking! The 3 can be made (1+ε) using different base!

slide-136
SLIDE 136

Geometrical view.

x = .5 maxe c(e)

slide-137
SLIDE 137

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e).

slide-138
SLIDE 138

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e).

slide-139
SLIDE 139

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e). Minimize new function.

slide-140
SLIDE 140

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e). Minimize new function. Gradient descent.

slide-141
SLIDE 141

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e). Minimize new function. Gradient descent. Stepsize=1.

slide-142
SLIDE 142

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e). Minimize new function. Gradient descent. Stepsize=1. Back and forth!

slide-143
SLIDE 143

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e). Minimize new function. Gradient descent. Stepsize=1. Back and forth!

slide-144
SLIDE 144

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e). Minimize new function. Gradient descent. Stepsize=1. Back and forth! Stepsize=.5.

slide-145
SLIDE 145

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e). Minimize new function. Gradient descent. Stepsize=1. Back and forth! Stepsize=.5. Back and forth

slide-146
SLIDE 146

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e). Minimize new function. Gradient descent. Stepsize=1. Back and forth! Stepsize=.5. Back and forth ...but closer to minimum.

slide-147
SLIDE 147

Geometrical view.

x = .5 maxe c(e) ∑e 2c(e)

Smooth: use ∑e 2c(e) as a proxy for maxe c(e). Minimize new function. Gradient descent. Stepsize=1. Back and forth! Stepsize=.5. Back and forth ...but closer to minimum.

slide-148
SLIDE 148

Wrap up.

Dueling players:

slide-149
SLIDE 149

Wrap up.

Dueling players: Toll player raises tolls on congested edges.

slide-150
SLIDE 150

Wrap up.

Dueling players: Toll player raises tolls on congested edges. Congestion player avoids tolls.

slide-151
SLIDE 151

Wrap up.

Dueling players: Toll player raises tolls on congested edges. Congestion player avoids tolls. Converges to near optimal solution!

slide-152
SLIDE 152

Wrap up.

Dueling players: Toll player raises tolls on congested edges. Congestion player avoids tolls. Converges to near optimal solution! A lower bound is “necessary” (natural),

slide-153
SLIDE 153

Wrap up.

Dueling players: Toll player raises tolls on congested edges. Congestion player avoids tolls. Converges to near optimal solution! A lower bound is “necessary” (natural), and helpful (mysterious?)!

slide-154
SLIDE 154

Wrap up.

Dueling players: Toll player raises tolls on congested edges. Congestion player avoids tolls. Converges to near optimal solution! A lower bound is “necessary” (natural), and helpful (mysterious?)! Geometric View: Smooth. Gradient Descent. Stepsize.