Skip to content

[Rule] MinimumVertexCover to MinimumFeedbackVertexSet #207

@isPANN

Description

@isPANN

Source: VERTEX COVER
Target: FEEDBACK VERTEX SET
Motivation: Establishes NP-completeness of MinimumFeedbackVertexSet via polynomial-time reduction from MinimumVertexCover, showing that every undirected edge can be converted into a directed 2-cycle so that a vertex cover in the original graph corresponds exactly to a feedback vertex set in the constructed digraph.

Reference: Garey & Johnson, Computers and Intractability, A1.1 GT7

GJ Source Entry

[GT7] FEEDBACK VERTEX SET
INSTANCE: Directed graph G = (V,A), positive integer K ≤ |V|.
QUESTION: Is there a subset V' ⊆ V with |V'| ≤ K such that V' contains at least one vertex from every directed cycle in G?

Reference: [Karp, 1972]. Transformation from VERTEX COVER.
Comment: Remains NP-complete for digraphs having no in- or out-degree exceeding 2, for planar digraphs with no in- or out-degree exceeding 3 [Garey and Johnson, ——], and for edge digraphs [Gavril, 1977a], but can be solved in polynomial time for reducible graphs [Shamir, 1977]. The corresponding problem for undirected graphs is also NP-complete.

Reduction Algorithm

Summary:
Given a MinimumVertexCover instance (G=(V,E), k) where G is an undirected graph, construct a MinimumFeedbackVertexSet instance (G'=(V',A'), k') as follows:

  1. Vertex set: V' = V (one vertex in G' for each vertex in G; no new vertices are added).
  2. Arc set: For each undirected edge {u,v} ∈ E, add both directed arcs (u→v) and (v→u) to A'. Each undirected edge becomes a directed 2-cycle of length 2: u→v→u.
  3. Budget parameter: Set k' = k.
  4. Key invariant: Every 2-cycle u→v→u in G' corresponds to an edge {u,v} in G. Hitting all 2-cycles is equivalent to covering all edges. Any longer directed cycle must traverse some arc (u,v), and {u,v} is an edge of G, so if S covers all edges then S already contains u or v, breaking that longer cycle as well. Hence FVS(G') = VC(G).
  5. Solution extraction: Any FVS of size ≤ k in G' is a vertex cover of size ≤ k in G, and vice versa.

Correctness:

  • (⇒) If S is a vertex cover for G of size ≤ k, then for every directed 2-cycle u→v→u in G', at least one of u, v is in S (since {u,v} ∈ E). Hence S is a FVS for G' of size ≤ k.
  • (⇐) If S is a FVS for G' of size ≤ k, then for every arc (u,v) ∈ A', the 2-cycle u→v→u is broken, so at least one of u, v is in S. Since every edge {u,v} ∈ E generated arcs in both directions, S covers every edge of G.

Size Overhead

Symbols:

  • n = num_vertices of source graph G
  • m = num_edges of source graph G
Target metric (code name) Polynomial (using symbols above)
num_vertices num_vertices
num_arcs 2 * num_edges

Derivation:

  • Vertices: same vertex set, no additions → |V'| = n
  • Arcs: each undirected edge {u,v} yields two directed arcs (u→v) and (v→u) → |A'| = 2m

Validation Method

  • Closed-loop test: reduce a MinimumVertexCover instance to MinimumFeedbackVertexSet, solve target with BruteForce, extract solution (same vertex set), verify it is a valid vertex cover on the original undirected graph
  • Check that the minimum FVS size in G' equals the minimum VC size in G
  • Test with a path graph P_n (minimum VC = ⌈(n−1)/2⌉): the constructed digraph has 2(n−1) arcs forming n−1 independent 2-cycles; minimum FVS = ⌈(n−1)/2⌉ ✓
  • Test with a complete graph K_n (minimum VC = n−1): verify minimum FVS = n−1 in the all-pairs bidirected digraph

Example

Source instance (MinimumVertexCover):
Graph G with 7 vertices {0, 1, 2, 3, 4, 5, 6} and 8 edges:

  • Edges: {0,1}, {0,2}, {0,3}, {1,2}, {1,3}, {3,4}, {4,5}, {5,6}
  • Structure: K4 minus edge {2,3} on vertices {0,1,2,3}, plus a path 3–4–5–6. Contains two triangles: {0,1,2} and {0,1,3}. Three vertices (0, 1, 3) have degree 3; vertices 2, 4, 5 have degree 2; vertex 6 has degree 1.
  • Minimum vertex cover: k = 4, for example {0, 1, 3, 5}:
    • {0,1} covered by 0 ✓, {0,2} covered by 0 ✓, {0,3} covered by 0 ✓
    • {1,2} covered by 1 ✓, {1,3} covered by 1 ✓
    • {3,4} covered by 3 ✓, {4,5} covered by 5 ✓, {5,6} covered by 5 ✓

Constructed target instance (MinimumFeedbackVertexSet):
Directed graph G' with 7 vertices {0, 1, 2, 3, 4, 5, 6} and 16 arcs:

  • From edge {0,1}: arcs (0→1) and (1→0)
  • From edge {0,2}: arcs (0→2) and (2→0)
  • From edge {0,3}: arcs (0→3) and (3→0)
  • From edge {1,2}: arcs (1→2) and (2→1)
  • From edge {1,3}: arcs (1→3) and (3→1)
  • From edge {3,4}: arcs (3→4) and (4→3)
  • From edge {4,5}: arcs (4→5) and (5→4)
  • From edge {5,6}: arcs (5→6) and (6→5)

Directed cycles in G': eight 2-cycles ({0↔1}, {0↔2}, {0↔3}, {1↔2}, {1↔3}, {3↔4}, {4↔5}, {5↔6}) plus longer cycles induced by the triangles (e.g., 0→1→2→0 from triangle {0,1,2} and 0→1→3→0 from triangle {0,1,3}). Hitting all 2-cycles automatically breaks longer cycles too.

Target budget: K' = k = 4

Solution mapping:

  • Minimum FVS in G': {0, 1, 3, 5}
    • Breaks 2-cycle {0↔1}: vertex 0 ∈ FVS ✓
    • Breaks 2-cycle {0↔2}: vertex 0 ∈ FVS ✓
    • Breaks 2-cycle {0↔3}: vertex 0 ∈ FVS ✓
    • Breaks 2-cycle {1↔2}: vertex 1 ∈ FVS ✓
    • Breaks 2-cycle {1↔3}: vertex 1 ∈ FVS ✓
    • Breaks 2-cycle {3↔4}: vertex 3 ∈ FVS ✓
    • Breaks 2-cycle {4↔5}: vertex 5 ∈ FVS ✓
    • Breaks 2-cycle {5↔6}: vertex 5 ∈ FVS ✓
    • Remaining graph on {2, 4, 6}: arcs (2→0), (2→1), (4→3), (4→5), (6→5) all point to removed vertices — no arcs remain among {2, 4, 6}, so the induced subgraph is edgeless, hence acyclic ✓
  • Extracted vertex cover in G: {0, 1, 3, 5} — same set
  • Verification: all 8 edges of G are covered ✓
  • FVS size = 4 = k ✓

Greedy trap: Vertices 0, 1, and 3 all have degree 3 (tied for maximum). Vertex 3 appears in only 2 of 5 optimal solutions, while vertex 0 appears in 4 of 5. If a greedy max-degree heuristic commits to vertex 3 early while skipping both 0 and 1, it can be forced into a suboptimal cover of size 5. The 5 distinct optimal solutions — {0,1,3,5}, {0,1,4,5}, {0,1,4,6}, {0,2,3,5}, {1,2,3,5} — illustrate that the dense near-K4 subgraph and the path tail interact in non-trivial ways.

References

  • [Karp, 1972]: [Karp1972] Richard M. Karp (1972). "Reducibility among combinatorial problems". In: Complexity of Computer Computations. Plenum Press.
  • [Garey and Johnson, ——]: (not found in bibliography)
  • [Gavril, 1977a]: [Gavril1977a] F. Gavril (1977). "Some {NP}-complete problems on graphs". In: Proceedings of the 11th Conference on Information Sciences and Systems, pp. 91–95. Johns Hopkins University.
  • [Shamir, 1977]: [Shamir1977] Adi Shamir (1977). "Finding minimum cutsets in reducible graphs". Laboratory for Computer Science, Massachusetts Institute of Technology.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GoodAn issue passed all checks.ruleA new reduction rule to be added.

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions