Calculate fundamental cycles in a graph.
dodgr_fundamental_cycles(graph, vertices = NULL, graph_max_size = 10000, expand = 0.05)
graph 


vertices 

graph_max_size  Maximum size submitted to the internal C++ routines as a single chunk. Warning: Increasing this may lead to computer meltdown! 
expand  For large graphs which must be broken into chunks, this factor determines the relative overlap between chunks to ensure all cycles are captured. (This value should only need to be modified in special cases.) 
List of cycle paths, in terms of vertex IDs in graph
and, for
spatial graphs, the corresponding coordinates.
Calculation of fundamental cycles is VERY computationally demanding,
and this function should only be executed on CONTRACTED graphs (that is,
graphs returned from dodgr_contract_graph), and even than may take a
long time to execute. Results for full graphs can be obtained with the
function dodgr_full_cycles. The computational complexity can also not
be calculated in advance, and so the parameter graph_max_size
will lead to
graphs larger than that (measured in numbers of edges) being cut into smaller
parts. (Note that that is only possible for spatial graphs, meaning that it
is not at all possible to apply this function to large, nonspatial graphs.)
Each of these smaller parts will be expanded by the specified amount
(expand
), and cycles found within. The final result is obtained by
aggregating all of these cycles and removing any repeated ones arising due to
overlap in the expanded portions. Finally, note that this procedure of
cutting graphs into smaller, computationally manageable subgraphs provides
only an approximation and may not yield all fundamental cycles.
net < weight_streetnet (hampi) graph < dodgr_contract_graph (net)$graph verts < dodgr_vertices (graph) cyc < dodgr_fundamental_cycles (graph, verts)