Skip to content

[Rule] VERTEX COVER to COMPARATIVE CONTAINMENT #385

@isPANN

Description

@isPANN

Source: VERTEX COVER
Target: COMPARATIVE CONTAINMENT
Motivation: Establishes NP-completeness of COMPARATIVE CONTAINMENT via polynomial-time reduction from VERTEX COVER. The reduction, due to Plaisted (1976), encodes the vertex cover structure into weighted set containment: each vertex becomes an element of the universe, and edge-coverage constraints are translated into two collections of weighted subsets (R and S) such that a vertex cover of bounded size exists if and only if a subset Y of the universe achieves at least as much R-containment weight as S-containment weight.
Reference: Garey & Johnson, Computers and Intractability, SP10, p.223

GJ Source Entry

[SP10] COMPARATIVE CONTAINMENT
INSTANCE: Two collections R={R_1,R_2,...,R_k} and S={S_1,S_2,...,S_l} of subsets of a finite set X, weights w(R_i) in Z^+, 1<=i<=k, and w(S_j) in Z^+, 1<=j<=l.
QUESTION: Is there a subset Y <= X such that
Sum_{Y <= R_i} w(R_i) >= Sum_{Y <= S_j} w(S_j) ?
Reference: [Plaisted, 1976]. Transformation from VERTEX COVER.
Comment: Remains NP-complete even if all subsets in R and S have weight 1 [Garey and Johnson, ----].

Reduction Algorithm

Summary:

Given a VERTEX COVER instance (graph G = (V, E), bound K), construct a COMPARATIVE CONTAINMENT instance as follows. Let n = |V| and m = |E|.

  1. Universe: Let X = V (one element per vertex).
  2. Collection R (reward sets): For each vertex v in V, create a set R_v = V \ {v} with weight w(R_v) = 1. This rewards Y for each vertex it does NOT include: Y subset of R_v iff v not in Y. Thus the total R-weight equals n - |Y|.
  3. Collection S (penalty sets): Two kinds:
    • For each edge e = {u, v} in E, create S_e = V \ {u, v} with weight w(S_e) = n + 1. Then Y subset of S_e iff neither u nor v is in Y, i.e., edge e is uncovered. Each uncovered edge contributes a large penalty.
    • One budget set S_0 = V with weight w(S_0) = n - K. Since Y subset of V always holds, this contributes a constant penalty of n - K.
  4. Correctness: The containment inequality becomes:
    (n - |Y|) >= (n + 1) * (number of uncovered edges) + (n - K)
    which simplifies to:
    K - |Y| >= (n + 1) * (number of uncovered edges).
    • If Y is a vertex cover with |Y| <= K: the right side is 0 and K - |Y| >= 0. Satisfied.
    • If Y is a vertex cover with |Y| > K: the right side is 0 but K - |Y| < 0. Not satisfied.
    • If Y is not a vertex cover: at least one edge is uncovered, so the right side is >= n + 1 > n >= K - |Y|. Not satisfied.
      Hence the inequality holds if and only if Y is a vertex cover of size at most K.
  5. Solution extraction: The witness Y from the COMPARATIVE CONTAINMENT instance is directly the vertex cover.

Size Overhead

Symbols:

  • n = |V| = num_vertices of source graph
  • m = |E| = num_edges of source graph
Target metric (code name) Polynomial (using symbols above)
universe_size num_vertices (= n)
num_r_sets num_vertices (= n)
num_s_sets num_edges + 1 (= m + 1)

Derivation: The universe X has one element per vertex. Collection R has one set per vertex. Collection S has one set per edge plus one budget set. Total construction is O(n^2 + mn) accounting for set contents.

Validation Method

  • Closed-loop test: reduce source VERTEX COVER instance, solve target COMPARATIVE CONTAINMENT with BruteForce, extract solution, verify on source
  • Compare with known results from literature
  • Test with small graphs (triangle, path, cycle) where vertex cover is known

Example

Source instance (VERTEX COVER):
Graph G with 6 vertices V = {v_0, v_1, v_2, v_3, v_4, v_5} and 7 edges:
E = { {v_0,v_1}, {v_0,v_2}, {v_1,v_2}, {v_1,v_3}, {v_2,v_4}, {v_3,v_4}, {v_4,v_5} }
Bound K = 3.
(A minimum vertex cover is {v_1, v_2, v_4} of size 3.)

Constructed COMPARATIVE CONTAINMENT instance:
Universe X = {v_0, v_1, v_2, v_3, v_4, v_5}, n = 6, m = 7.

Collection R (one set per vertex, weight 1 each):

  • R_0 = {1, 2, 3, 4, 5}, w = 1
  • R_1 = {0, 2, 3, 4, 5}, w = 1
  • R_2 = {0, 1, 3, 4, 5}, w = 1
  • R_3 = {0, 1, 2, 4, 5}, w = 1
  • R_4 = {0, 1, 2, 3, 5}, w = 1
  • R_5 = {0, 1, 2, 3, 4}, w = 1

Collection S (one set per edge with weight n + 1 = 7, plus one budget set):

  • S_{0,1} = {2, 3, 4, 5}, w = 7
  • S_{0,2} = {1, 3, 4, 5}, w = 7
  • S_{1,2} = {0, 3, 4, 5}, w = 7
  • S_{1,3} = {0, 2, 4, 5}, w = 7
  • S_{2,4} = {0, 1, 3, 5}, w = 7
  • S_{3,4} = {0, 1, 2, 5}, w = 7
  • S_{4,5} = {0, 1, 2, 3}, w = 7
  • S_budget = {0, 1, 2, 3, 4, 5}, w = n - K = 3

Solution:
Choose Y = {v_1, v_2, v_4}.

R-containment: Y is a subset of R_v iff v is not in Y. Vertices not in Y: {v_0, v_3, v_5}. So Y is contained in R_0, R_3, and R_5. R-weight = 3 (= n - |Y| = 6 - 3).

S-containment (edges): Y is a subset of S_e = V \ {u,v} iff neither u nor v is in Y. Since Y = {1,2,4} is a vertex cover, every edge has at least one endpoint in Y, so Y is NOT contained in any S_e. Edge S-weight = 0.

S-containment (budget): Y is a subset of V, so S_budget always contributes. Budget S-weight = 3.

Total S-weight = 0 + 3 = 3.

Comparison: R-weight (3) >= S-weight (3)? YES (tight equality).

This confirms the vertex cover {v_1, v_2, v_4} of size 3 maps to a feasible COMPARATIVE CONTAINMENT solution.

Negative example: Y = {v_1, v_3} (size 2, but NOT a vertex cover — edges {0,2}, {2,4}, {4,5} are uncovered).
R-weight = 6 - 2 = 4.
S-edge-weight: {0,2}: 0 not in Y, 2 not in Y — uncovered, contributes 7. {2,4}: uncovered, contributes 7. {4,5}: uncovered, contributes 7. Total edge penalty = 21.
S-budget = 3. Total S-weight = 24.
Condition: 4 >= 24? NO. Correctly rejected.

References

  • [Plaisted, 1976]: [Plaisted1976] D. Plaisted (1976). "Some polynomial and integer divisibility problems are {NP}-hard". In: Proceedings of the 17th Annual Symposium on Foundations of Computer Science, pp. 264-267. IEEE Computer Society.
  • [Garey and Johnson, ----]: (not found in bibliography)

Metadata

Metadata

Assignees

No one assigned

    Labels

    ruleA new reduction rule to be added.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions