Bug 133022 - [GraphLayout] graph layout algorithm not optimal for edge crossings
Summary: [GraphLayout] graph layout algorithm not optimal for edge crossings
Status: NEW
Alias: None
Product: GEF
Classification: Tools
Component: GEF-Legacy Draw2d (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Anthony Hunter CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-23 11:55 EST by Wim De Pauw CLA
Modified: 2013-10-17 09:44 EDT (History)
2 users (show)

See Also:


Attachments
testcase: 4 examples of graphs (206.57 KB, application/octet-stream)
2006-03-23 12:04 EST, Wim De Pauw CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Wim De Pauw CLA 2006-03-23 11:55:59 EST
I am using the algorithm with all the default settings. For many graphs, I 
notice a crossing of the edges that should be avoided. I am including 
one example of a graph in the dot format. I can send more examples, 
including pictures. 

digraph graph2 {
PE727 -> PE729
PE725 -> PE727
PE721 -> PE725
PE716 -> PE721
PE618 -> PE718
PE618 -> PE717
PE618 -> PE715
PE618 -> PE714
PE618 -> PE713
PE618 -> PE716
PE718 -> PE723
PE717 -> PE722
PE714 -> PE720
PE713 -> PE719
PE719 -> PE724
PE724 -> PE726
PE726 -> PE728
PE617 -> PE618
PE616 -> PE617
PE18 -> PE500
PE18 -> PE341
PE18 -> PE99
PE18 -> PE616
PE500 -> PE503
PE500 -> PE502
PE500 -> PE501
PE503 -> PE507
PE507 -> PE509
PE509 -> PE579
PE509 -> PE576
PE509 -> PE573
PE509 -> PE572
PE502 -> PE506
PE506 -> PE508
PE508 -> PE578
PE508 -> PE575
PE508 -> PE571
PE508 -> PE569
PE501 -> PE504
PE504 -> PE505
PE505 -> PE577
PE505 -> PE574
PE505 -> PE570
PE505 -> PE568
PE341 -> PE348
PE341 -> PE347
PE341 -> PE346
PE341 -> PE343
PE341 -> PE342
PE341 -> PE349
PE349 -> PE353
PE353 -> PE366
PE366 -> PE367
PE352 -> PE366
PE348 -> PE352
PE351 -> PE366
PE347 -> PE351
PE350 -> PE366
PE346 -> PE350
PE345 -> PE366
PE343 -> PE345
PE344 -> PE366
PE342 -> PE344
PE99 -> PE102
PE99 -> PE101
PE99 -> PE100
PE102 -> PE177
PE102 -> PE176
PE102 -> PE105
PE101 -> PE107
PE101 -> PE106
PE101 -> PE104
PE104 -> PE184
PE100 -> PE103
PE103 -> PE183
PE103 -> PE182
PE103 -> PE181
PE103 -> PE180
PE103 -> PE179
PE103 -> PE178
PE181 -> PE187
PE179 -> PE186
PE178 -> PE185
}
Comment 1 Wim De Pauw CLA 2006-03-23 12:04:35 EST
Created attachment 36814 [details]
testcase: 4 examples of graphs

The bmp files in this example show the draw2d graphlayout results on the left, and 
the layouts by a non-open-source layout algorithm on the right. 
The dot files contain the description of the corresponding graphs.
Comment 2 Anthony Hunter CLA 2007-03-23 11:15:54 EDT
Hi, Can I ask how you loaded the dot format files into a Draw2d example?
Comment 3 Wim De Pauw CLA 2007-03-23 11:40:13 EDT
Hi, I created a simple program that reads the file below and creates nodes and edges from them. I then ran Draw2D. Unfortunately, I don't have this test program anymore, since it has been some time since I tried this. 

In the meantime, I am using Graphviz as my graph layout engine, and that works fine. In my program I produce a dot file, that I stream into a "dot" (graphviz) process with "Runtime.exec(), and I capture the output stream from "dot" (it has a "plain output file format). I then populate my graphics program with these results. Dot is working great, even for large (thousands) of nodes. 
Would it make sense to add a function to Draw2D so that you can connect to a dot layout engine (like i did), rather than using the draw2d graph layout engine?
Thanks. -Wim

Comment 4 Anthony Hunter CLA 2007-03-23 12:00:32 EDT
I started playing with an example to read dot files as well.

It would be neat if you could contribute your connection to the dot engine as something we could add to the examples.
Comment 5 Alexander Nyßen CLA 2013-10-17 09:44:44 EDT
Unset target milestone as the specified one is already passed.