我想生成一个表示状态机的图,以使节点之间的边缘不交叉或至少具有最少的交点。这是使用
的示例 dot -Tpng diagram.dot
:
此图有7个交点。我手动将此图安排为只有3个交点,但我想有一种算法可以自动执行此操作,并找到最佳解决方案。请指出执行此操作的算法/源代码/工具。
这是此图的源代码diagram.dot:
digraph {
START
A
B
C
D
E
F
G
H
I
J
L
M
K
START -> A
A -> B
A -> L
B -> C
C -> G
C -> D
D -> J
E -> F
F -> A
G -> B
G -> H
G -> I
G -> M
H -> L
I -> L
J -> L
J -> H
J -> I
J -> K
J -> G
J -> E
J -> M
K -> L
L -> B
L -> H
L -> I
L -> J
L -> M
M -> L
}