Eades, Lin, and Smyth have suggested Fast and efficient heuristics for feedback problem . The original article is behind the pay line, but a free copy can be obtained from here .
Theres is a topological sorting algorithm that builds the order of vertices by selecting a vertex without incoming arcs that is recursive on the graph minus a vertex and adding this vertex to the order. (Im describing the algorithm recursively, but you don't need to implement it that way.) The Eades-Lin-Smyth algorithm also considers vertices without outgoing arcs and adds them. Of course, it may happen that all vertices have an incoming and outgoing arc. In this case, select the peak with the highest difference between inbound and outbound. There is undoubtedly a place for experimentation.
Proven Worst Behavior Algorithms are based on linear programming and graphs. They are neat, but the guarantees are less than ideal (log ^ 2 n or log n log log n times as arcs arcs as needed), and I suspect that effective implementations will be quite a project.
David Eisenstat
source share