Positioning Nodes With `{rank=same …}` Side Effects

I have a graph defined as such:

digraph G {
    rankdir=LR
    node[shape=circle]
    q_[shape=none label=""]
    q3[shape=doublecircle]
    q4[shape=doublecircle]
    q_->q0
    q0->q1[label="λ"]
    q0->q2->q4[label=a]
    q1->q4->q2[label=b]
    q1->q3[label=a]
    q3->q4[label="λ"]
    {rank=same; q4 q3}
    {rank=same; q1 q2}
}

The graph outputs the following image:

enter image description here

You can play with the graph here: http://graph.gafol.net/derive/effpjWfSD

My question is:

Why is q4 pointing to q3 in the rendered graph and not the way I specified it in the markup? Is it because {rank=same; q4 q3} has more semantic meaning than just positioning nodes? If that is the case, how can I position the nodes so that the output is not as hideous as the output is without using {rank=same; ...}?

6
задан kzh 8 March 2011 в 14:04
поделиться