News for hackers. Stuff that matters.
Re:A new algorithm for graph crossings, hiding in plain sigh... by not2b on Wednesday May 26, 2021 @05:01PM (#27296051)
Of course the constant terms matter, but sqrt(N) < log2(N)^3 up until billions of nodes. For 2*32 nodes sqrt(N) is 2^16 and log2(N)^3 is 2^15. We deal with graphs of that size in electronic design automation, and planar graphs don't need metal crossovers, but we aren't adding one connection at a time. So this result in itself isn't going to be terribly applicable, but may lead to further insights and development of improved graph algorithms.
Re:A new algorithm for graph crossings, hiding in plain sigh... by thomasahle on Wednesday May 26, 2021 @05:06PM (#27296104)
I work with the researchers, and I think they'll be interested in knowing which version of the problem practitioners like yourself are most interested in. Do you ever add/remove edges, perhaps in bulk? Or do are you mostly interested in finding "best possible" layouts for static datasets?
Re:A new algorithm for graph crossings, hiding in plain sigh... by orange3xchicken on Wednesday May 26, 2021 @11:31PM (#27299074)
Practical edge crossing minimization for large graphs (e.g. a billion nodes) is a really hard problem. An alternative formulations that's seen some use in graph drawing & circuit design software is to describe the embedding problem as an optimization problem: find an assignment of coordinates to nodes such that the edges (line segments) don't cross.

It turns out that estimating a lower-bound on the # of edge crossings of an embedded graph is equivalent to solving an SVM-type problem, and one can characterize the optimal layout as the solution to a nonlinear optimization problem. What's typically done, though, is to alternate between finding the bound for a fixed embedding & optimizing the embedding with something like gradient descent.

It gets a bit more confusing once you realize ic netlists are hypergraphs, and edges correspond to sets of nodes, (e.g. the "embedding" of an edge of a set of nodes is sometimes modeled as a rectilinear steiner tree).

For edge crossing/congestion minimization, the authors are Shabeer "Edge crossing minimization", Spindler "Congestion driven placement/RUDY", RePlace for a sota academic force-directed placement algorithm.

Re:A new algorithm for graph crossings, hiding in plain sigh... by not2b on Wednesday May 26, 2021 @05:59PM (#27296631)
I don't work on placement problems, though part of my work provides input for the placement problem (produce an optimized logic netlist that then has to be placed and routed). But if I can suggest something in the same ballpark: imagine that you have a large graph and you want to partition it into a small number of partitions (say, 4 to 10) of similar size. You want each partition to be a planar graph, and you want the number of interconnects between these graphs to be minimal. The graphs would correspond to metal layers on an ASIC. There's a lot of fuzziness in the way I stated it; to make it more rigorous a suitable cost function would need to be defined.
Re:A new algorithm for graph crossings, hiding in plain sigh... by thomasahle on Thursday May 27, 2021 @12:14PM (#27304753)
That sounds like a nice problem: Partition the vertices into planar sub-graphs, minimizing the number of edges between parts.

It's not really a dynamic problem anymore. It also becomes very specific to ASIC. Do you know if it has already been studied?

Re:A new algorithm for graph crossings, hiding in plain sigh... by orange3xchicken on Thursday May 27, 2021 @02:39PM (#27306515)
Someone correct me, but I think hMetis is one popular software/algorithm for multi-level graph/hypergraph partitioning. There is also KaHyPar which is a bit more academic.
Re:A new algorithm for graph crossings, hiding in plain sigh... by throwaway81523 on Wednesday May 26, 2021 @09:10PM (#27298176)
I'm not current on this stuff at all, but I think planarity mattered more in the Mead-Conway era than today. Modern chips have lots of separate metallization layers so you can avoid crossings. Vias aren't free, but they exist so you can use them.
Re:A new algorithm for graph crossings, hiding in plain sigh... by potiuper on Wednesday May 26, 2021 @05:33PM (#27296401)
n=nodes>0; n^0.5=(log n)^3, n~24128091.7 , which is millions not billions? https://www.wolframalpha.com/input/?i=sqrt%28n%29%3D%28log+n...
Re:A new algorithm for graph crossings, hiding in plain sigh... by not2b on Wednesday May 26, 2021 @05:52PM (#27296566)
You're using natural log, for my quick-and-dirty I used log2, which gives a slightly higher crossover point. The exact crossover depends on the size of the constant term, of course.
Re:A new algorithm for graph crossings, hiding in plain sigh... by froh on Wednesday May 26, 2021 @11:09PM (#27298926)