Convex bipartite graph
Template:Short description Template:Use list-defined references Template:CS1 config
In the mathematical field of graph theory, a convex bipartite graph is a bipartite graph with specific properties. A bipartite graph is said to be convex over the vertex set if can be enumerated such that for all , the vertices adjacent to are consecutive in the enumeration. Convexity over is defined analogously. A bipartite graph that is convex over both and is said to be biconvex or doubly convex.Template:R
Properties
For a biconvex graph with labelings and , let denote the set of neighbors of vertex . A biconvex graph is called forward-convex if there exists a labeling such that is convex and the labeling has the forward property: for every pair of vertices with , it holds that (where means that contains as a consecutive segment).Template:R
It has been proven that forward-convex graphs are equivalent to permutation graphs. A biconvex graph is forward-convex (and hence a bipartite permutation graph) if and only if it contains no induced subgraph isomorphic to certain forbidden configurations.Template:R
Every biconvex graph is a 4-polygon graph, that is, its vertices can be represented as chords inside a convex 4-sided polygon such that two vertices are adjacent if and only if their corresponding chords intersect.Template:R Furthermore, every biconvex graph has a biconvex S-ordering (straight ordering), which is a biconvex ordering that generalizes the strong ordering of bipartite permutation graphs and prohibits certain crossing patterns between edges.Template:R
Strongly biconvex graphs
A strongly biconvex graph is a bipartite graph with labelings and such that if is an edge, then
For any with and edge : if then is an edge, and if then is an edge.Template:R Every strongly biconvex graph is biconvex and weakly chordal.Template:R
Algorithms
Maximum matching
Finding a maximum matching in a convex bipartite graph can be done efficiently. Glover showed that a maximum matching can be found using a greedy algorithm that processes vertices in order.Template:R Subsequent improvements by various researchers culminated in a linear-time algorithm.Template:R
For the dynamic version of the problem, where the graph is modified by vertex and edge insertions and deletions, it is impossible to maintain an explicit representation of a maximum matching in sub-linear time per operation, even in the amortized sense, because a single update can change edges in the matching.Template:R However, it is possible to efficiently maintain which vertices are matched: there exists a data structure that maintains the set of matched vertices in amortized time per update operation, answers whether a given vertex is matched in worst-case time, and can identify the mate of a matched vertex in amortized time.Template:RTemplate:R
Maximum edge biclique
A biclique is a complete bipartite subgraph. The maximum edge biclique problem asks for a biclique with the maximum number of edges. In general bipartite graphs, this problem is NP-complete,Template:R but for convex bipartite graphs it can be solved in polynomial time. Given a convex bipartite graph with , a maximum edge biclique can be found in time and space.Template:R For the special cases of biconvex graphs and bipartite permutation graphs, the problem can be solved even more efficiently in and time respectively, where is the inverse Ackermann function.Template:R
The maximum edge biclique problem has applications in analyzing DNA microarray data, where it corresponds to finding biclusters—subsets of genes that exhibit coherent expression patterns across subsets of experimental conditions.Template:R
Maximum induced matching
An induced matching is a set of edges that are pairwise at distance at least 3. Finding a maximum induced matching is NP-hard for general bipartite graphs, but can be solved efficiently for certain subclasses. For strongly biconvex graphs, a maximum induced matching can be computed in linear time using a greedy algorithm.Template:R Indeed, even a maximum-weight induced matching can be computed in linear-time for any convex bipartite graph using dynamic programming.Template:R
Vertex ranking
The vertex ranking problem asks for a coloring of vertices with the property that every path between two vertices of the same color must contain a vertex of higher color, using the minimum number of colors. While this problem is NP-complete for general bipartite graphs, it can be solved in polynomial time for biconvex graphs in time, where is the number of vertices and is the number of edges.Template:R
See also
References
- ↑ Template:Cite journal Cite error:
<ref>tag with name "lp81" defined in<references>is not used in prior text. - ↑ Template:Cite journal Cite error:
<ref>tag with name "lw97" defined in<references>is not used in prior text. - ↑ Template:Cite book Cite error:
<ref>tag with name "s03" defined in<references>is not used in prior text. - ↑ Template:Cite book Cite error:
<ref>tag with name "bls99" defined in<references>is not used in prior text. - ↑ Template:Cite conference Cite error:
<ref>tag with name "bghk07" defined in<references>is not used in prior text. - ↑ Template:Cite conference Cite error:
<ref>tag with name "npsu10" defined in<references>is not used in prior text. - ↑ Template:Cite journal Cite error:
<ref>tag with name "as00" defined in<references>is not used in prior text. - ↑ Template:Cite journal Cite error:
<ref>tag with name "sk21" defined in<references>is not used in prior text. - ↑ Template:Cite journal Cite error:
<ref>tag with name "kr22" defined in<references>is not used in prior text. - ↑ Template:Cite web Cite error:
<ref>tag with name "rr22" defined in<references>is not used in prior text.