Problem 1170. Count the Number of Undirected Cycles in a Graph
Given a symmetric adjacency matrix, determine the number of unique undirected cycles.
For example, the graph represented by adjacency matrix
A = [
0 1 1 0 1
1 0 1 1 0
1 1 0 1 1
0 1 1 0 0
1 0 1 0 0];
has 6 cycles. They are:
[1 -> 2 -> 3 -> 1]
[1 -> 3 -> 5 -> 1]
[2 -> 3 -> 4 -> 2]
[1 -> 2 -> 4 -> 3 -> 1]
[1 -> 2 -> 3 -> 5 -> 1]
[1 -> 2 -> 4 -> 3 -> 5 -> 1]
The input is an adjacency matrix of 0s and 1s, and the output should be the number of unique (simple) undirected cycles in the graph.
Solution Stats
Problem Comments
-
4 Comments
Show
1 older comment
Alfonso Nieto-Castanon
on 4 Jan 2013
it seems the expected solution only counts cycles that include three or more nodes... is this correct?
Joseph Kirk
on 5 Jan 2013
That is correct. In a directed graph, the cycle 1 -> 2 -> 1 actually uses two different edges, while in an undirected graph, the edge 1 -> 2 and 2 -> 1 are one and the same. I am only considering cycles valid if each node along the way is visited once and if edges are not used more than one time. I chose this criteria so that the number of cycles counted would match the results for the table provided here: http://mathworld.wolfram.com/GraphCycle.html
Alfonso Nieto-Castanon
on 5 Jan 2013
got it. Thanks for the clarification!
Solution Comments
Show commentsProblem Recent Solvers19
Suggested Problems
-
3618 Solvers
-
1648 Solvers
-
1891 Solvers
-
406 Solvers
-
531 Solvers
More from this Author3
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!