Bipolar orientation
In graph theory, a bipolar orientation or st-orientation of an undirected graph is an assignment of a direction to each edge (an orientation) that causes the graph to become a directed acyclic graph with a single source s and a single sink t, and an st-numbering of the graph is a topological ordering of the resulting directed acyclic graph.[1][2]
Definitions and existence
Let G = (V,E) be an undirected graph with n = |V| vertices. An orientation of G is an assignment of a direction to each edge of G, making it into a directed graph. It is an acyclic orientation if the resulting directed graph has no directed cycles. Every acyclically oriented graph has at least one source (a vertex with no incoming edges) and at least one sink (a vertex with no outgoing edges); it is a bipolar orientation if it has exactly one source and exactly one sink. In some situations, G may be given together with two designated vertices s and t; in this case, a bipolar orientation for s and t must have s as its unique source and t as its unique sink.[1][2]
An st-numbering of G (again, with two designated vertices s and t) is an assignment of the integers from 1 to n to the vertices of G, such that
- each vertex is assigned a distinct number,
- s is assigned the number 1,
- t is assigned the number n, and
- if a vertex v is assigned the number i with 1 < i < n, then at least one neighbor of v is assigned a smaller number than i and at least one neighbor of v is assigned a larger number than i.[1][2][3]
A graph has a bipolar orientation if and only if it has an st-numbering. For, if it has a bipolar orientation, then an st-numbering may be constructed by finding a topological ordering of the directed acyclic graph given by the orientation, and numbering each vertex by its position in the ordering. In the other direction, every st-numbering gives rise to a topological ordering, in which each edge of G is oriented from its lower-numbered endpoint to its higher-numbered endpoint.[1][2] In a graph containing edge st, an orientation is bipolar if and only if it is acyclic and the orientation formed by reversing edge st is totally cyclic.[2]
A connected graph G, with designated vertices s and t, has a bipolar orientation and an st-numbering if and only if the graph formed from G by adding an edge from s to t is 2-vertex-connected.[3] In one direction, if this graph is 2-vertex-connected, then a bipolar orientation may be obtained by consistently orienting each ear in an ear decomposition of the graph.[4] In the other direction, if the graph is not 2-vertex-connected, then it has an articulation vertex v separating some biconnected component of G from s and t. If this component contains a vertex with a lower number than v, then the lowest-numbered vertex in the component cannot have a lower-numbered neighbor, and symmetrically if it contains a vertex with a higher number than v then the highest-numbered vertex in the component cannot have a higher-numbered neighbor.
Applications to planarity
Lempel, Even & Cederbaum (1967) formulated st-numberings as part of a planarity testing algorithm,[3] and Rosenstiehl & Tarjan (1986) formulated bipolar orientations as part of an algorithm for constructing tessellation representations of planar graphs.[1]
A bipolar orientation of a planar graph results in an st-planar graph, a directed acyclic planar graph with one source and one sink. These graphs are of some importance in lattice theory as well as in graph drawing: the Hasse diagram of a two-dimensional lattice is necessarily st-planar, and every transitively reduced st-planar graph represents a two-dimensional lattice in this way.[5] A directed acyclic graph G has an upward planar drawing if and only if G is a subgraph of an st-planar graph.[6]
Algorithms
It is possible to find an st-numbering, and a bipolar orientation, of a given graph with designated vertices s and t, in linear time using depth-first search.[7][8][9] The algorithm of Tarjan (1986) uses a depth-first search that starts at vertex s and first traverses edge st. As in the depth-first-search based algorithm for testing whether a graph is biconnected, this algorithm defines pre(v), for a vertex v, to be the preorder number of v in the depth-first traversal, and low(v) to be the smallest preorder number that can be reached by following a single edge from a descendant of v in the depth-first search tree. Both of these numbers may be computed in linear time as part of the depth-first search. The given graph will be biconnected (and will have a bipolar orientation) if and only t is the only child of s in the depth-first search tree and low(v) < pre(v) for all vertices v other than s. Once these numbers have been computed, Tarjan's algorithm performs a second traversal of the depth-first search tree, maintaining a number sign(v) for each vertex v and a linked list of vertices that will eventually list all vertices of the graph in the order given by an st-numbering. Initially, the list contains s and t, and sign(s) = −1. When each vertex v is first encountered by this second traversal, v is inserted into the list, either before or after its parent p(v) in the depth-first search tree according to whether sign(low(v)) is negative or positive respectively; then sign(p(v)) is set to −sign(low(v)). As Tarjan shows, the vertex ordering resulting from this procedure gives an st-numbering of the given graph.[9]
Alternatively, efficient sequential and parallel algorithms may be based on ear decomposition.[4][10] An open ear decomposition of a given graph, with designated vertices s and t, may be defined as a partition of the edges of the graph into a sequence of paths called "ears", in which the endpoints of the first ear are s and t, the endpoints of each subsequent ear appear in previous ears in the sequence, and each vertex in the interior of one of the ears appears for the first time in that ear. An open ear decomposition exists if and only if the graph formed from the given graph by adding an edge st is biconnected (the same condition as the existence of a bipolar orientation), and it can be found in linear time. An st-orientation may be obtained by directing each ear in a consistent direction, taking care that if there already exists a directed path connecting the same two endpoints among the edges of previous ears then the new ear must be oriented in the same direction. However, testing this directly by a reachability computation would be slow. Maon, Schieber & Vishkin (1986) provide a complicated but localized search procedure for determining an appropriate orientation for each ear that (unlike the approach using depth-first search) is suitable for parallel computation.[4]
Papamanthou & Tollis (2006) report on algorithms for controlling the lengths of the directed paths in a bipolar orientation of a given graph, which in turn leads to some control over the width and height of certain types of graph drawing.[11]
The space of all orientations
For 3-vertex-connected graphs, with designated vertices s and t, any two bipolar orientations may be connected to each other by a sequence of operations that reverse one edge at a time, at each step maintaining a bipolar orientation.[2] More strongly, for planar 3-connected graphs, the set of bipolar orientations can be given the structure of a finite distributive lattice, with the edge-reversal operation corresponding to the covering relation of the lattice.[2] For any graph with designated source and sink, the set of all bipolar orientations may be listed in polynomial time per orientation.[2]
References
- 1 2 3 4 5 Rosenstiehl, Pierre; Tarjan, Robert E. (1986), "Rectilinear planar layouts and bipolar orientations of planar graphs", Discrete and Computational Geometry, 1 (4): 343–353, doi:10.1007/BF02187706, MR 866369.
- 1 2 3 4 5 6 7 8 de Fraysseix, Hubert; de Mendez, Patrice Ossona; Rosenstiehl, Pierre (1995), "Bipolar orientations revisited", Discrete Applied Mathematics, 56 (2-3): 157–179, doi:10.1016/0166-218X(94)00085-R, MR 1318743.
- 1 2 3 Lempel, A.; Even, S.; Cederbaum, I. (1967), "An algorithm for planarity testing of graphs", Theory of Graphs (Internat. Sympos., Rome, 1966), New York: Gordon and Breach, pp. 215–232, MR 0220617.
- 1 2 3 Maon, Y.; Schieber, B.; Vishkin, U. (1986), "Parallel ear decomposition search (EDS) and ST-numbering in graphs", Theoretical Computer Science, 47 (3), doi:10.1016/0304-3975(86)90153-2, MR 0882357.
- ↑ Platt, C. R. (1976), "Planar lattices and planar graphs", Journal of Combinatorial Theory, Ser. B, 21 (1): 30––39, doi:10.1016/0095-8956(76)90024-1.
- ↑ Di Battista, Giuseppe; Tamassia, Roberto (1988), "Algorithms for plane representations of acyclic digraphs", Theoretical Computer Science, 61 (2-3): 175––198, doi:10.1016/0304-3975(88)90123-5.
- ↑ Ebert, J. (1983), "st-ordering the vertices of biconnected graphs", Computing, 30 (1): 19–33, doi:10.1007/BF02253293, MR 691948.
- ↑ Even, Shimon; Tarjan, Robert Endre (1976), "Computing an st-numbering", Theoretical Computer Science, 2 (3): 339–344, doi:10.1016/0304-3975(76)90086-4, MR 0414406.
- 1 2 Tarjan, Robert Endre (1986), "Two streamlined depth-first search algorithms" (PDF), Fundamenta Informaticae, 9 (1): 85–94, MR 848212.
- ↑ Gazit, Hillel (1991), "Optimal EREW parallel algorithms for connectivity, ear decomposition and st-numbering of planar graphs", Proc. 5th International Parallel Processing Symposium, pp. 84–91, doi:10.1109/IPPS.1991.153761.
- ↑ Papamanthou, Charalampos; Tollis, Ioannis G. (2006), "Applications of parameterized st-orientations in graph drawing algorithms" (PDF), Graph Drawing: 13th International Symposium, GD 2005, Limerick, Ireland, September 12-14, 2005, Revised Papers, Lecture Notes in Computer Science, 3843, Berlin: Springer, pp. 355–367, doi:10.1007/11618058_32, MR 2244524.