All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.salesforce.jgrapht.alg.cycle.package-info Maven / Gradle / Ivy

Go to download

This project contains the apt processor that implements all the checks enumerated in @Verify. It is a self contained, and shaded jar.

There is a newer version: 2.0.7
Show newest version
/**
 * Algorithms for enumeration of simple cycles in graphs.
 *
 * 

* Implementation Note: All the implementations work correctly with loops but not with * multiple duplicate edges. * *

* Performance Notes:      The worst case time complexity of the * algorithms for finding cycles in directed graphs is: *

    *
  1. Tiernan - O(V.const^V)
  2. *
  3. Tarjan - O(VEC)
  4. *
  5. Johnson - O(((V+E)C)
  6. *
  7. Szwarcfiter and Lauer - O(V+EC)
  8. *
* where V is the number of vertices, E is the number of edges and C is the number of the simple * cycles in the graph. * *

* The worst case performance is achieved for graphs with special structure, so on practical * workloads an algorithm with higher worst case complexity may outperform an algorithm with lower * worst case complexity. Note also that "administrative costs" of algorithms with better worst case * performance are higher. Also higher is their memory cost (which is in all cases O(V+E)). * *

* The package author's workloads contain typically several hundred nodes and from tens to several * thousand simple cycles. On these workloads the algorithms score by performance (best to worst ) * so : *

    *
  1. Szwarcfiter and Lauer
  2. *
  3. Tarjan
  4. *
  5. Johnson
  6. *
  7. Tiernan
  8. *
* The worst case time complexity of the Paton's algorithm for finding a cycle base in undirected * graphs is O(V^3). * *

* Literature:
*

    *
  1. J.C.Tiernan An Efficient Search Algorithm Find the Elementary Circuits of a Graph., * Communications of the ACM, V13, 12, (1970), pp. 722 - 726.
  2. *
  3. R.Tarjan, Depth-first search and linear graph algorithms., SIAM J. Comput. 1 (1972), pp. * 146-160.
  4. *
  5. R. Tarjan, Enumeration of the elementary circuits of a directed graph, SIAM J. Comput., 2 * (1973), pp. 211-216.
  6. *
  7. D.B.Johnson, Finding all the elementary circuits of a directed graph, SIAM J. Comput., 4 * (1975), pp. 77-84.
  8. *
  9. J.L.Szwarcfiter and P.E.Lauer, Finding the elementary cycles of a directed graph in O(n + m) * per cycle, Technical Report Series, #60, May 1974, Univ. of Newcastle upon Tyne, Newcastle upon * Tyne, England.
  10. *
  11. P.Mateti and N.Deo, On algorithms for enumerating all circuits of a graph., SIAM J. Comput., * 5 (1978), pp. 90-99.
  12. *
  13. L.G.Bezem and J.van Leeuwen, Enumeration in graphs., Technical report RUU-CS-87-7, University * of Utrecht, The Netherlands, 1987.
  14. *
  15. K. Paton, An algorithm for finding a fundamental set of cycles for an undirected linear * graph, Comm. ACM 12 (1969), pp. 514-518.
  16. *
* */ package com.salesforce.jgrapht.alg.cycle;




© 2015 - 2025 Weber Informatics LLC | Privacy Policy