Vertex cover in hypergraphs
In graph theory, a vertex cover in a hypergraph is a set of vertices, such that every hyperedge of the hypergraph contains at least one vertex of that set. It is an extension of the notion of vertex cover in a graph.[1]Template:Rp[2]
An equivalent term is a hitting set: given a collection of sets, a set which intersects all sets in the collection in at least one element is called a hitting set. The equivalence can be seen by mapping the sets in the collection onto hyperedges.
Another equivalent term, used more in a combinatorial context, is transversal. However, some definitions of transversal require that every hyperedge of the hypergraph contains precisely one vertex from the set.
Definition
Recall that a hypergraph Template:Mvar is a pair Template:Math, where Template:Mvar is a set of vertices and Template:Mvar is a set of subsets of Template:Mvar called hyperedges. Each hyperedge may contain one or more vertices.
A vertex-cover (aka hitting set or transversal) in Template:Mvar is set Template:Math such that, for all hyperedges Template:Math, it holds that Template:Math.
The vertex-cover number (aka transversal number) of a hypergraph Template:Mvar is the smallest size of a vertex cover in Template:Mvar. It is often denoted by Template:Math.[1]Template:Rp
For example, if Template:Mvar is this 3-uniform hypergraph:
then Template:Mvar has admits several vertex-covers of size 2, for example:
However, no subset of size 1 hits all the hyperedges of Template:Mvar. Hence the vertex-cover number of Template:Mvar is 2.
Note that we get back the case of vertex covers for simple graphs if the maximum size of the hyperedges is 2.
Algorithms
The computational problems minimum hitting set and hitting set are defined as in the case of graphs.
If the maximum size of a hyperedge is restricted to Template:Mvar, then the problem of finding a minimum Template:Mvar-hitting set permits a [[K-approximation of k-hitting set|Template:Mvar-approximation]] algorithm. Assuming the unique games conjecture, this is the best constant-factor algorithm that is possible and otherwise there is the possibility of improving the approximation to Template:Math.[3]
For the hitting set problem, different parametrizations make sense.[4] The hitting set problem is Template:Math-complete for the parameter Template:Math, that is, it is unlikely that there is an algorithm that runs in time Template:Math where Template:Math is the cardinality of the smallest hitting set. The hitting set problem is fixed-parameter tractable for the parameter Template:Math, where Template:Mvar is the size of the largest edge of the hypergraph. More specifically, there is an algorithm for hitting set that runs in time Template:Math.
Hitting set and set cover
The hitting set problem is equivalent to the set cover problem: An instance of set cover can be viewed as an arbitrary bipartite graph, with sets represented by vertices on the left, elements of the universe represented by vertices on the right, and edges representing the inclusion of elements in sets. The task is then to find a minimum cardinality subset of left-vertices which covers all of the right-vertices. In the hitting set problem, the objective is to cover the left-vertices using a minimum subset of the right vertices. Converting from one problem to the other is therefore achieved by interchanging the two sets of vertices.
Applications
An example of a practical application involving the hitting set problem arises in efficient dynamic detection of race condition.[5][6] In this case, each time global memory is written, the current thread and set of locks held by that thread are stored. Under lockset-based detection, if later another thread writes to that location and there is not a race, it must be because it holds at least one lock in common with each of the previous writes. Thus the size of the hitting set represents the minimum lock set size to be race-free. This is useful in eliminating redundant write events, since large lock sets are considered unlikely in practice.
Fractional vertex cover
A fractional vertex-cover is a function assigning a weight in Template:Math to each vertex in Template:Mvar, such that for every hyperedge Template:Mvar in Template:Mvar, the sum of fractions of vertices in Template:Mvar is at least 1. A vertex cover is a special case of a fractional vertex cover in which all weights are either 0 or 1. The size of a fractional vertex-cover is the sum of fractions of all vertices.
The fractional vertex-cover number of a hypergraph Template:Mvar is the smallest size of a fractional vertex-cover in Template:Mvar. It is often denoted by Template:Math.
Since a vertex-cover is a special case of a fractional vertex-cover, for every hypergraph Template:Mvar:
fractional-vertex-cover-number(Template:Mvar) ≤ vertex-cover-number (Template:Mvar);
In symbols:
The fractional-vertex-cover-number of a hypergraph is, in general, smaller than its vertex-cover-number. A theorem of László Lovász provides an upper bound on the ratio between them:[7]
- If each vertex is contained in at most Template:Mvar hyperedges (i.e., the degree of the hypergraph is at most Template:Mvar), then
Transversals in finite projective planes
A finite projective plane is a hypergraph in which every two hyperedges intersect. Every finite projective plane is Template:Mvar-uniform for some integer Template:Mvar. Denote by Template:Mvar the Template:Mvar-uniform projective plane. The following projective planes are known to exist:
- Template:Math: it is simply a triangle graph.
- Template:Math: it is the Fano plane.
- Template:Math exists whenever Template:Mvar is the power of a prime number.
When Template:Mvar exists, it has the following properties:[8]
- It has Template:Math vertices and Template:Math hyperedges.
- It is Template:Mvar-uniform - each hyperedge contains exactly Template:Mvar vertices.
- It is Template:Mvar-regular - each vertex is contained in exactly Template:Mvar hyperedges.
- Template:Math: the Template:Mvar vertices in each hyperedge Template:Mvar are a vertex-cover of Template:Mvar (since every other hyperedge intersects Template:Mvar).
- The only transversals of size Template:Mvar are the hyperedges; all other transversals have size at least Template:Math.
- Template:Math.
- Template:Math: every matching in Template:Mvar contains at most a single hyperedge.
Minimal transversals
A vertex-cover (transversal) Template:Mvar is called minimal if no proper subset of Template:Mvar is a transversal.
The transversal hypergraph of Template:Mvar is the hypergraph Template:Math whose hyperedge set Template:Mvar consists of all minimal-transversals of Template:Mvar.
Computing the transversal hypergraph has applications in combinatorial optimization, in game theory, and in several fields of computer science such as machine learning, indexing of databases, the satisfiability problem, data mining, and computer program optimization.
See also
- Matching in hypergraphs – discusses also the duality between vertex-cover and matching.