Estoy construyendo un epsilon NFA para reconocer una expresión regular usando la construcción canónica. Estoy usando subgrafos para agrupar varias partes de la expresión regular. El * operador me está dando problemas particulares ya que el punto ha decidido mover el orden de los nodos. He intentado agregar pesos de borde para forzar que los bordes particulares sean cortos para mantener el orden de los bordes en línea, pero eso no parece funcionar.Graphviz orden de nodo .dot
Lo que me gustaría hacer es forzar a los nodos en un subgráfico a colocarse en un orden particular para que el gráfico de salida sea reconocible como un tipo particular de construcción (bien conocida). En el siguiente ejemplo, me gustaría que los bordes 3, 4, 5 y 6 se coloquen en ese orden, sin embargo, el punto los ubica en el orden 6, 3, 4, 5. Cualquier puntero apreciado.
Tenga en cuenta que el parámetro de peso actual no produce ninguna diferencia que ningún parámetro de peso en absoluto.
Tengo el siguiente
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;
}
Disculpa la demora, gracias por la ayuda! –