31
Graph Algorithms

Graph Algorithms. Graph Algorithms: Topics Introduction to graph algorithms and graph represent ations Single Source Shortest Path (SSSP) problem

Embed Size (px)

Citation preview

Page 1: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Graph Algorithms

Page 2: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Graph Algorithms: Topics

Introduction to graph algorithms and graph repre-sentations

Single Source Shortest Path (SSSP) problem

Refresher: Dijkstra’s algorithm

Breadth-First Search with MapReduce

PageRank

Page 3: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

What’s a graph?

G = (V,E), where

V represents the set of vertices (nodes)

E represents the set of edges (links)

Both vertices and edges may contain additional in-formation

Different types of graphs:

Directed vs. undirected edges

Presence or absence of cycles

...

Page 4: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Some Graph Problems

Finding shortest paths

Routing Internet traffic and UPS trucks

Finding minimum spanning trees

Telco laying down fiber

Finding Max Flow

Airline scheduling

Identify “special” nodes and communities

Breaking up terrorist cells, spread of avian flu

Bipartite matching

Monster.com, Match.com

And of course... PageRank

Page 5: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Representing Graphs

G = (V, E)

Two common representations

Adjacency matrix

Adjacency list

Page 6: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Adjacency MatricesRepresent a graph as an n x n square matrix M

n = |V|

Mij = 1 means a link from node i to j

1 2 3 4

1 0 1 0 1

2 1 0 1 1

3 1 0 0 0

4 1 0 1 0

1

2

3

4

Page 7: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Adjacency Lists

Take adjacency matrices… and throw away all the ze-ros

1 2 3 4

1 0 1 0 1

2 1 0 1 1

3 1 0 0 0

4 1 0 1 0

1: 2, 42: 1, 3, 43: 14: 1, 3

Page 8: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Single Source Shortest Path

Problem: find shortest path from a source node to one or more target nodes

First, a refresher: Dijkstra’s Algorithm

Page 9: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Dijkstra’s Algorithm Exam-ple

0

10

5

2 3

2

1

9

7

4 6

Example from CLR

Page 10: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Dijkstra’s Algorithm Exam-ple

0

10

5

10

5

2 3

2

1

9

7

4 6

Example from CLR

Page 11: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Dijkstra’s Algorithm Exam-ple

0

8

5

14

7

10

5

2 3

2

1

9

7

4 6

Example from CLR

Page 12: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Dijkstra’s Algorithm Exam-ple

0

8

5

13

7

10

5

2 3

2

1

9

7

4 6

Example from CLR

Page 13: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Dijkstra’s Algorithm Exam-ple

0

8

5

9

7

10

5

2 3

2

1

9

7

4 6

Example from CLR

Page 14: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Dijkstra’s Algorithm Exam-ple

0

8

5

9

7

10

5

2 3

2

1

9

7

4 6

Example from CLR

Page 15: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Single Source Shortest Path

Problem: find shortest path from a source node to one or more target nodes

Single processor machine: Dijkstra’s Algorithm

MapReduce: parallel Breadth-First Search (BFS)

Page 16: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Finding the Shortest Path

Consider simple case of equal edge weights

Solution to the problem can be defined inductively

Here’s the intuition:

DISTANCETO(startNode) = 0

For all nodes n directly reachable from startNode, DISTANCETO (n) = 1

For all nodes n reachable from some other set of nodes S, DISTANCETO(n) = 1 + min(DISTANCETO(m), m S)

m3

m2

m1

n

cost1

cost2

cost3

Page 17: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Dikjstra Shortest Path Algo-rithm

Page 18: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Dikjstra Shortest Path Algo-rithm

Page 19: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

From Intuition to Algorithm

Mapper input

Key: node n

Value: D (distance from start), adjacency list (list of nodes reachable from n)

Mapper output

p targets in adjacency list: emit( key = p, value = D+1)

The reducer gathers possible distances to a given p and selects the minimum one

Additional bookkeeping needed to keep track of actual path

Page 20: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

MapReduce for shortest path

Page 21: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Multiple Iterations Needed

Each MapReduce iteration advances the “known frontier” by one hop

Subsequent iterations include more and more reach-able nodes as frontier expands

Multiple iterations are needed to explore entire graph

Feed output back into the same MapReduce task

Preserving graph structure:

Problem: Where did the adjacency list go?

Solution: mapper emits (n, adjacency list) as well

Page 22: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Weighted Edges

Now add positive weights to the edges

Simple change: adjacency list in map task includes a weight w for each edge

emit (p, D+wp) instead of (p, D+1) for each node p

Page 23: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Comparison to Dijkstra

Dijkstra’s algorithm is more efficient

At any step it only pursues edges from the minimum-cost path inside the frontier

MapReduce explores all paths in parallel

Page 24: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Random Walks Over the Web

Model:

User starts at a random Web page

User randomly clicks on links, surfing from page to page

PageRank = the amount of time that will be spent on any given page

Page 25: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

PageRank: Defined

Given page x with in-bound links t1…tn, where

C(t) is the out-degree of t

is probability of random jump

N is the total number of nodes in the graph

n

i i

i

tC

tPR

NxPR

1 )(

)()1(

1)(

X

t1

t2

tn

Page 26: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

PageRank Example

Page 27: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Computing PageRank

Properties of PageRank

Can be computed iteratively

Effects at each iteration is local

Sketch of algorithm:

Start with seed PRi values

Each page distributes PRi “credit” to all pages it links to

Each target page adds up “credit” from multiple in-bound links to compute PRi+1

Iterate until values converge

Page 28: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

PageRank in MapReduceMap: distribute PageRank “credit” to link targets

...

Reduce: gather up PageRank “credit” from multiple sources to compute new PageRank value

Iterate untilconvergence

Page 29: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

MapReduce for PageRank

Page 30: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

PageRank: Issues

Is PageRank guaranteed to converge? How quickly?

What is the “correct” value of , and how sensitive is the algorithm to it?

What about dangling links?

How do you know when to stop?

Page 31: Graph Algorithms. Graph Algorithms: Topics  Introduction to graph algorithms and graph represent ations  Single Source Shortest Path (SSSP) problem

Graph Algorithms in MapReduce

General approach:

Store graphs as adjacency lists

Each map task receives a node and its adjacency list

Map task compute some function of the link structure, emits value with target as the key

Reduce task collects keys (target nodes) and aggre-gates

Perform multiple MapReduce iterations until some termination condition

Remember to “pass” graph structure from one iteration to next