排列节点,使边缘不交叉

时间:2018-10-18 18:38:10

标签: graphviz diagram state-machine

我想生成一个表示状态机的图,以使节点之间的边缘不交叉或至少具有最少的交点。这是使用

的示例

dot -Tpng diagram.dot

enter image description here

此图有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
}

0 个答案:

没有答案