introduction to algorithms - duke...

45
Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE 15 Shortest Paths II Bellman-Ford algorithm DAG shortest paths Linear programming and difference constraints VLSI layout compaction h a ’s ch h a ’s ch

Upload: others

Post on 15-Mar-2020

18 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms6.046J/18.401J

Prof. Charles E. Leiserson

LECTURE 15Shortest Paths II• Bellman-Ford algorithm• DAG shortest paths• Linear programming and

difference constraints• VLSI layout compaction

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛⎞⎟⎟

r ∑ ⋅ ( x0 − y 0 − ) 1

⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 =

Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson 

L7.15 

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛⎞⎟⎟

r ∑ ⋅ ( x0 − y 0 − ) 1

⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 =

Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson 

L7.15 

Page 2: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.2© 2001–4 by Charles E. Leiserson

Negative-weight cyclesRecall: If a graph G = (V, E) contains a negative-weight cycle, then some shortest paths may not exist.Example:

uu vv

< 0 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 3: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.3© 2001–4 by Charles E. Leiserson

Negative-weight cyclesRecall: If a graph G = (V, E) contains a negative-weight cycle, then some shortest paths may not exist.Example:

uu vv

< 0

Bellman-Ford algorithm: Finds all shortest-path lengths from a source s ∈ V to all v ∈ V or determines that a negative-weight cycle exists.

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 4: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.4© 2001–4 by Charles E. Leiserson

Bellman-Ford algorithmd[s] ← 0for each v ∈ V – {s}

do d[v] ←∞

for i ← 1 to |V| – 1do for each edge (u, v) ∈ E

do if d[v] > d[u] + w(u, v)then d[v] ← d[u] + w(u, v)

for each edge (u, v) ∈ Edo if d[v] > d[u] + w(u, v)

then report that a negative-weight cycle exists

initialization

At the end, d[v] = δ(s, v), if no negative-weight cycles. Time = O(VE).

relaxation step Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 5: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.5© 2001–4 by Charles E. Leiserson

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

3 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 6: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.6© 2001–4 by Charles E. Leiserson

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

3

0 ∞

∞ ∞

Initialization.

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 7: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.7© 2001–4 by Charles E. Leiserson

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

3

0 ∞

∞ ∞

1

2

34

5

7

8

Order of edge relaxation.

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 8: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.8© 2001–4 by Charles E. Leiserson

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

3

0 ∞

∞ ∞

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 9: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.9© 2001–4 by Charles E. Leiserson

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

3

0 ∞

∞ ∞

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 10: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.10© 2001–4 by Charles E. Leiserson

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

3

0 ∞

∞ ∞

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 11: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.11© 2001–4 by Charles E. Leiserson

∞−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30 ∞

∞ ∞

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 12: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.12© 2001–4 by Charles E. Leiserson

∞4

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30 ∞

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 13: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.13© 2001–4 by Charles E. Leiserson

4

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30 ∞

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 14: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.14© 2001–4 by Charles E. Leiserson

42

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30 ∞

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 15: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.15© 2001–4 by Charles E. Leiserson

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30 ∞

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 16: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.16© 2001–4 by Charles E. Leiserson

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30 ∞

1

2

34

5

7

8

End of pass 1.

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 17: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.17© 2001–4 by Charles E. Leiserson

∞1

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 18: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.18© 2001–4 by Charles E. Leiserson

1

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 19: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.19© 2001–4 by Charles E. Leiserson

∞1

1

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 20: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.20© 2001–4 by Charles E. Leiserson

1

1

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 21: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.21© 2001–4 by Charles E. Leiserson

1

1

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 22: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.22© 2001–4 by Charles E. Leiserson

1

1

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 23: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.23© 2001–4 by Charles E. Leiserson

1

1

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 24: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.24© 2001–4 by Charles E. Leiserson

1−2

1

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30

1

2

34

5

7

8

6 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 25: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.25© 2001–4 by Charles E. Leiserson

−2

1

2

−1

Example of Bellman-Ford

AA

BB

EE

CC DD

–1

4

12

–3

2

5

30

1

2

34

5

7

8

6

End of pass 2 (and 3 and 4).

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 26: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.26© 2001–4 by Charles E. Leiserson

CorrectnessTheorem. If G = (V, E) contains no negative-weight cycles, then after the Bellman-Ford algorithm executes, d[v] = δ(s, v) for all v ∈ V. Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 27: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.27© 2001–4 by Charles E. Leiserson

CorrectnessTheorem. If G = (V, E) contains no negative-weight cycles, then after the Bellman-Ford algorithm executes, d[v] = δ(s, v) for all v ∈ V. Proof. Let v ∈ V be any vertex, and consider a shortest path p from s to v with the minimum number of edges.

v1v1

v2v2

v3v3 vk

vkv0v0

…s

v

p:

Since p is a shortest path, we haveδ(s, vi) = δ(s, vi–1) + w(vi–1, vi) .

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 28: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.28© 2001–4 by Charles E. Leiserson

Correctness (continued)

v1v1

v2v2

v3v3 vk

vkv0v0

…s

v

p:

Initially, d[v0] = 0 = δ(s, v0), and d[v0] is unchanged by subsequent relaxations (because of the lemma from Lecture 14 that d[v] ≥ δ(s, v)).• After 1 pass through E, we have d[v1] = δ(s, v1).• After 2 passes through E, we have d[v2] = δ(s, v2).M

• After k passes through E, we have d[vk] = δ(s, vk).Since G contains no negative-weight cycles, p is simple. Longest simple path has ≤ |V| – 1 edges.

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 29: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.29© 2001–4 by Charles E. Leiserson

Detection of negative-weight cycles

Corollary. If a value d[v] fails to converge after |V| – 1 passes, there exists a negative-weight cycle in G reachable from s. Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 30: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.30© 2001–4 by Charles E. Leiserson

Linear programming

Let A be an m×n matrix, b be an m-vector, and cbe an n-vector. Find an n-vector x that maximizes cTx subject to Ax ≤ b, or determine that no such solution exists.

. ≤ .maximizingm

n

A x ≤ b cT x

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 31: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.31© 2001–4 by Charles E. Leiserson

Linear-programming algorithms

Algorithms for the general problem• Simplex methods — practical, but worst-case

exponential time.• Interior-point methods — polynomial time and

competes with simplex. Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 32: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.32© 2001–4 by Charles E. Leiserson

Linear-programming algorithms

Algorithms for the general problem• Simplex methods — practical, but worst-case

exponential time.• Interior-point methods — polynomial time and

competes with simplex.

Feasibility problem: No optimization criterion. Just find x such that Ax ≤ b.• In general, just as hard as ordinary LP.

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 33: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.33© 2001–4 by Charles E. Leiserson

Solving a system of difference constraints

Linear programming where each row of A contains exactly one 1, one –1, and the rest 0’s. Example:

x1 – x2 ≤ 3x2 – x3 ≤ –2x1 – x3 ≤ 2

xj – xi ≤ wij Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 34: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.34© 2001–4 by Charles E. Leiserson

Solving a system of difference constraints

Linear programming where each row of A contains exactly one 1, one –1, and the rest 0’s. Example:

x1 – x2 ≤ 3x2 – x3 ≤ –2x1 – x3 ≤ 2

xj – xi ≤ wij

Solution:x1 = 3x2 = 0x3 = 2 Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 35: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.35© 2001–4 by Charles E. Leiserson

Solving a system of difference constraints

Linear programming where each row of A contains exactly one 1, one –1, and the rest 0’s. Example:

x1 – x2 ≤ 3x2 – x3 ≤ –2x1 – x3 ≤ 2

xj – xi ≤ wij

Solution:x1 = 3x2 = 0x3 = 2

Constraint graph:

vjvjvi

vixj – xi ≤ wijwij

(The “A”matrix has dimensions|E | × |V |.)

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 36: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.36© 2001–4 by Charles E. Leiserson

Unsatisfiable constraintsTheorem. If the constraint graph contains a negative-weight cycle, then the system of differences is unsatisfiable. Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 37: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.37© 2001–4 by Charles E. Leiserson

Unsatisfiable constraintsTheorem. If the constraint graph contains a negative-weight cycle, then the system of differences is unsatisfiable.Proof. Suppose that the negative-weight cycle is v1 → v2 →L→ vk → v1. Then, we have

x2 – x1 ≤ w12x3 – x2 ≤ w23

Mxk – xk–1 ≤ wk–1, kx1 – xk ≤ wk1

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 38: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.38© 2001–4 by Charles E. Leiserson

Unsatisfiable constraintsTheorem. If the constraint graph contains a negative-weight cycle, then the system of differences is unsatisfiable.Proof. Suppose that the negative-weight cycle is v1 → v2 →L→ vk → v1. Then, we have

x2 – x1 ≤ w12x3 – x2 ≤ w23

Mxk – xk–1 ≤ wk–1, kx1 – xk ≤ wk1

Therefore, no values for the xican satisfy the constraints.

0 ≤ weight of cycle< 0

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 39: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.39© 2001–4 by Charles E. Leiserson

Satisfying the constraintsTheorem. Suppose no negative-weight cycle exists in the constraint graph. Then, the constraints are satisfiable. Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 40: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.40© 2001–4 by Charles E. Leiserson

Satisfying the constraintsTheorem. Suppose no negative-weight cycle exists in the constraint graph. Then, the constraints are satisfiable.Proof. Add a new vertex s to V with a 0-weight edge to each vertex vi ∈ V.

v1v1

v4v4

v7v7

v9v9

v3v3

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 41: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.41© 2001–4 by Charles E. Leiserson

Satisfying the constraintsTheorem. Suppose no negative-weight cycle exists in the constraint graph. Then, the constraints are satisfiable.Proof. Add a new vertex s to V with a 0-weight edge to each vertex vi ∈ V.

v1v1

v4v4

v7v7

v9v9

v3v3

s

0 Note:No negative-weight cycles introduced ⇒shortest paths exist.

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 42: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.42© 2001–4 by Charles E. Leiserson

The triangle inequality gives us δ(s,vj) ≤ δ(s, vi) + wij. Since xi = δ(s, vi) and xj = δ(s, vj), the constraint xj – xi≤ wij is satisfied.

Proof (continued)Claim: The assignment xi = δ(s, vi) solves the constraints.

ss

vjvj

vivi

δ(s, vi)

δ(s, vj) wij

Consider any constraint xj – xi ≤ wij, and consider the shortest paths from s to vj and vi: Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 43: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.43© 2001–4 by Charles E. Leiserson

Bellman-Ford and linear programming

Corollary. The Bellman-Ford algorithm can solve a system of m difference constraints on nvariables in O(mn) time. Single-source shortest paths is a simple LP problem.In fact, Bellman-Ford maximizes x1 + x2 + L + xnsubject to the constraints xj – xi ≤ wij and xi ≤ 0(exercise).Bellman-Ford also minimizes maxi{xi} – mini{xi}(exercise).

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 44: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.44© 2001–4 by Charles E. Leiserson

Application to VLSI layout compaction

Integrated-circuit features:

Problem: Compact (in one dimension) the space between the features of a VLSI layout without bringing any features too close together.

minimum separation λ Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15 

Page 45: Introduction to Algorithms - Duke Universityreif/courses/alglectures/indyk.lectures/lecture_15.pdf · Introduction to Algorithms 6.046J/18.401J Prof. Charles E. Leiserson LECTURE

Introduction to Algorithms November 3, 2004 L15.45© 2001–4 by Charles E. Leiserson

VLSI layout compaction

11

x1 x2

2

d1

Constraint: x2 – x1 ≥ d1 + λBellman-Ford minimizes maxi{xi} – mini{xi}, which compacts the layout in the x-dimension.

Proof (completed)

Q. How many ha ’s cause x and y to collide? A. There are m choices for each of a1 , a2 , …, ar  , but once these are chosen, exactly one choice for a0  causes x and y to collide, namely 

⎛ ⎞⎟⎟

⎛ ⎞⎟⎟ r ∑ ⋅ ( x0 − y 0 − ) 1 ⎜⎜⎝ ⎜⎜ =− ai ( xi − y i ) mod  m .

a0 ⎠

⎝⎠

i 1 = Thus, the number of h ’s that cause x and y a

to collide is m r ·1 = m r = |H|/m. 

October 5, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L7.15