1 / 30

Graph Algorithms

Learn about graph algorithms for various applications like path planning, clustering, and flow optimization in highly connected networks. Dive into Dijkstra's algorithm and explore parallel processing with MapReduce.

paquet
Download Presentation

Graph Algorithms

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Graph Algorithms Ch. 5 Lin and Dyer

  2. Graphs • Are everywhere • Manifest in the flow of emails • Connections on social network • Bus or flight routes • Social graphs: twitter friends and followers • Take a look at Jon Kleinberg’s page and book on Networks, Crowds and Markets Reasoning about a highly connected world.

  3. Graph algorithms • Graph search and path planning:: shortest path to a node • Graph clustering:: diving the graphs into smaller related clusters • Minimum spanning tree:: graph that covers the nodes in an efficient way • Bipartite graph match:: div graph into two mapping sets: job seekers and employers • Maximum flow:: designate source and sink; determine max flow between the two: transportation • Identifying special nodes: authoritative nodes: containment of spread of diseases; Broad street water pump in London, cholera and beginnings of epidemiology

  4. Graph Representations n1 n2 n5 n3 n4 How do you represent this visual diagram as data?

  5. Simple, Baseline Data Structure n1 n4 n2 n3 n5 n1 n2 n1 n2 n3 n4 n5 n1 [n2, n4] n2 [n3, n5] n3 [n4] n4 [n5] n5 [n1,n2,n3] Adjacency matrix – this is good for linear algebra; But most web links and social Networks are sparse x/ 1000000000 Space req. is O(n2) (ii) Adjacency lists

  6. Problem definition: intuition • Input: graph adjacency list with edges and vertices, w edges distances, starting vertex • Output(goal): label the nodes/vertices with the shortest distance value from the starting node

  7. single source shortest path problem • Sequential solution: Dijkstra’s algorithm 5.2 Dijkstra (G, w, s) // w edge distances list, s starting node, G graph d[s]  0 for all other vertices d[v] ∞ Q  {V} // Q is priority queue based on distances while Q # 0 u  min(Q) // node with min d value for all vertex v in u.adjacencyList if d[v] > d[u] + w[u,v] d[v]  d[u] + w[u,v] mark u and remove from Q At each iteration of while loop, the algorithm expands the node with the shortest distance and updates distances to all reachable nodes

  8. Sample graph : lets apply the algorithm 5.2 n4 n2 1 10 9 3 0 2 6 4 7 n1 5 2 n3 n5

  9. Issues • Sequential • Need to keep global state: not possible with MR • Lets see how we can handle this graph problem for parallel processing with MR

  10. Parallel Breadth First • Assume distance of 1 for all edges (simplifying assumption): later we will expand it to other distances

  11. Issues in processing a graph in MR • Goal: start from a given node and label all the nodes in the graph so that we can determine the shortest distance • Representation of the graph (of course, generation of a synthetic graph) • Determining the <key,value> pair • Iterating through various stages of processing and intermediate data • When to terminate the execution

  12. Input data format for MR • Node: nodeId, distanceLabel, adjancency list {nodeId, distance} • This is one split • Input as text and parse it to determine <key, value> • From mapper to reducer two types of <key, value> pairs • <nodeidn, Node N> • <nodeidn, distance until now label> • Need to keep the termination condition in the Node class • Terminate MR iterations when none of the labels change, or when the graph has reached a steady state or all the nodes have been labeled with min distance or other conditions using the counters can be used. • Now lets look at the algorithm given in the book

  13. Mapper Class Mapper method map (nid n, Node N) d  N.distance emit(nid n, N) // type 1 for all m in N. Adjacencylist emit(nid m, d+1) // type 2

  14. Reducer Class Reducer method Reduce(nid m, [d1, d2, d3..]) dmin = ∞; // or a large # Node M  null for all d in [d1,d2, ..] { if IsNode(d) then M  d else if d < dminthen dmin  d} M.distance  dmin // update the shortest distance in M emit (nid m, Node M)

  15. Trace with sample Data 1 0 2:3: 2 10000 3:4: 3 10000 2:4:5 4 10000 5: 5 10000 1:4

  16. Intermediate data 1 0 2:3: 2 1 3:4: 3 1 2:4:5: 4 10000 5: 5 10000 1:4:

  17. Intermediate Data 1 0 2:3: 2 1 3:4: 3 1 2:4:5: 4 2 5: 5 2 1:4:

  18. Final Data 1 0 2:3: 2 1 3:4: 3 1 2:4:5: 4 2 5: 5 2 1:4:

  19. Sample Data

  20. PageRank • 25 Billion Dollar algorithm (huge matrix and Eigen vector problem.) • Larry Page and Sergei Brin (Standford Ph.D. students) • Rajeev Motwani and Terry Winograd (Standford Profs)

  21. Consider this web problem Nodes 1, 2, 3,4 with ranks x1, x2,x3, x4 2 1 4 X3 Problem: How to calculate the Ranks or “influence” of these web linked nodes? Solution: Treat it as linear as linear algebraic problem.. Write the linear equations, Solve the equation system. Let’s do just that for this network

  22. Linear Algebra problem • x1 = [ ½ x2 + ½x3] = [0x1+ ½ x2 + ½x3+0x4] • x2 = [ ½ x1+ 0 x2 + 0x3+ ½ x4] • x3 = [ ½ x1+ 0 x2 + 0x3+ ½ x4] • x4 = [0 x1+ ½ x2 + ½ x3+0 x4] • Web link problem develops into a problem of finding the Eigen vector for the square matrix. • We seek the Eigen vector X with value of 1 for the link matrix Ax = 1; lets do that

  23. Solve Square link matrix for Eigen Vector [0 + ½ + ½ + 0 ] [ ½ + 0 + 0 + ½ ] X [x1 x2 x3 x4] [ ½ + 0 + 0 + ½ ] [0 + ½ + ½ + 0 ] A x = 1 solve this for x1=? x2 =? x3=? x4=? Transpose the matrix, etc.. Now scale the problem to billions of nodes?!!

  24. General idea • Consider the world wide web with all its links. • Now imagine a random web surfer who visits a page and clicks a link on the page • Repeats this to infinity • Pagerank is a measure of how frequently will a page will be encountered. • In other words it is a probability distribution over nodes in the graph representing the likelihood that a random walk over the linked structure will arrive at a particular node.

  25. PageRank Formula P(n) = α randomness factor G is the total number of nodes in the graph L(n) is all the pages that link to n C(m) is the number of outgoing links of the page m Note that PageRank is recursively defined. It is implemented by iterative MRs.

  26. Example • Figure 5.7 • Lets assume alpha as zero • Lets look at the MR

  27. Mapper for PageRank Class Mapper method map (nid n, Node N) p  N.Pagerank/|N.AdajacencyList| emit(nid n, N) for all m in N. AdjacencyList emit(nid m, p) “divider”

  28. Reducer for Pagerank Class Reducer method Reduce(nid m, [p1, p2, p3..]) node M  null; s = 0; for all p in [p1,p2, ..] { if p is a Node then M  p else s  s+p } M.pagerank  s emit (nid m, node M) “aggregator”

  29. Lets trace with sample data 3 1 2 4

  30. Discussion • How to account for dangling nodes: one that has many incoming links and no outgoing links • Simply redistributes its pagerank to all • One iteration requires pagerank computation + redistribution of “unused” pagerank • Pagerank is iterated until convergence: when is convergence reached? • Probability distribution over a large network means underflow of the value of pagerank.. Use log based computation

More Related