Порядок узлов Graphviz .dot

Я создаю эпсилон NFA для распознавания регулярного выражения с использованием канонической конструкции. Я использую подграфы для группировки различных частей регулярного выражения. Оператор * вызывает у меня особые проблемы, поскольку точка решила изменить порядок узлов.Я пробовал добавлять веса краев, чтобы отдельные края были короткими, чтобы сохранить порядок краев на одной линии, но это, похоже, не работает.

Я бы хотел заставить узлы в подграфе размещаться в определенном порядке, чтобы выходной граф можно было распознать как особый тип (хорошо известной) конструкции. В приведенном ниже примере я хотел бы, чтобы края 3, 4, 5 и 6 располагались в таком порядке, однако точка размещает их в порядке 6, 3, 4, 5. Любые указатели приветствуются.

Обратите внимание, что текущий весовой параметр не производит никакой разницы, чем никакой весовой параметр.

У меня есть

digraph G {
    rankdir = LR;
    node [shape = none];
            0 [label = "start"];
    node [shape = circle];
            1 [label = "q1"];
            2 [label = "q2"];
            3 [label = "q3"];
            4 [label = "q4"];
            5 [label = "q5"];
    node [shape = doublecircle];
            6 [label = "q6"];
    subgraph re1 {
            rank = same;
            edge[label = "0"];
            1 -> 2;
    };
    subgraph re2 {
            rank = same;
            edge[label = "ε"];
                    3 -> 4 [weight = 10];
            edge[label = "1"];
                    4 -> 5 [weight = 10];
            edge[label = "ε"];
                    5 -> 6 [weight = 10];
                    5 -> 4 [weight = 1];
                    6 -> 3 [weight = 1];
    };
    edge[color=black];
            0 -> 1
    edge[label = "ε"];
            2 -> 3;
}

graphiz output

28
задан marapet 2 October 2011 в 19:39
поделиться