add readme
This commit is contained in:
parent
74e165e050
commit
97c52244e1
1 changed files with 56 additions and 0 deletions
56
README.md
Normal file
56
README.md
Normal file
|
@ -0,0 +1,56 @@
|
|||
Finding all the elementary circuits of a directed graph
|
||||
-------------------------------------------------------
|
||||
|
||||
Algorithm by D. B. Johnson
|
||||
|
||||
Finding all the elementary circuits of a directed graph.
|
||||
D. B. Johnson, SIAM Journal on Computing 4, no. 1, 77-84, 1975.
|
||||
http://dx.doi.org/10.1137/0204007
|
||||
|
||||
Functional and iterative version.
|
||||
|
||||
Additional code available at http://mancoosi.org/~abate/finding-all-elementary-circuits-directed-graph
|
||||
|
||||
Original git repository at http://mancoosi.org/~abate/repos/cycles.git
|
||||
|
||||
The original code was faulty. This version is fixed for the functional as well
|
||||
as the iterative version.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
make
|
||||
./cycles_{iter,functional}.native 4 0,1 0,2 1,0 1,3 2,0 3,0 3,1 3,2
|
||||
|
||||
First argument is the number of vertices. Subsequent arguments are ordered
|
||||
pairs of comma separated vertices that make up the directed edges of the
|
||||
graph.
|
||||
|
||||
DOT file input
|
||||
--------------
|
||||
|
||||
For simplicity, there is no DOT file parser included but the following allows
|
||||
to create a suitable argument string for simple DOT graphs.
|
||||
|
||||
Given a DOT file of a simple (no labels, colors, styles, only pairs of
|
||||
vertices...) directed graph, the following line produces commandline
|
||||
arguments in the above format for that graph.
|
||||
|
||||
echo `sed -n -e '/^\s*[0-9]\+;$/p' graph.dot | wc -l` `sed -n -e 's/^\s*\([0-9]\) -> \([0-9]\);$/\1,\2/p' graph.dot`
|
||||
|
||||
The above line works on DOT files like the following:
|
||||
|
||||
digraph G {
|
||||
0;
|
||||
1;
|
||||
2;
|
||||
0 -> 1;
|
||||
0 -> 2;
|
||||
1 -> 0;
|
||||
2 -> 0;
|
||||
2 -> 1;
|
||||
}
|
||||
|
||||
It would produce the following output:
|
||||
|
||||
3 0,1 0,2 1,0 2,0 2,1
|
Loading…
Reference in a new issue