Hubbry Logo
Edge coverEdge coverMain
Open search
Edge cover
Community hub
Edge cover
logo
7 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Edge cover
Edge cover
from Wikipedia

In graph theory, an edge cover of a graph is a set of edges such that every vertex of the graph is an endpoint of at least one edge of the set. In computer science, the minimum edge cover problem is the problem of finding an edge cover of minimum size. It is an optimization problem that belongs to the class of covering problems and can be solved in polynomial time.

Definition

[edit]

Formally, an edge cover of a graph G is a set of edges C such that each vertex in G is incident with at least one edge in C. The set C is said to cover the vertices of G. The following figure shows examples of edge coverings in two graphs (the set C is marked with red).

A minimum edge covering is an edge covering of smallest possible size. The edge covering number ρ(G) is the size of a minimum edge covering. The following figure shows examples of minimum edge coverings (again, the set C is marked with red).

Note that the figure on the right is not only an edge cover but also a matching. In particular, it is a perfect matching: a matching M in which every vertex is incident with exactly one edge in M. A perfect matching (if it exists) is always a minimum edge covering.

Examples

[edit]
  • The set of all edges is an edge cover, assuming that there are no degree-0 vertices.
  • The complete bipartite graph Km,n has edge covering number max(m, n).

Algorithms

[edit]

A smallest edge cover can be found in polynomial time by finding a maximum matching and extending it greedily so that all vertices are covered.[1][2] In the following figure, a maximum matching is marked with red; the extra edges that were added to cover unmatched nodes are marked with blue. (The figure on the right shows a graph in which a maximum matching is a perfect matching; hence it already covers all vertices and no extra edges were needed.)

On the other hand, the related problem of finding a smallest vertex cover is an NP-hard problem.[1]

Looking at the image it already becomes obvious why, for a given minimum edge cover and maximum matching , letting and be the number of edges in and respectively, we have:[3] . Indeed, contains a maximum matching, so the edges of can be decomposed between the edges of a maximum matching, covering vertices, and the other edges that each cover one other vertex. Thus, as covers all of the vertices, we have giving the desired equality.

See also

[edit]
  • Vertex cover
  • Set cover – the edge cover problem is a special case of the set cover problem: the elements of the universe are vertices, and each subset covers exactly two elements.

Notes

[edit]

References

[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
In , an edge cover of an undirected graph G=(V,E)G = (V, E) is a subset CEC \subseteq E of edges such that every vertex in VV is incident to at least one edge in CC. This concept is dual to that of a vertex cover, where vertices rather than edges are selected to "cover" all edges of the graph. The minimum edge cover is the edge cover of smallest cardinality, and its size, denoted ρ(G)\rho(G), plays a central role in matching theory. For a graph GG with no isolated vertices, Gallai's identities establish that ρ(G)=Vν(G)\rho(G) = |V| - \nu(G), where ν(G)\nu(G) is the size of a maximum matching in GG. This relation implies that a minimum edge cover can be constructed by taking a maximum matching and adding, for each unmatched vertex, an arbitrary incident edge; the resulting set has the minimal size. Finding a minimum edge cover is computationally tractable, as it reduces to computing a maximum matching, which can be solved in polynomial time using algorithms such as the for general graphs or Hopcroft-Karp for bipartite graphs. Edge covers have been generalized to weighted, directed, and temporal graphs, where optimization problems like minimum weighted edge cover arise in applications such as and network design. Variants, including total edge covers (which exclude isolated edges) and bounded-degree edge covers, introduce additional constraints and are studied for their structural properties in extremal graph theory.

Definition and Properties

Formal Definition

An undirected graph G=(V,E)G = (V, E) consists of a finite set VV of vertices and a set EE of edges, where each edge is an unordered pair of distinct vertices from VV. A vertex vVv \in V is incident to an edge eEe \in E if vv is one of the endpoints of ee. An edge cover of an undirected graph G=(V,E)G = (V, E) is a CEC \subseteq E such that every vertex vVv \in V is incident to at least one edge in CC. Graphs containing isolated vertices (vertices with degree zero) admit no edge cover, as an isolated vertex cannot be incident to any edge. In graphs without isolated vertices, edge covers always exist; the full edge set EE serves as a trivial edge cover. The size of a minimum edge cover of GG is called the edge covering number and is denoted by ρ(G)\rho(G). This concept is related to but distinct from a maximum matching, which is a set of edges with no two sharing a vertex.

Key Properties

An edge cover of a graph is minimal if no proper subset of its edges forms an edge cover, meaning the removal of any single edge leaves at least one vertex uncovered. This property ensures that each edge in the set is essential for covering some vertex that would otherwise remain isolated in the subgraph formed by the remaining edges. Minimal edge covers differ from minimum edge covers in that the former emphasize irreducibility under subset removal, while the latter focus on achieving the smallest possible cardinality; every minimum edge cover is minimal, but not every minimal edge cover is minimum. Every edge cover contains at least one minimal edge cover as a , obtained by iteratively removing redundant edges until no further removal is possible without violating the covering ; since the graph is finite, this terminates. The union of any two edge covers is also an edge cover, as every vertex incident to an edge in either set remains covered in the combined set. For any edge cover CC in a graph G=(V,E)G = (V, E) with V=n|V| = n vertices, the cardinality satisfies Cn/2|C| \geq \lceil n/2 \rceil. The bound n/2\lceil n/2 \rceil follows from the : each edge in CC is incident to at most two vertices, so at least n/2\lceil n/2 \rceil edges are required to cover all nn vertices, with equality possible in graphs admitting a perfect matching. Edge covers exist in a graph if and only if the graph has no isolated vertices, as an isolated vertex cannot be incident to any edge and thus cannot be covered. The edges of an edge cover induce a spanning subgraph of the original graph in which the minimum degree is at least 1, since every vertex is incident to at least one selected edge by definition.

Illustrative Examples

To illustrate the concept of an edge cover, consider simple graphs without isolated vertices, where an edge cover is a set of edges incident to every vertex. In the P3P_3 with vertices labeled 1, 2, 3 and edges {1-2, 2-3}, the set {1-2, 2-3} forms a minimum edge cover of size 2. However, the single edge {1-2} is not an edge cover, as vertex 3 has no incident edge in the set. For the C4C_4 with vertices 1, 2, 3, 4 and edges {1-2, 2-3, 3-4, 4-1}, a minimum edge cover consists of any two non-adjacent edges, such as {1-2, 3-4}, while the full set of four edges is an cover but not minimal. In the K3K_3 with vertices 1, 2, 3 and all three possible edges, any two edges form a minimum edge cover. By Gallai's identity, the covering number equals the number of vertices minus the matching number (which is 1 for K3K_3), yielding size 2. The complete bipartite graph K2,3K_{2,3} has partitions of sizes 2 and 3, with edge covering number 3 (the maximum partition size). This follows from Gallai's identity, as the maximum matching size is 2 and the graph has 5 vertices. As a non-example, a graph consisting of a single isolated vertex has no edge cover, since no edges exist to incident to the vertex.

Minimum Edge Cover

Edge Cover Number

The edge cover number of a graph GG, denoted ρ(G)\rho(G), is the cardinality of a minimum edge cover in GG, that is, the smallest number of edges whose union covers all vertices of GG. This parameter is defined only for graphs without isolated vertices, as isolated vertices cannot be covered by any edge. Trivially, ρ(G)E(G)\rho(G) \leq |E(G)|, since the full edge set is an edge cover. For a graph GG with n=V(G)n = |V(G)| vertices, ρ(G)n/2\rho(G) \geq \lceil n/2 \rceil. This lower bound arises because each edge in an edge cover can incident at most two vertices, so at least n/2\lceil n/2 \rceil edges are needed to cover all nn vertices. Equality holds if and only if ν(G)=n/2\nu(G) = \lfloor n/2 \rfloor, i.e., GG has a maximum matching covering all vertices (perfect matching) when nn is even or all but one vertex when nn is odd. In the even case, a maximum matching serves as a minimum edge cover of size n/2n/2. In any graph GG without isolated vertices, the edge cover number satisfies the Gallai identity ρ(G)+ν(G)=n\rho(G) + \nu(G) = n, where ν(G)\nu(G) is the matching number (size of a maximum matching). This equality provides a computation-independent characterization: ρ(G)=nν(G)\rho(G) = n - \nu(G). For example, in a cycle graph C4C_4 (which has a perfect matching), ν(C4)=2\nu(C_4) = 2 and ρ(C4)=2\rho(C_4) = 2; in a path graph P3P_3, ν(P3)=1\nu(P_3) = 1 and ρ(P3)=2=3/2\rho(P_3) = 2 = \lceil 3/2 \rceil.

Relation to Matchings

In any graph GG without isolated vertices, the edge cover number ρ(G)\rho(G) equals the number of vertices minus the matching number ν(G)\nu(G), that is, ρ(G)=Vν(G)\rho(G) = |V| - \nu(G). This relation, part of the Gallai identities, provides an exact formula for the size of a minimum edge cover in terms of the maximum matching size. A minimum edge cover can be constructed from a maximum matching MM by adding, for each unsaturated vertex (one not incident to any edge in MM), an arbitrary edge incident to that vertex; this process yields an edge cover of size exactly ρ(G)\rho(G). The added edges ensure all vertices are covered without introducing redundancy beyond the minimum required. To see why this holds, consider that a maximum matching MM covers 2ν(G)2\nu(G) vertices, leaving V2ν(G)|V| - 2\nu(G) unsaturated vertices, each of which requires at least one additional edge in any edge cover, implying ρ(G)ν(G)+(V2ν(G))=Vν(G)\rho(G) \geq \nu(G) + (|V| - 2\nu(G)) = |V| - \nu(G). The construction achieves equality by adding precisely one edge per unsaturated vertex, covering them without overlap since the added edges connect to already-covered vertices in MM. This connection implies that if GG has a (where ν(G)=V/2\nu(G) = |V|/2), then ρ(G)=V/2\rho(G) = |V|/2, meaning the minimum edge cover coincides with a perfect matching. More generally, the matching deficiency V2ν(G)|V| - 2\nu(G) directly determines the excess edges needed beyond the matching size, highlighting how structural gaps in matchings inflate the edge cover size. The relation was established by Tibor Gallai in as part of his identities on extremal point and edge sets in graphs.

Algorithms and Complexity

Computing Minimum Edge Covers

A minimum edge cover in a graph without isolated vertices can be computed efficiently by first obtaining a maximum matching and then extending it to cover all remaining vertices. This approach leverages the structural relation between matchings and edge covers, where the size of a minimum edge cover equals the number of vertices minus the size of a maximum matching, denoted ρ(G)=Vν(G)\rho(G) = |V| - \nu(G). The process begins by computing a maximum matching MM using Edmonds' blossom algorithm, which finds a maximum cardinality matching in general graphs in polynomial time. For each vertex unsaturated by MM, an arbitrary incident edge is added to the set, ensuring every vertex is covered while maintaining minimality. The algorithm proceeds in the following steps:
  1. Compute a maximum matching MM in the graph G=(V,E)G = (V, E).
  2. Identify the set UVU \subseteq V of unsaturated vertices, i.e., those not incident to any edge in MM.
  3. For each uUu \in U, select an arbitrary incident edge {u,v}E\{u, v\} \in E, where vv is saturated (since unsaturated vertices form an independent set).
  4. Form the edge cover C=M{{u,v}uU}C = M \cup \{\{u, v\} \mid u \in U\}; this CC is a minimum edge cover with C=VM|C| = |V| - |M|.
If the graph contains isolated vertices, no edge cover exists, as such vertices cannot be incident to any edge. In practice, algorithms may first detect and report isolated vertices, or preprocess by removing them, though the resulting structure would not constitute a valid edge cover for the original graph. In implementation, this method integrates seamlessly with established maximum matching solvers in libraries like NetworkX, where the extension step is a simple greedy augmentation over unsaturated vertices. Added edges connect unsaturated vertices exclusively to saturated ones, preventing overlaps or uncovered vertices and guaranteeing the cover's minimality without additional checks. For illustration, consider the path graph P3P_3 on vertices {1,2,3}\{1, 2, 3\} with edges {1,2}\{1,2\} and {2,3}\{2,3\}. A maximum matching is M={{1,2}}M = \{\{1,2\}\} of size 1, leaving vertex 3 unsaturated. Adding {2,3}\{2,3\} yields C={{1,2},{2,3}}C = \{\{1,2\}, \{2,3\}\}, a minimum edge cover of size 2, matching VM=31|V| - |M| = 3 - 1.

Computational Complexity

The minimum edge cover problem is solvable in polynomial time due to its close relationship with the maximum matching problem. By Gallai's identity, for any graph G=(V,E)G = (V, E) without isolated vertices, the edge cover number ρ(G)\rho(G) satisfies ρ(G)=Vν(G)\rho(G) = |V| - \nu(G), where ν(G)\nu(G) is the size of a maximum matching in GG. Since the maximum matching number ν(G)\nu(G) can be computed in polynomial time, so can ρ(G)\rho(G). The original algorithm for maximum matching, developed by Edmonds, runs in O(V4)O(|V|^4) time. Subsequent improvements, including an algorithm by Gabow, reduce the time complexity to O(VE)O(\sqrt{|V|} |E|)
Add your contribution
Related Hubs
User Avatar
No comments yet.