Skip to content

Commit 3cd0b18

Browse files
committed
[docs] Update greedy cycle breaker description in README to reflect actual behavior with autog.WithNonDeterministicGreedyCycleBreaker
1 parent 65d0a80 commit 3cd0b18

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,9 @@ See the [References](#references) section for citations and links.
128128

129129
- `Greedy`: This is a solution to the feedback arc set ported from [ELK] source code, which in turn builds on the work of Eades et al. and Di Battista et al.
130130
It may get stuck in local optima. I found it useful to break two-node cycles such as edge pairs A->B and B->A before running this algorithm.
131-
**NOTE:** The algorithm is non-deterministic; it arranges non-sink non-source nodes in the arc diagram randomly before reversing edges. Indeed this produces variable results.
132-
This isn't great for testing/debugging, so as of v0 the random selection is disabled and replaced with `nodes[len(nodes)/2]`.
131+
**NOTE:** The algorithm is non-deterministic; it arranges non-sink non-source nodes in the arc diagram randomly before reversing edges. Indeed, this may produce variable results.
132+
This isn't great for testing/debugging, so as of v0 the algorithm defaults to `nodes[len(nodes)/2]`.
133+
To force the original behavior, call `autog.Layout` with `autog.WithNonDeterministicGreedyCycleBreaker()` option.
133134

134135
### Layering
135136

@@ -191,7 +192,7 @@ The result is indeed a set of cubic Bezier control points.
191192

192193
## Status
193194

194-
This project is actively under development, but it is currently in version 0.
195+
This project is being actively developed. It's still in version 0.
195196
Please be aware that the public API and exported methods may undergo changes.
196197

197198
- Self-loops don't break the program any more ([issue #23](https://github.com/nulab/autog/issues/23)) but are not supported. The final layout includes self-loop edges but those edges are not routed (`e.Points` is `nil`)

0 commit comments

Comments
 (0)