## Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

Find all the cycles in an undirected graph G. 3. (Optional) Find all articulation points in G. Terminology: Given an undirected graph, a depth-first search (DFS) algorithm constructs a directed tree from the root (first node in the V). If there exists a directed path in the tree from v to w, then v is an predecessor of w and w is a descendant of v. A node-node adjacency structure is an n × n matrix such that entry aij = 1 if node i is adjacent to node j and 0 otherwise. A node-edge adjacency structure lists for each node, the nodes adjacent to it. Example Let V = {1,2,3,4} and E = {(1,2), (1,3), (2,3), (3,4)}. The node-node adjacency structure is 0110 1010 1101 0010 The node-edge adjacency structure is 1: 2,3 2: 1,3 3: 1,2,4 4: 3 Note that node 4 is called a leaf. (1 and 2) Depth-first search (DFS) can be used to solved all three problems. It is usually assumed that the graph data structure is of the type node-edge adjacency instead of node-node adjacency. In the node-edge adjacency structure, the nodes are numbered from 1 to n. The node-i record lists the nodes adjacent to node i (connected to node i by an edge). DFS starts by setting node 1 as the current node. DFS iteration (i is the current node) – If one or more nodes of the node-i record were not yet visited from i, let node j be the first node not visited. If node j was already visited by DFS (obviously from node other than node i), mark edge (i,j) as back edge otherwise mark edge (i,j) as tree edge and set i as parent of j. Mark node j as visited in the node-i record. Set node j as current node. 1 3 4

2

-1-

4) none (3. 2 is parent of 3 tree.– Otherwise (all nodes of node-i record were visited). as in a spanning tree. One way (I think) to find all the cycles is to restart the algorithm at each node. Actually there can be an exponential number of them. Each back edge (i. The cycles so defined by the back edges form a cycle base of the graph (see below).) The number of back edges is always m – (n – 1) provided the graph is connected. This is easily proved by showing that the tree edges induce a connected subgraph that contains every node of the graph and contains no cycle.1) none none END tree. the number of cycles in a graph can be exponential in the number of nodes of the graph. the algorithm returns to node 1).j) and unique tree edges forming the path from j to i. this would be inefficient because many cycles already identified would be rediscovered when restarting. By union I mean an "exclusive OR" operation. A cycle consists of the back edge (i.. 1 is parent of 2 tree.e. set node k as current node. To perform this operation. and in the DFS algorithm the tree edges form a spanning tree. we represent cycles by edge-incidence vectors. 3 is parent of 4 back Note that a subroutine is needed to find the union of two or more cycles so that all the cycles can be uncovered. Every cycle of the graph is the union (exclusive OR) of two or more cycles from this cycle base.j) defines a cycle. where node k is the parent of i. This is because the maximum number of edges in a tree is (n – 1). This can be fixed by first applying AND on each two cycles in base.2) (2. Every other cycle of the graph can be obtained by the union of two or more cycles of the cycle base. If the graph is not connected then the number of back edges is m – (n – 1) + (p – 1) where p is the number of connected components. Cycle base and cycle representation A cycle base is a set of m – (n – 1) cycles that are independent in the sense that we cannot reconstruct one cycle from the set by the union (defined below) of two or more other cycles of the set. For the above example the DFS goes as follows: current node 1 2 3 4 3 3 2 1 edge (1. Consider a second example: -2- . (Note: The method will find non-existing cycles in case there are no overlapping edges at all between the two cycles in base. then the graph is connected.3) (3. Of course. However. The algorithm stops when node 1 is current (i. If all nodes were visited. The set of m – (n – 1) back edges defines a cycle base. This is not the only cycle base.

2). If more than two cycles of the base are involved.j) and the unique tree edges forming the path from j to i.6) (4.2): tree.6.6.5 Note.4) (3.6): tree.6) (5. An exclusive OR on these two incidence vectors gives the vector 01101000 which corresponds to cycle (2. 4 is parent of 5 edge (5.4. node 1 is a leaf.6) (3.2) is 01110101 and the one of cycle (3.4): back A cycle consists of the back edge (i. -3- .6.5. then the operation is similar.node 1: 2 node 2: 1. 1 is parent of 2 edge (2.6 node 4: 3.4): tree.3. 5 is parent of 6 edge (6.6 node 6: 2.2) (2.4.6) The incidence vector of cycle (2.3) is 00011101.6 node 5: 4. But I am not sure.2): back edge (6.5): tree.3. 3 is parent of 4 edge (4.3.6 node 3: 2.4.4.3): tree.3) (2. The DFS algorithm will produce the following result (I omitted some steps). I am not sure exactly what happens when the operation is performed on a set of cycles of the base for which one or more edges appear more than twice. The cycles that would be identified are: 2-3-4-5-6-2 3-4-5-6-3 4-5-6-4 The cycles that would be missed are: 2-3-6-2 2-3-4-6-2 3-4-6-3 Now assume that the vector of all edges in the graph is (1.5) (4. edge (1. 2 is parent of 3 edge (3.3): back edge (6.3.5.5. Do we count the edge if it appears an odd number of times? Maybe any simple cycle can be retrieved by adding a set of cycles of the base such that no edge appears more than twice in the set.

a portion of the DFS algorithm is a numbering scheme. If this brute force method is applied every time a back edge is "discovered". In practice. The DFS algorithm constructs a directed tree rooted at node 1. starting from u. Thus if DFS "discovers" a back edge (u. Articulation points Node k ∈ V is an articulation point of G if G \{k} has more than one component. The expression “min{v.w) is a back edge with u ≠ v a descendant of v and w a predecessor of v}. This tree determines a partial ordering of the nodes.3. Node 1 is an articulation point if and only if it is the parent of two or more nodes. This label is usually denoted by low(v). To uncover articulation points with DFS you need to record one extra label at every node. the whole algorithm is clearly O(mn). We number (or renumber) the nodes in the order that they are "discovered" by the DFS.w}” simply means that low(v) is equal to v itself except if there exists a back edge that connects a successor (descendant) of v to a predecessor (ascendant) of v. -4- . In this case the value of low(v) = w. That is.w) we need to update the low(v) labels on all internal nodes on the unique path of tree edges from w to u. Note that “min{v. traverse the tree edges backwards until w is reached. To make it O(n). A brute force method of doing this is. one uses a trick proposed by Tarjan but I don’t recall what it is. In the above example. when k is removed from the graph. At the end of the algorithm the nodes with low(v) = v are articulation points if v has at least one child (this condition rules out leaves). A node w is a successor of another node v (and v is a predecessor of w) if there exists a directed path from v to w in the tree.w}” does not mean that you select the minimum value of v or w. The exception is node 1. where low(v) = min{v. w : (u. node 3 is an articulation point. say w. one or more unconnected subgraphs result.

- IRJET- Mining High Utility Patterns in One Phase for Big Data
- Lecture 11
- Network-2
- UVa Problem List [Catagorized Algorithmic Problem]
- Ada Lab Manual-rvce
- hpg2009-vineet
- ch9.6
- ps6
- Combi
- 2
- Dead Locks
- Inequalities n Lp Classified
- Ada
- Ai Intro Pesit
- unit 2
- Epic List of Interview Questions Kate Mats
- discrete math
- MIT6_046JS15_pset7sols
- Rules
- ltl
- Scan Primitive
- wong_fp-FP4
- BIT+1073
- NP Complete
- TS-LDPC Codes Turbo-Structured Codes
- GL Manual
- DecisionTreePrimer-3
- Deadlock
- Efficient Routing in MANET Using Ordered Walks
- Frontier Search

- Discrete Mathematics
- tmpC906
- A New S-(a,d) Antimagic Labelling of a Class of Generalized Petersen Graphs
- tmpD746
- tmp20DC.tmp
- tmp30E5.tmp
- tmp3C86.tmp
- Discrete Mathematics MCQ'S
- A NEW S-(a,d) ANTIMAGIC LABELING OF A CLASS OF CIRCULANT GRAPHS
- tmp4359.tmp
- A Survey
- Discrete Mathematics MCQ'S
- tmp7F8
- tmp2EBB.tmp
- tmp9F1C
- A Survey on Subgraph Matching Algorithm for Graph Database
- Context Aware Decision Support Mobile Application for Recommendation in the Domain of Hotels
- Algorithm and Data Structure
- Tmp 1387
- Analysis and Design Algorithem
- tmp3C0A.tmp
- tmpE648
- tmpBF3
- Network Bucket Testing
- tmp18A.tmp
- tmpB0E6
- tmpDE4.tmp
- tmp6B5B.tmp

- tmpDF60.tmp
- Scheduling Resources In a Hetero-Gene Cloud Using Genetic Algorithm
- A review on Development of novel algorithm by combining Wavelet based Enhanced Canny edge Detection and Adaptive Filtering Method for Human Emotion Recognition
- Content-Based Image Retrieval Using Features Extracted From Block Truncation Coding
- OCR for Gujarati Numeral using Neural Network
- Hashing Algorithm
- UT Dallas Syllabus for opre7313.001.08f taught by Milind Dawande (milind)
- Analysis & Design Algorithm MCQ'S
- Cluster Analysis Techniques in Data Mining
- The Optimizing Multiple Travelling Salesman Problem Using Genetic Algorithm
- UT Dallas Syllabus for cs6363.002.08s taught by Balaji Raghavachari (rbk)
- UT Dallas Syllabus for opre7313.001.11s taught by Milind Dawande (milind)
- tmp8BC6
- Introduction to Multi-Objective Clustering Ensemble
- Simulation of Single and Multilayer of Artificial Neural Network using Verilog
- Voice Recognition System using Template Matching
- UT Dallas Syllabus for cs2305.002 05f taught by Timothy Farage (tfarage)
- A Survey on Gesture Recognition
- Public Cloud Partition Using Load Status Evaluation and Cloud Division Rules
- tmpCB3F.tmp
- As 2805.5.1-1992 Electronic Funds Transfer - Requirements for Interfaces Ciphers - Data Encipherment Algorith
- UT Dallas Syllabus for cs3345.501 05s taught by Greg Ozbirn (ozbirn)
- Principles of parallel algorithm models and their objectives
- tmpAA72
- Comparative Analysis of Optimization Algorithms Based on Hybrid Soft Computing Algorithm
- tmp904.tmp
- Comparison of different Sub-Band Adaptive Noise Canceller with LMS and RLS
- Appraisal of PSO Algorithm over Genetic Algorithm in WSN Using NS2
- Adoption of Parallel Genetic Algorithms for the Solution of System of Equations
- Determining the shortest path for Travelling Salesman Problem using Nearest Neighbor Algorithm

Sign up to vote on this title

UsefulNot usefulClose Dialog## Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

Close Dialog## This title now requires a credit

Use one of your book credits to continue reading from where you left off, or restart the preview.

Loading