エッジのランク属性には、「同じ」、「最小」、「ソース」、「最大」、「シンク」の5つの値があります。 「同じ」を除いて、他の値をいつ使用するかわかりません。
min
\begin{dotpic}
rankdir=LR;
size="7,5";
node[shape=circle];
C->A;
{rank=min;A;B}
B->D
A->B;
\end{dotpic}
max
\begin{dotpic}
rankdir=LR;
size="7,5";
node[shape=circle];
C->A;
{rank=max;A;B}
B->D
A->B;
\end{dotpic}
source
\begin{dotpic}
rankdir=LR;
size="7,5";
node[shape=circle];
C->A;
{rank=source;A;B}
B->D
A->B;
\end{dotpic}
sink
\begin{dotpic}
rankdir=LR;
size="7,5";
node[shape=circle];
C->A;
{rank=sink;A;B}
B->D
A->B;
\end{dotpic}
私のvim環境でのテストにより、これらの値には多少の違いがあることがわかります。しかし、彼らが何のためにあるのか正確に知らない。
ランクを空のままにするか、rank = sameを使用することは、はるかに頻繁に使用されます。これらの他の4つは通常、特別な状況でのみ使用されます。
単独で使用した場合、minとsourceは同じ機能を持っています。それらすべてのノードを最小ランク(TBグラフの最上行)に配置します。これらの違いは、minが他のサブグラフを許可することです。最小ランクにあります。ソースはそうではありません。ソースは、minまたはソースの他のサブグラフのみが最小ランクにあることを許可します。
次のグラフスニペットを考えてみます。
{ rank=source; a -> b; }
{ rank=same; c -> d; }
最終的には2行になります。 a-> bはc-> dより上になります。
ソースをminに変更すると、1行しか取得されません。 a-> bはすべてc-> dの左側にあり、すべてminランクです。
{ rank=min; a -> b; }
{ rank=same; c -> d; }
Maxとsinkはグラフの下部に相当します。