all pair shortest path l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
All Pair Shortest Path PowerPoint Presentation
Download Presentation
All Pair Shortest Path

Loading in 2 Seconds...

play fullscreen
1 / 61

All Pair Shortest Path - PowerPoint PPT Presentation


  • 490 Views
  • Uploaded on

All Pair Shortest Path. IOI/ACM ICPC Training June 2004. All Pair Shortest Path. Note: Dijkstra ’ s Algorithm takes O((V+E)logV) time All Pair Shortest Path Problem can be solved by executing Dijkstra ’ s Algorithm |V| times Running Time: O(V(V+E)log V) Floyd-Warshall Algorithm: O(V 3 ).

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'All Pair Shortest Path' - avent


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
all pair shortest path

All Pair Shortest Path

IOI/ACM ICPC Training

June 2004

all pair shortest path2
All Pair Shortest Path
  • Note: Dijkstra’s Algorithm takes O((V+E)logV) time
  • All Pair Shortest Path Problem can be solved by executing Dijkstra’s Algorithm |V| times
  • Running Time: O(V(V+E)log V)
  • Floyd-Warshall Algorithm: O(V3)
slide3
Idea
  • Label the vertices with integers 1..n
  • Restrict the shortest paths from i to j to consist of vertices 1..k only (except i and j)
  • Iteratively relax k from 1 to n.

k

j

i

definition
Definition
  • Find shortest distance from i to j using vertices 1 .. k only

k

j

i

example
Example

2

4

2

4

1

1

1

3

3

5

1

3

5

1

i 4 j 5 k 0
i = 4, j = 5, k = 0

2

4

2

4

1

1

1

3

3

5

1

3

5

1

i 4 j 5 k 1
i = 4, j = 5, k = 1

2

4

2

4

1

1

1

3

3

5

1

3

5

1

i 4 j 5 k 2
i = 4, j = 5, k = 2

2

4

2

4

1

1

1

3

3

5

1

3

5

1

i 4 j 5 k 3
i = 4, j = 5, k = 3

2

4

2

4

1

1

1

1

3

5

1

3

5

1

slide10
Idea

k

j

i

the tables
The tables

i

k

i

j

j

k

k=4

k=5

the code
The code

for i = 1 to |V|

for j = 1 to |V|

a[i][j][0] = cost(i,j)

for k = 1 to |V|

for i = 1 to |V|

for j = 1 to |V|

a[i][j][k] = min( a[i][j][k-1],

a[i][k][k-1] + a[k][j][k-1])

topological sort

Topological sort

IOI/ACM ICPC Training

June 2004

topological order

b

d

a

c

e

Topological order
  • Consider the prerequisite structure for courses:
  • Each node x represents a course x
  • (x, y) represents that course x is a prerequisite to course y
  • Note that this graph should be a directed graph without cycles.
  • A linear order to take all 5 courses while satisfying all prerequisites is called a topological order.
  • E.g.
    • a, c, b, e, d
    • c, a, b, e, d
topological sort15
Topological sort
  • Arranging all nodes in the graph in a topological order
  • Applications:
    • Schedule tasks associated with a project
topological sort algorithm
Topological sort algorithm

Algorithm topSort1

n = |V|;

Let R[0..n-1] be the result array;

for i = 1 to n {

select a node v that has no successor;

R[n-i] = v;

delete node v and its edges from the graph;

}

return R;

example17

b

a

c

e

  • d has no successor! Choose d!
  • Both b and e have no successor! Choose e!

b

b

d

b

a

a

a

a

c

c

e

  • Both b and c have no successor! Choose c!
  • Only b has no successor! Choose b!
  • Choose a!
  • The topological order is a,b,c,e,d
Example
time analysis
Time analysis
  • Finding a node with no successor takes O(|V|+|E|) time.
  • We need to repeat this process |V| times.
  • Total time = O(|V|2 + |V| |E|).
  • We can implement the above process using DFS. The time can be improved to O(|V| + |E|).
algorithm based on dfs
Algorithm based on DFS

Algorithm topSort2

s.createStack();

for (all nodes v in the graph) {

if (v has no predecessors) {

s.push(v);

mark v as visited;

}

}

while (s is not empty) {

let v be the node on the top of the stack s;

if (no unvisited nodes are children to v) {// i.e. v has no unvisited successor

aList.add(1, v);

s.pop();// blacktrack

} else {

select an unvisited child u of v;

s.push(u);

mark u as visited;

}

}

return aList;

bipartite matching

Bipartite Matching

IOI/ACM ICPC Training

June 2004

definitions
Definitions

Matching

Free Vertex

definitions23
Definitions
  • Maximum Matching: matching with the largest number of edges
definition24
Definition
  • Note that maximum matching is not unique.
intuition
Intuition
  • Let the top set of vertices be men
  • Let the bottom set of vertices be women
  • Suppose each edge represents a pair of man and woman who like each other
  • Maximum matching tries to maximize the number of couples!
applications
Applications
  • Matching has many applications. For examples,
    • Comparing Evolutionary Trees
    • Finding RNA structure
  • This lecture lets you know how to find maximum matching.
alternating path
Alternating Path
  • Alternating between matching and non-matching edges.

a

c

d

e

b

f

h

i

j

g

d-h-e: alternating path

a-f-b-h-d-i: alternating path starts and ends with free vertices

f-b-h-e: not alternating path

e-j: alternating path starts and ends with free vertices

slide28
Idea
  • “Flip” augmenting path to get better matching
  • Note: After flipping, the number of matched edges will increase by 1!

slide29
Idea
  • Theorem (Berge 1975):

A matching M in G is maximum iffThere is no augmenting path

Proof:

  • () If there is an augmenting path, clearly not maximum. (Flip matching and non-matching edges in that path to get a “better” matching!)
proof for the other direction
Proof for the other direction
  • () Suppose M is not maximum. Let M’ be a maximum matching such that |M’|>|M|.
  • Consider H = MM’ = (MM’)-(MM’)i.e. a set of edges in M or M’ but not both
  • H has two properties:
    • Within H, number of edges belong to M’ > number of edges belong to M.
    • H can be decomposed into a set of paths. All paths should be alternating between edges in M and M’.
  • There should exist a path with more edges from M’. Also, it is alternating.
idea of algorithm
Idea of Algorithm
  • Start with an arbitrary matching
  • While we still can find an augmenting path
    • Find the augmenting path P
    • Flip the edges in P
labelling algorithm
Labelling Algorithm
  • Start with arbitrary matching
labelling algorithm33
Labelling Algorithm
  • Pick a free vertex in the bottom
labelling algorithm35
Labelling Algorithm
  • Alternate unmatched/matched edges
labelling algorithm36
Labelling Algorithm
  • Until a augmenting path is found
repeat
Repeat
  • Pick another free vertex in the bottom
repeat40
Repeat
  • Run BFS
answer
Answer
  • Since we cannot find any augmenting path, stop!
overall algorithm
Overall algorithm
  • Start with an arbitrary matching (e.g., empty matching)
  • Repeat forever
    • For all free vertices in the bottom,
      • do bfs to find augmenting paths
    • If found, then flip the edges
    • If fail to find, stop and report the maximum matching.
time analysis44
Time analysis
  • We can find at most |V| augmenting paths (why?)
  • To find an augmenting path, we use bfs! Time required = O( |V| + |E| )
  • Total time: O(|V|2 + |V| |E|)
improvement
Improvement
  • We can try to find augmenting paths in parallel for all free nodes in every iteration.
  • Using such approach, the time complexity is improved to O(|V|0.5 |E|)
weighted matching
Weighted Matching

Score: 6+3+1=10

3

4

6

6

maximum weighted matching
Maximum Weighted Matching

Score: 6+1+1+1+4=13

3

4

6

6

augmenting path change of definition
Augmenting Path (change of definition)
  • Any alternating path such that total score of unmatched edges > that of matched edges
  • The score of the augmenting path is
    • Score of unmatched edges – that of matched edges

3

4

6

6

Note: augmenting path need not start and end at free vertices!

idea for finding maximum weight matching
Idea for finding maximum weight matching
  • Theorem: Let M be a matching of maximum weight among matchings of size |M|.
    • If P is an augmenting path for M of maximum weight,
    • Then, the matching formed by augmenting M by P is a matching of maximum weight among matchings of size |M|+1.
overall algorithm51
Overall Algorithm
  • Start with an empty matching
  • Repeat forever
    • Find an augmenting path P with maximum score
    • If the score > 0, then flip the edges
    • Otherwise, stop and report the maximum weight matching.
time analysis52
Time analysis
  • The same!
  • Time required = O(|V|2 + |V| |E|)
stable marriage problem

Stable Marriage Problem

IOI/ACM ICPC Training

June 2004

stable marriage problem54
Stable Marriage Problem
  • Given N men and N women, each person list in order of preference all the people of the opposite sex who would like to marry.
  • Problem:
    • Engage all the women to all the men in such a way as to respect all their preferences as much as possible.
stable

A

B

C

D

E

1

2

3

4

5

2

1

2

1

5

E

D

A

C

D

5

2

3

3

3

A

E

D

B

B

1

3

5

2

2

D

B

B

D

C

3

4

4

4

1

B

A

C

A

E

4

5

1

5

4

C

C

E

E

A

Stable?
  • A set of marriages is unstable if
    • two people who are not married both prefer each other than their spouses
  • E.g. Suppose we have A1 B3 C2 D4 E5. This is unstable since
    • A prefer 2 more than 1
    • 2 prefer A more than C
na ve solution
Naïve solution
  • Starting from a feasible solution.
  • Check if it is stable.
    • If yes, done!
    • If not, remove an unstable couple.
  • Is this work?
na ve solution 2

A

B

C

D

E

1

2

3

4

5

2

1

2

1

5

E

D

A

C

D

5

2

3

3

3

A

E

D

B

B

1

3

5

2

2

D

B

B

D

C

3

4

4

4

1

B

A

C

A

E

4

5

1

5

4

C

C

E

E

A

Naïve solution (2)
  • Does not work!
  • E.g.
    • A1 B3 C2 D4 E5
    • A2B3 C1 D4 E5
    • A3 B2 C1 D4 E5
    • A3 B1 C2 D4 E5
solution
Solution
  • Let X be the first man.
  • X proposes to the best woman in the remaining on his list. (Initially, the first woman on his list!)
  • If α is not engaged
    • Pair up (X, α). Then, set X=next man and goto 1.
  • If α prefers X more than her fiancee Y,
    • Pair up (X, α). Then, set X=Y and goto 1.
  • Goto 1
example59

A

B

C

D

E

1

2

3

4

5

2

1

2

1

5

E

D

A

C

D

5

2

3

3

3

A

E

D

B

B

1

3

5

2

2

D

B

B

D

C

3

4

4

4

1

B

A

C

A

E

4

5

1

5

4

C

C

E

E

A

Example

A

B

C

D

E

2

1

2

1

5

5

2

3

3

3

1

3

5

2

4

time analysis60
Time analysis
  • If there are N men and N women,
    • O(N2) time
algorithm
Algorithm
  • prefer[m][s]=w means the woman w is on the s-th position in the preference list of the man m
  • Let next[m] be the current best woman in his remaining list. (Initially, next[m]=0)
  • fiancee[w]=m means the man m engaged to woman w. (Initially, fiancee[w]=0)
  • Let rank[w][m] is the ranking of the man m in the preference list of the woman w.
  • For(m=1;m<=N;m++) { For(s=m;s!=0;

}