1 / 12

Parallel construction of Euler Cycle

An Euler cycle in a graph is a cyclic path which traverses each edge of the graph exactly once. Parallel construction of Euler Cycle. Lecture 13. Euler cycle in a directed graph. Given: graph G Find: an Euler cycle of G (1) Creation of a set of edge disjoint cycles

monicasmith
Download Presentation

Parallel construction of Euler Cycle

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. An Euler cycle in a graph is a cyclic path which traverses each edge of the graph exactly once Parallel construction of Euler Cycle Lecture 13

  2. Euler cycle in a directed graph • Given: graph G • Find: an Euler cycle of G (1) Creation of a set of edge disjoint cycles (2) Creation of a special biconncetd graph B between cycles and nodes of G (3) Parallel construction of a spanning tree T for the graph B (4) Construction an Euler tour C of a tree T by replacing each edge of T by two directed antiparallel edges (5) Converting the cycle C into an Euler cycle of G

  3. Graph G

  4. Step 1: Creation of a set of edge disjoint cycles

  5. Step 2: Creating an auxiliary graph G’, nodes of G’ are edge-disjoint cycles of G, and vertices of G. Each cycle is connected to vertices which lie on it For our example A PART of the graph G’ looks as follows; Step 3: Parallel construction of a spanning tree T for the graph B

  6. Step 4: Construction an Euler tour C of a tree T by replacing each edge of T by two directed antiparallel edges

  7. Step 5: Converting the cycle C into an Euler cycle of G

  8. Euler paths on arbitrary graphs

  9. Euler paths on arbitrary graphs Complexity = O(log(n)) Sort using p processors = O(log n) with p > n

  10. Euler paths on arbitrary graphs

  11. Euler paths on arbitrary graphs // input: n = num-nodes, m = num edges // output D = each edge labeled with representative // of each cycle // note: succ[in(v,k)] = out(k,v) par_for x = 1 ... m D[e[x]] = e[x] // every edge is a potential cycle-representative next[e[x]] = succ[e[x]] // scratch space for contraction for k = 1 ... ceil(log(n)) par_for x = 1 ... m D[e[x]] := min(D[e[x]], D[next[e[x]]]) next[e[x]] = next[next[e[x]]]

More Related