正規の構造を使用して正規表現を認識するためにイプシロンNFAを構築しています。サブグラフを使って正規表現のさまざまな部分をグループ化しています。 *演算子はドットが周りのノードの順序を移動することに決めたので私に特別なトラブルを与えています。私はエッジウェイトを追加して、特定のエッジを短くして、エッジの並びをラインで維持しようとしましたが、動作していないようです。グラフのドットノードの順序
私がしたいのは、サブグラフのノードを特定の順序で配置して、出力グラフが特定のタイプの(よく知られた)構造として認識できるようにすることです。下の例では、エッジ3、4、5、6をこの順に配置したいと考えていますが、ドットは6,3,4,5の順に配置します。
現在のweightパラメータは、weightパラメータとまったく違いがないことに注意してください。私は
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;
}
遅れて申し訳ありません、助けてくれてありがとう! –