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. 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. The notions of hitting set and set cover are equivalent too.
Definition
Recall that a hypergraph H is a pair, where V is a set of vertices and E is a set of subsets of V called hyperedges. Each hyperedge may contain one or more vertices. A vertex-cover in H is set T ⊆ V such that, for all hyperedges e ∈ E, it holds that T ∩ e ≠ ∅. The vertex-cover number of a hypergraph H is the smallest size of a vertex cover in H. It is often denoted by. For example, if H is this 3-uniform hypergraph: then H has admits several vertex-covers of size 2, for example: However, no subset of size 1 hits all the hyperedges of H. Hence the vertex-cover number of H 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 problemsminimum hitting set and hitting set are defined as in the case of graphs. If the maximum size of a hyperedge is restricted to d, then the problem of finding a minimum d-hitting set permits a d-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 d − 1. For the hitting set problem, different parametrizations make sense. The hitting set problem is W-complete for the parameter OPT, that is, it is unlikely that there is an algorithm that runs in time fnO where OPT is the cardinality of the smallest hitting set. The hitting set problem is fixed-parameter tractable for the parameter OPT + d, where d is the size of the largest edge of the hypergraph. More specifically, there is an algorithm for hitting set that runs in time dOPTnO.
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. 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 to each vertex in V, such that for every hyperedge e in E, the sum of fractions of vertices in e 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 H is the smallest size of a fractional vertex-cover in H. It is often denoted by. Since a vertex-cover is a special case of a fractional vertex-cover, for every hypergraph H:
If each vertex is contained in at most d hyperedges, then .
Transversals in finite projective planes
A finite projective plane is a hypergraph in which every two hyperedges intersect. Every finite projective plane is r-uniform for some integer r. Denote by Hr the r-uniform projective plane. The following projective planes are known to exist: