Number: 1594
Title: Error: trouble in init_rank
Submitter: Jeremy Fleischman
Date: Sun Mar 8 03:39:39 2009
Subsys: Dot
Version: 2.20.3
System: x86-Windows-XP
Severity: critical
Problem: dot -Tpdf -o database3.pdf
Input file:
I can't seem to generate this graph, and I would really like to see it!

[ellson] I suggest you start with a small fragment of that graph, and experiment with it to get the graph syntax correct. In particular, the label syntax is incorrect.

Trying to force rank with rank=same means you are fighting with dot's own calculation of what the ranks should be. Try without rank=same.

I was able to produce the attached PDF <A HREF="b1594.pdf">layout</A> from a modified version of your graph using graphviz-2.22. The graph is very large, so probably no point in even attempting any bitmap layouts.

[ellson] No, I'm wrong, your labels are fine. This [rank=same] is the problem. New output attached with labels restored.

BTW. If you take into account rotational and mirror symmetries, the rules for winning at tic-tac-toe are much simpler than this ;-)

[jeremy] Wow! Thank you for the quick response! This happens to be 3x3 Connect 3, a simpler version of the much larger game that most people know, 7x6 Connect 4.

I'm sorry I didn't specify this in my bug report, but I already knew that I could generate the pdf if I left the rank=same stuff out. The thing is that is is more interesting to look at the 3x3 Connect 3 graph in terms of remoteness, that is, the number of moves until the game is over. That way, all of the winning/losing nodes should end at the bottom of the graph. However, right now the nodes are simply ranked by the number of pieces on the board, which is a less interesting representation. All I want to do is align the nodes to a certain row. Is there some way of controlling the layout of the nodes like that? While I know that using rank=same is breaking my graph, I don't know why. I believe that I am using that property correctly.

[ellson] I'm not convinced yet that this is a bug. If you put too many constraints on a graph, then dot has to eventually give up.

I tried using rank=same on just rows "0" and "9", then I found that dot wants to create additional rows below "0".

Aren't the solid nodes terminals? Why do they have outedges?

(e.g. h128 -> h288 )

Is it possible that you have some edges reversed?
Owner: *
Status: *