Re: Connecting graph vertices with edges that never intersect



Tony wrote:
I wonder what kind of theory exists out there, if any, that can help
with this problem?

Basically you are drawing a graph and you are given a set of edges that
connect graph's vertices. You want to arrange positions of the vertices
and/or bend the edges in such a way that any one edge never intersects
any other edge (or at best you want to minimize the number of edge
intersections.)

This is a well studied area - you are testing the graph for planarity. In 1974 Hopcroft and Tarjan published an algorithm for testing planarity that that linear time in the number of vertices and edges. Older work includes Kuratowski's Theorem that gives a classification of planar graphs, although his classification is somewhat impractical for computational purposes.


If the graph is not planar, I think that finding a way to draw the graph with minimal edge crossings is difficult. This is of course of great interest to people like circuit board designers. I think that it is an NP complete problem, meaning that no-one knows if an decent algorithm exists. However, I believe that there are many heuristic algorithms that attempt to give good if not best answers.

I had a student once go through the paper by Hopcroft and Tarjan, and we found it confusing in places. However, there are quite a few books on the subject which will explain these algorithms well.

I found this using google.

http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK4/NODE170.HTM
.



Relevant Pages

  • Re: Shortish paths
    ... For how many nodes and how many edges will the actual algorithm run ... original graph. ... optimal solution is removed from the graph, ... I intend to begin by rereading the shortest path sections of Cormen ...
    (comp.theory)
  • Re: Standard graph API?
    ... isomorphism graph library. ... It's pretty uniformly agreed that there is no standard graph ... the algorithm can't be specialized for the graph at ... My thought is to use some sort of templating system. ...
    (comp.lang.python)
  • Difference between two systems of DAGs
    ... I am looking for a graph algorithm, ... carry no label or other information except direction. ... edit operations are to change the label of a vertex or the ...
    (comp.theory)
  • Re: Vertex Cover implementation
    ... i code this simple greedy algorithm for the vertex cover: ... As you are constructing your graph you can update the vertex ... each edge appears on two adjacency lists. ... reason to use a priority queue for your algorithm. ...
    (comp.theory)
  • Re: combinatorial optimization problem (six-pick wager grouping)
    ... versed in graph theoretic approaches could comment on my ideas below - ... I'n not a graph theorist, nor a graph algorithm buff, so I can't really ... attempt to merge it with each bet already in the pool. ... million edges when I ignored wager size. ...
    (comp.programming)