Preprint
Article

This version is not peer-reviewed.

An Approximate Solution to the Minimum Vertex Cover Problem: The Salvador Algorithm

Submitted:

16 October 2026

Posted:

20 October 2026

You are already at the latest version

Abstract
Minimum Vertex Cover has a classical linear-time ratio of 2, and under the Unique Games Conjecture no polynomial-time algorithm achieves a fixed ratio below 2 unless \(\mathrm{P}=\mathrm{NP}\). We present version 0.1.4 of Salvador, a linear-time ensemble of seventeen strategies, numbered in the order in which they are computed: twelve base strategies (component amplification before a maximal matching, the maximal matching itself, degree and weight heuristics, reductions to auxiliary problems that are solved exactly, a decomposition into bipartite layers, a weighted subdivision reduction and a bounded-treewidth dynamic program), followed by five improvers (a union pass, local search, reduce-and-search, consensus forcing and a swap-maximize refinement). We prove that every strategy runs in \(O((n+m)\,\alpha(n))\) time, and that the returned cover has at most 2\(\tau\)-r vertices, where \(r\) is the number of components with an edge, so the ratio is at most 1.999999999 whenever \(\tau\le10^{9}r\). We prove exactness or a bounded ratio on several classes of graphs, among them every bipartite graph on which the Hopcroft–Karp phases of the layer strategy reach a maximum matching, and we give a per-instance certificate: a cover with at most \(2L-|M|\) vertices, for a lower bound \(L\le\tau\) and the maximal matching \(M\), is within ratio 3/2 on that instance. In a reproducible suite the returned cover satisfies \(|C|\le2\tau-|M|\) on all 291 tested graphs with a known optimum and is certified on the six without one, although single strategies violate it; on the 68 DIMACS clique complements it is never worse than Hvala and optimal on 37 instances against 18. Whether \(|C|\le2\tau-|M|\) holds on every graph is stated as a conjecture: a proof would give a linear-time 3/2-approximation and would refute the Unique Games Conjecture unless \(\mathrm{P}=\mathrm{NP}\).
Keywords: 
;  ;  ;  ;  ;  ;  ;  ;  

MSC:  05C69; 05C70; 68Q25; 90C27

1. Introduction

The Minimum Vertex Cover (VC) problem is one of the twenty-one NP-complete problems identified by Karp [1]. Given an undirected graph G = ( V , E ) , a set C ⊆ V is a vertex cover if every edge has at least one endpoint in C; the goal is a cover of minimum size τ ( G ) . We write n = | V | , m = | E | , ν ( G ) for the matching number, and r ( G ) for the number of connected components of G that have an edge.
The approximation landscape is well charted. Both endpoints of a maximal matching form a 2-approximation computable in linear time [2], and LP-based refinements reach 2 − Θ ( 1 / log n )  [3,4], which is 2 − o ( 1 ) but not a constant below 2. On the hardness side, Dinur and Safra ruled out ratios below 10 5 − 21 ≈ 1.3606 unless P = NP  [5], and the proof of the 2-to-2 Games Theorem raised this unconditional threshold to 2 − ε  [6]. Under the Unique Games Conjecture (UGC) [7], Khot and Regev showed that no fixed ratio 2 − ε is achievable in polynomial time unless P = NP  [8], and Austrin, Khot and Safra refined this to graphs of bounded degree [9], matching Halperin’s algorithm [10]. The barrier persists on triangle-free graphs. Every vertex cover contains at least two vertices of each triangle, so taking all three vertices of a triangle and deleting them, until no triangle is left, and then running a ( 2 − ε ) -approximation for triangle-free graphs on the rest would approximate every graph within max { 3 / 2 , 2 − ε } . Hence approximating Minimum Vertex Cover within 2 − ε on triangle-free graphs is UGC-hard, as observed by Bonnet and Rzążewski [11], who also note that for graphs of girth at least 5 neither a ( 2 − ε ) -approximation nor a UGC-hardness proof is known. In October 2026 the OpenAI Math Team released a manuscript with Lean artifacts reporting a proof of UGC in the NP-hardness form that the theorem of Khot and Regev requires [12]; at the time of writing it has not been peer reviewed. If it holds, every fixed ratio below 2 is NP-hard, and in particular so is the ratio 3 / 2 , which lies above the unconditional threshold 2 but below 2.
Salvador is an ensemble algorithm, implemented in the Python package Salvador [13], that computes seventeen strategies c 1 , … , c 17 in linear time and returns the smallest refined cover. The strategies are numbered in the order in which they are computed. The twelve base strategies  c 1 , … , c 12 build covers from the graph: component amplification before a maximal matching ( c 1 ), the maximal matching itself ( c 2 ), degree and weight heuristics ( c 3 to c 6 ), three reductions to auxiliary problems that are solved exactly ( c 7 , c 8 and c 10 ), a decomposition into bipartite layers ( c 9 ), a weighted subdivision reduction with exact reductions and folding ( c 11 ), and a bounded-treewidth dynamic program ( c 12 ). The five improvers  c 13 , … , c 17 work on the covers already found: a union pass, a ( 1 , 2 ) -swap local search, a search that alternates with exact reductions, consensus forcing and a final swap-maximize refinement of every candidate. Three of the base strategies and the pruning pass adapt the published Hvala ensemble [14,15], so Salvador contains Hvala and inherits its worst-case ratio 2.
The guarantees of the ensemble come from different strategies on different graphs. The maximal matching c 2 gives a cover of at most 2 τ − r vertices on every graph (Theorem 4), because every component with an edge saves one vertex. The component amplification c 1 uses this observation in the other direction: it creates components before matching. Every vertex u has two copies ( u , 0 ) and ( u , 1 ) ; an edge of the maximal matching M whose endpoints both have index 0 is split off as an isolated edge, and the other edges of its endpoints move to the copies of index 1. Splitting stops when the split graph has r ′ components, the largest value not above | M | , so that | M | − 1 ≤ r ′ ≤ | M | ≤ τ . The bipartite layers c 9 handle odd cycles differently: a non-bipartite component is split into at most ⌊ log 2 m ⌋ + 1 bipartite layers, each solved by a matching, a few Hopcroft–Karp phases and Konig’s theorem, and a vertex chosen in one layer is discarded from the later ones. Minimum-degree rules make c 5 and c 8 exact on every regular bipartite graph, a Caro–Wei argument bounds c 8 on every graph, and the exact reductions and dynamic programs of c 10 , c 11 and c 12 certify their own optimality whenever their cores are empty.

Contributions 

The main contributions of this paper are:
  • The ensemble of seventeen strategies (Section 3, Algorithm 1), with the component amplification c 1 (Algorithms 3 and 4, Figure 1) and the bipartite layers c 9 (Algorithm 5, Figure 4).
  • Linear running time: with the default parameters every strategy, and therefore the whole ensemble, runs in O ( ( n + m ) α ( n ) ) time, with α the inverse Ackermann function (Theorem 16).
  • A bound for every graph: the returned cover satisfies | C | ≤ 2 τ ( G ) − r ( G ) (Theorem 4); hence the ratio is at most 1.999999999 on every graph with τ ≤ 10 9 r , in particular on every graph with at most 10 9 + 1 vertices (Corollary 1). The margin r / τ tends to 0 as τ grows, so this is not a ( 2 − ε ) -approximation.
  • Per-class guarantees (Section 5.2): c 5 is exact on forests, cycles, complete and complete bipartite graphs (Theorem 5); c 5 and c 8 are exact on every regular or degree-separated bipartite graph (Theorem 7); c 8 meets the Caro–Wei bound, hence ratio 2 − 2 / ( d + 1 ) on d-regular graphs (Lemma 4, Theorem 6); c 3 achieves 11 / 6 on subcubic graphs (Theorem 9); c 4 satisfies a Cauchy–Schwarz bound (Theorem 10); c 9 uses at most ⌊ log 2 m ⌋ + 1 layers and is a minimum cover of every bipartite component on which its phases reach a maximum matching (Proposition 4); and a combined certificate with an exact a-posteriori form on the residue R of nearly Konig–Egerváry graphs (Theorems 13 and 14).
  • The split graph of c 1 : its component count is computed for every number of splits in one union-find pass, and r ( G ) ≤ r ′ ≤ | M | ≤ τ with r ′ ≥ | M | − 1 (Lemmas 6 and 7).
  • A per-instance 3 / 2 certificate (Proposition 6): any cover with | C | ≤ 2 L − | M | or | C | ≤ 3 2 L , for a computable lower bound L ≤ τ , is within ratio 3 / 2 of the optimum on that instance; and the conjecture that the returned cover always satisfies | C | ≤ 2 τ − | M | (Conjecture 1), with the conditional theorem that a proof would refute UGC unless P = NP , and would imply P = NP if the theorem of [12] holds (Theorem 15).
  • A reproducible experimental suite (Section 7): small graphs with known optima, large adversarial graphs with certified bounds, a strategy report and an ablation, bipartite, Khot–Regev YES-type, regular and triangle-free graphs, a study of the bags of c 10 , a test of the conjectured bound and of the layers of c 9 , a comparison with Hvala on the 68 DIMACS clique complements, and the running time.
Section 3 describes the algorithm. Section 4 proves correctness, Section 5 the approximation results, and Section 6 the running time. Section 7 reports the experiments, and Section 8 concludes.

2. Research Data

The algorithm is implemented in the Python package Salvador, freely available on the Python Package Index [13]. The version described in this paper is v0.1.4. Code metadata is summarised in Table 1.

3. Description of the Algorithm

3.1. Main Ensemble

Salvador’s entry point, FindVertexCover (Algorithm 1), removes self-loops and isolated vertices and then computes the strategies in their numbering order. The base strategies c 1 , … , c 9 are computed from the graph alone; c 10 , c 11 and c 12 also receive the best cover found before them, which they use on the parts of the graph that their exact methods do not reach; the improvers c 13 , … , c 16 combine or improve the covers already found; and c 17 refines every candidate c 1 , … , c 16 and returns the smallest refined cover.
Every strategy that receives an earlier cover is guarded: c 10 , c 12 , c 14 and c 15 are replaced by the cover they start from whenever that cover is smaller, c 16 returns the smallest cover of its pool, and the refinement never enlarges a cover. Every candidate is pruned by Algorithm 2, which removes in one pass every vertex whose neighbours all lie in the current set.
Algorithm 1 FindVertexCover ( G ) — Salvador 0.1.4
Preprints 238834 i001
Algorithm 2 Prune ( adj , C )
Require: Adjacency map adj , a vertex cover C
Ensure: A vertex cover C ′ ⊆ C
1:
C ′ ← C
2:
for v in a fixed snapshot of C do
3:
    if  N G ( v ) ⊆ C ′  then  C ′ ← C ′ ∖ { v }
4:
    end if
5:
end for
6:
return  C ′

3.2. Base Strategies

Throughout, G has no self-loops and no isolated vertices, M is the maximal matching returned by the NetworkX routine min_maximal_matching, which builds a maximal matching greedily in one scan of the edges, and pos ( u ) is the position of u in the vertex order of G, used to break ties. The same NetworkX routine is the only maximal-matching subroutine of every strategy.

Component amplification: c 1 .

The nodes of the split graph H are copies  ( u , i ) of vertices u of G with an index  i ∈ { 0 , 1 } . Initially H has the copy ( u , 0 ) of every vertex and the edge ( ( u , 0 ) , ( v , 0 ) ) for every edge { u , v } of G; the projection  π ( u , i ) = u maps the edges of H onto the edges of G. To split an edge ( ( u , 0 ) , ( v , 0 ) ) whose endpoints both have index 0, the edge is kept, every other edge of ( u , 0 ) moves to ( u , 1 ) , and every other edge of ( v , 0 ) moves to ( v , 1 ) ; the split edge becomes an isolated K 2 of H (Figure 1(a)). Only edges with index 0 at both endpoints are split, and every vertex is an endpoint of at most one split edge, so no index larger than 1 is ever needed and no bridge has to be found. The edges split are those of M, in the order of the scan: they are pairwise disjoint, so when an edge of M comes up both its endpoints still have index 0. Splitting the first k edges F k of M leaves the split graph with
count ( k ) = k + c ( G − F k )
components that have an edge, where c ( · ) counts the components with an edge: the k split edges are isolated, and every other edge of G keeps its endpoints connected through the copies of index 1. Algorithm 3 computes all the values count ( 0 ) , … , count ( | M | ) in one backward pass of a union-find structure, starting from G − F | M | and adding the edges of M back one by one, and stops at the first k at which count ( k ) reaches the largest value that does not exceed | M | . Lemma 7 shows that this value r ′ satisfies r ( G ) ≤ r ′ ≤ | M | and r ′ ≥ | M | − 1 .
Algorithm 3 SplitGraph ( G , M )
Require: Graph G without isolated vertices, the maximal matching M = ( e 1 , … , e | M | ) of G
Ensure: Split graph H with copies of index 0 and 1, and r ′ components with an edge
1:
UF ← union-find over V with the edges E ∖ M ; c ← its trees that contain an edge
2:
count ( | M | ) ← | M | + c
3:
for  k = | M | − 1  down to 0 do
4:
    join the endpoints of e k + 1 in UF and update c;     count ( k ) ← k + c
5:
end for
6:
r ′ ← max { count ( k ) : count ( k ) ≤ | M | } ;     k * ← min { k : count ( k ) = r ′ }
7:
S ← the endpoints of e 1 , … , e k *
8:
H ← the edges ( ( u , 0 ) , ( v , 0 ) ) for u v ∈ { e 1 , … , e k * } , and ( ( u , [ u ∈ S ] ) , ( v , [ v ∈ S ] ) ) for every other u v ∈ E
9:
return H, r ′
Let M H be the maximal matching of H returned by min_maximal_matching; it contains every isolated K 2 , because such an edge has no neighbouring edge. Every matched edge is written ( ( a , i ) , ( b , j ) ) with ( i , pos ( a ) ) ≤ ( j , pos ( b ) ) , and the edges are processed in increasing order of ( i , j ) and then of pos ( a ) , by a counting sort. A vertex is selected through at most one of its copies: an edge with an endpoint already selected adds nothing. An edge with i = j selects its endpoint of larger degree in G, ties by position; with only two indices no residual graph is needed. An edge with i < j selects an endpoint by a rule: low (index 0), high (index 1), or deg_low and deg_high, the endpoint of larger degree in G with ties broken toward index 0 or index 1. The decoded set is in general not a cover of G, since an edge whose copy is not matched is covered only if an endpoint was selected through another copy; it is completed by a bucket-queue greedy cover of the uncovered edges and pruned (Algorithm 4).
Algorithm 4 ComponentSplitCover  ( G ) — strategy c 1
Preprints 238834 i002

Maximal matching, greedy and Hallelujah: c 2 , c 3 and c 4 .

MaximalMatchingCover ( c 2 ) takes both endpoints of M; this is the classical 2-approximation [2]. BucketDegreeGreedy ( c 3 ) repeatedly takes a vertex of maximum current degree from a bucket queue; it is the greedy set cover algorithm on the stars of G. Hallelujah ( c 4 ) is the degree-1 weighted reduction of [16]: every vertex u of degree d is replaced by d copies of weight 1 / d , one per incident edge, so that the auxiliary instance is a perfect matching; in Salvador the auxiliary edges are resolved selection-aware, scanning the vertices by ascending degree, adding nothing when an endpoint is already selected, selecting the lighter endpoint otherwise, and the neighbour of the scanned vertex on a tie.

Min-to-Min and primal-dual: c 5 and c 6 .

MinToMinCover ( c 5 ) repeatedly pops a vertex of minimum positive degree from a bucket queue and puts an arbitrary current neighbour of it into the cover; when that degree is 1 this is the exact leaf rule of every exact vertex cover solver. It processes exactly one minimum-degree vertex per step and selects the neighbour in O ( 1 ) , without rescanning a bucket, so the number of pushes and pops is O ( n + m ) . LinearWeightedCover ( c 6 ) is the primal-dual, local-ratio 2-approximation of Bar-Yehuda and Even [17]: it scans every edge once, raises a dual variable at each endpoint up to the remaining slack, and adds an endpoint to the cover when its budget saturates.

Weighted MIDS gadget on a forest core: c 7 .

SolveVC ( c 7 ) builds by union-find a spanning-forest core G p of G and records the cycle-closing edges. Every vertex v of the core becomes a choice node  ( v , 0 ) of weight 1 joined to a pendant node ( v , 1 ) of weight 0, and every core edge u v becomes a hub  h u v of weight P = N + 1 , with N the number of core vertices, joined to ( u , 0 ) and ( v , 0 ) (Figure 2). A minimum-weight independent dominating set of this gadget never contains a hub, since a hub costs more than all choice nodes together, so it dominates every hub through one of its choice nodes, and the decoded set { v : ( v , 0 ) selected } is a minimum cover of the core. The gadget is a subdivision of a forest with pendant leaves, hence a forest; it is solved by a Baker-style layered pass [18] that at the default parameter is its linear-time greedy baseline, which takes the weight-0, then the weight-1, then the heavy nodes into a maximal independent set. Uncovered core edges and the cycle-closing edges are finally repaired in one scan, each by its endpoint of larger degree.

Oriented-incidence cycles: c 8 .

BipartitePlanarCover ( c 8 ) processes the vertices in a fixed order. When u is processed, each edge { u , v j } to a not-yet-processed neighbour, j = 1 , … , d , creates two oriented-incidence nodes x u v j and x v j u , of weights 1 / deg u and 1 / deg v j , joined by a forcing edge, and consecutive incidences are joined by local edges that close an even cycle C 2 d when d ≥ 2 (Figure 3). Every edge of G is handled once, from its first processed endpoint, so the auxiliary graph is a vertex-disjoint union of even cycles and single edges with 2 m nodes: it is bipartite and planar, and a minimum-weight vertex cover of it is computed exactly by a dynamic program along each cycle, with no flow computation. A cover of the auxiliary graph contains an endpoint of every forcing edge and is decoded to { u : x u v selected } , a cover of G. The residual variant always processes a vertex of minimum residual degree d and weighs the gadget by residual degrees; its neighbour side then weighs ∑ j 1 / d res ( v j ) ≤ 1 , so the exact cycle solve selects the neighbours, and the decoded cover is the complement of a greedy minimum-degree maximal independent set. Candidate c 8 keeps the better of the input-order and the residual variant.

Bipartite layers: c 9 .

BipartiteLayersCover ( c 9 ) treats every connected component on its own (Algorithm 5). On a bipartite graph it uses a near-optimal linear-time bipartite solver, BipartiteCover: the maximal matching of min_maximal_matching, enlarged by at most p = 8 phases of the Hopcroft–Karp algorithm [19], each of which finds a maximal set of vertex-disjoint shortest augmenting paths in O ( n + m ) , and Konig’s construction [20]: with Z the vertices reachable from the unmatched vertices of one side T by alternating paths, the set ( T ∖ Z ) ∪ ( Z ∖ T ) is returned, the smaller of the two choices of T. A non-bipartite component is split into bipartite layers. A breadth-first 2-colouring gives each vertex the colour that disagrees with most of its coloured neighbours, ties against its parent, so that at least half of the edges join different colours; these edges form layer 0, and their endpoints receive the copy index 0. The remaining edges, without the vertices they leave isolated, are coloured in the same way and form layer 1, with copy index 1, and so on until no edge is left (Figure 4). Every edge lies in exactly one layer. The layers are then solved in an order: in each layer the copies of the vertices selected in an earlier layer of the same order are discarded, together with their edges, which are covered, and the rest of the layer is solved by BipartiteCover. Different orders give different covers; all orders are tried when there are at most q = 6 of them, and otherwise q orders (the natural order, the reverse order and their rotations), and the smallest cover is kept.
Algorithm 5 BipartiteLayersCover ( adj ) — strategy c 9
Require: Adjacency map of a graph without self-loops; limits p = 8 (phases) and q = 6 (orders)
Ensure: A vertex cover C
1:
C ← ∅
2:
for each connected component K do
3:
     R ← E ( K ) ; t ← 0
4:
    while  R ≠ ∅  do
5:
         χ ← breadth-first majority 2-colouring of ( V ( R ) , R )
6:
         B t ← { u v ∈ R : χ ( u ) ≠ χ ( v ) }      ▹ layer t, copies ( u , t ) ; | B t | ≥ | R | / 2
7:
         R ← R ∖ B t ; t ← t + 1
8:
    end while
9:
     O ← all orders of B 0 , … , B t − 1 if t ! ≤ q , else q rotations of the natural and the reverse order
10:
    for each order ( B σ ( 1 ) , … , B σ ( t ) ) ∈ O  do
11:
         S ← ∅
12:
        for  s = 1 , … , t  do BipartiteCover ( { u v ∈ B σ ( s ) : u ∉ S , v ∉ S } , p )
13:
        end for
14:
    end for
15:
     C ← C ∪ the smallest S
16:
end for
17:
return C

Labelled, weighted edge dominating set: c 10 .

Candidate c 10 reduces every bipartite component to an edge dominating set problem on a gadget D. Every edge { u , v } of G becomes an edge-node  ( u , v ) , and a vertex u with neighbours n 0 , … , n d − 1 receives incidence nodes  ( u , 0 ) , … , ( u , d − 2 ) that thread its edge-nodes into a path ( u , n 0 ) − ( u , 0 ) − ( u , n 1 ) − … − ( u , n d − 1 ) , whose edges are the path edges of u; a chosen path edge of u decodes to u (Figure 5). Every vertex carries a cover label shared along its path, choosing some but not all path edges of a vertex costs a prohibitive penalty, the path edges of every vertex weigh K ★ in total, where K ★ exceeds the number of edges, and every edge-node whose two endpoints are labelled 1 costs one unit of overlap. A penalty-free solution is then the set of path edges of a set C of vertices labelled 1; it is an edge dominating set exactly when C is a vertex cover, and it costs K ★ | C | + e ( C ) , with e ( C ) the number of edges inside C. Its minimum is therefore a minimum vertex cover with the fewest doubly covered edges. The problem is solved by bucket elimination along a greedy minimum-degree order of D, eliminating a node only while its fill degree is at most 5, so that no bag has more than six nodes, and within a table budget of 1024 times the gadget size; the nodes that are not eliminated form a core, fixed as in the best of c 1 , … , c 9 . With an empty core c 10 is a minimum cover of the component. Minimum edge dominating set is NP-hard even on bipartite graphs of maximum degree 3 [21], so the core is what keeps c 10 linear.

Weighted subdivision reduction: c 11 .

The subdivision graph  S ( G ) has a vertex-node  ( u , u ) for every vertex and an edge-node  ( u , w ) for every edge, joined to ( u , u ) and ( w , w ) ; it is bipartite, with n + m nodes and 2 m edges. A set X of vertices dominates the edge-node ( u , w ) when u ∈ X or w ∈ X ; with vertex-nodes of weight 1 and an undominated edge-node costing n + 1 , a minimum-weight selection dominates every edge-node and is a minimum vertex cover (Lemma 1). A vertex cover of S ( G ) itself would not encode the problem: it may take the edge-node instead of either endpoint, so on a forest its minimum is the set of edge-nodes, which decodes to the empty set; c 11 keeps the domination constraint, which carries the hardness, and uses the bipartite structure for bookkeeping. SubdivisionCover ( c 11 ) keeps a residual graph of undecided vertices and undominated edges and applies four exact rules: (R0) a vertex of residual degree 0 is left out; (R1) the neighbour of a vertex of residual degree 1 is selected; (R2) the two neighbours of a vertex of residual degree 2 are selected when they are adjacent; and (R3) a vertex u of residual degree 2 with non-adjacent neighbours a , b is folded with them into one vertex z adjacent to ( N ( a ) ∪ N ( b ) ) ∖ { u } , as in the folding rule of Chen, Kanj and Jia [22], and unfolded at the end into { a , b } if z was selected and into u otherwise. Folding is charged to a work budget of 4 ( n + m ) . When no rule applies a vertex of largest residual degree is peeled into the cover, either among all vertices (max) or among the vertices of the best of c 1 , … , c 10 (ref), following the reducing-peeling scheme of Chang, Li and Zhang [23]. The ensemble keeps the smaller of the two variants, both with folding. Figure 6 shows the reduction on a small graph.
Lemma 1 
(Domination encodes vertex cover). A set X ⊆ V dominates every edge-node of S ( G ) if and only if X is a vertex cover of G. Every minimiser of Φ ( X ) = | X | + ( n + 1 ) · | { ( u , w ) : u ∉ X , w ∉ X } | is a minimum vertex cover, and min X Φ ( X ) = τ ( G ) .
Proof. 
The edge-node ( u , w ) is dominated exactly when X covers { u , w } , so a cover pays no penalty and Φ ( X ) = | X | . A set that leaves an edge-node undominated has Φ ( X ) ≥ n + 1 > n ≥ Φ ( V ) , so a minimiser is a cover of minimum size.    □

Bounded-treewidth dynamic program: c 12 .

TreewidthDPCover ( c 12 ) solves vertex cover exactly by bucket elimination along a greedy minimum-degree order, eliminating a vertex only while its degree in the fill graph is at most 10 and the total table size stays within 256 ( n + m ) ; the remaining vertices form a core, fixed as in the best of c 1 , … , c 11 .

3.3. Improvers

Union and local search: c 13 and c 14 .

Candidate c 13 prunes the union of c 2 , … , c 8 , the pruning pass of Hvala applied to all the independent heuristics at once. LocalSearchCover ( c 14 ) improves the complementary independent set S = V ∖ C of the best of c 1 , … , c 13 . For v ∉ S let tight ( v ) = | N ( v ) ∩ S | . A ( 1 , 2 ) -swap of Andrade, Resende and Werneck [24] removes a vertex x ∈ S and inserts two non-adjacent neighbours of x with tightness 1, enlarging S by one; an iterated local search step forces a vertex into S, evicts its neighbours, reinserts freed vertices and is undone if S shrank. Every adjacency scan is charged to a work counter, and the search stops after b ( n + m ) work with b = 100 .

Reduce-and-search and consensus: c 15 and c 16 .

The swap search of c 14 stops on plateaus, and the reductions of c 11 stop when every residual degree is at least 3. ReduceSearchCover ( c 15 ) alternates the two for three rounds from the best of c 1 , … , c 14 : a swap search with a different fixed seed in each round, which also accepts a cover of equal size and so moves along the plateau, and a pass of c 11 guided by the searched cover, whose exact rules correct it wherever a vertex of residual degree at most 2 appears; a cover is accepted whenever it is not larger. ConsensusForceCover ( c 16 ) turns the agreement of the earlier covers into a reduction. A vertex can be forced into every cover by a self-loop on it; c 16 obtains the same effect by deleting the forced vertices and adding them to the cover. In at most three rounds it forces the vertices contained in all, then 90 % , then 75 % of the covers of its pool, which starts with c 1 , … , c 15 and receives the cover of every round, solves the residual graph again with the best of the pruned maximal-matching cover, c 5 and c 11 (max with folding), and prunes the union on G (Figure 7). It stops early when its best cover equals a certified matching lower bound L, the larger of | M | and a Karp–Sipser matching [25], or when a round would force the same set as the previous one.

Swap-maximize refinement: c 17 .

RefineCover ( c 17 ) refines every candidate. For a cover C with complementary independent set I, and for every u ∈ C ∪ { v max } , with v max a vertex of maximum degree, it moves u into the independent set, evicts the neighbours of u from it, regrows a maximal independent set by scanning the cover vertices adjacent to an evicted vertex in ascending order of degree, and keeps the complement when it is strictly smaller than the best cover found so far. A move may evict many vertices at once, which the ( 1 , 2 ) -swaps cannot do, and it succeeds when the low-degree vertices it frees outnumber the evicted ones. The moves stop after 100 ( n + m ) work per candidate, sorting included.

4. Correctness of the Algorithm

Theorem 1. 
Algorithm 1 always returns a vertex cover of the input graph G.
Proof. 
Isolated vertices and self-loops need no cover, so it suffices that every candidate c 1 , … , c 16 is a cover of the cleaned graph and that the refinement preserves this, since c 17 is one of the refined candidates. Pruning preserves validity: a vertex is removed only when all its neighbours are in the set, so its edges stay covered. Candidate c 1 is completed by a greedy cover of the edges that its decoded set leaves uncovered, and then pruned. Candidate c 2 consists of both endpoints of a maximal matching, and an edge with no matched endpoint would extend the matching. Candidates c 3 and c 5 add vertices until no active vertex has positive degree, and every deletion removes only covered edges. In c 4 every original edge is an auxiliary edge, and when its first scanned endpoint is processed it is either already covered or one of its endpoints is selected. Candidate c 6 adds an endpoint of every edge whose slack is exhausted, which the local-ratio scan guarantees for every edge [17]. Candidate c 7 ends with a repair scan that adds an endpoint of every uncovered edge. In c 8 every edge of G is a forcing edge of the auxiliary graph, whose cover is exact, so an endpoint is decoded. Candidate c 9 is a cover by Proposition 4(i). Candidate c 10 keeps only penalty-free dynamic-programming states, which decode to covers, and takes the earlier best cover on non-bipartite components. Candidate c 11 stops only when the residual graph has no edge, an edge leaves it only when an endpoint is selected, and unfolding a fold vertex z adds { a , b } if z was selected and u otherwise, which covers every edge at u, a and b. In c 12 the dynamic program covers every edge between eliminated vertices and every edge to the core, and the core is fixed as in a cover. A union of covers is a cover, which handles c 13 . Candidates c 14 , the search step of c 15 and every refinement are complements of independent sets, hence covers, and a reduction pass of c 15 is accepted only after it is checked to be a cover. In c 16 a round returns S ∪ C ′ with C ′ a cover of G − S , so every edge with an endpoint in S is covered by S and every other edge by C ′ .    □

5. Approximation Ratio

5.1. Ratio 2 and the Bound 2 τ − R

Theorem 2 
(Every pruned candidate is minimal). Every output of Algorithm 2 is a minimal vertex cover. In particular c 1 , … , c 13 are minimal covers.
Proof. 
A vertex v that survives its test has a neighbour outside the current set, and later removals only enlarge the outside, so after the pass every remaining vertex has a neighbour outside the cover; that is, no vertex can be removed.    □
Theorem 3 
(Unconditional ratio 2). For every graph G, Algorithm 1 returns a cover C with | C | ≤ 2 τ ( G ) .
Proof. 
Before pruning, c 2 consists of both endpoints of a maximal matching M; any cover contains an endpoint of each of the | M | disjoint edges of M, so τ ( G ) ≥ | M | and | c 2 | ≤ 2 | M | ≤ 2 τ ( G )  [2]. The returned cover is the smallest refined candidate, and a refinement never enlarges a cover, so | C | ≤ | c 2 | .    □
Theorem 4 
( 2 τ − r on every graph). Let r ( G ) be the number of connected components of G that have an edge. The pruned candidate c 2 , for every maximal matching, and therefore the cover C returned by Algorithm 1, satisfy
| C | ≤ | c 2 | ≤ 2 τ ( G ) − r ( G ) , so | C | τ ( G ) ≤ 2 − r ( G ) τ ( G ) .
Proof. 
Whether pruning removes a vertex depends only on its neighbours, and the restriction of a maximal matching to a component is a maximal matching of it, so it suffices to prove | c 2 | ≤ 2 τ ( G ) − 1 for a connected graph G with an edge and to sum over the components. Let M be the maximal matching and V ( M ) its matched vertices. Always | c 2 | ≤ | V ( M ) | = 2 | M | ≤ 2 ν ( G ) ≤ 2 τ ( G ) ; suppose for a contradiction that | c 2 | = 2 τ ( G ) . Then equality holds throughout: pruning removed nothing, so c 2 = V ( M ) is a minimal cover by Theorem 2, and | M | = ν ( G ) = τ ( G ) , so M is a maximum matching. Take an edge u v ∈ M . By minimality u has a neighbour a ∉ V ( M ) and v has a neighbour b ∉ V ( M ) . If a ≠ b , then a u v b is an M-augmenting path, which contradicts the maximality of | M | . Hence u and v have a single common neighbour a u v ∉ V ( M ) , and u , v , a u v form a triangle. Let A = { a u v : u v ∈ M } and, for a ∈ A , let M a be the edges u v of M with a u v = a . A cover K of G contains at least | M a | + 1 vertices of { a } ∪ V ( M a ) : if a ∈ K , then a and an endpoint of each edge of M a ; if a ∉ K , both endpoints of every edge of M a , since they are adjacent to a. These sets are disjoint for different a and the sets M a partition M, so τ ( G ) ≥ | M | + | A | ≥ | M | + 1 > τ ( G ) , a contradiction. Hence | c 2 | ≤ 2 τ ( G ) − 1 , and | C | ≤ | c 2 | as in Theorem 3.    □
Corollary 1 
(Ratio 1.999999999 below 10 9 ). If τ ( G ) ≤ 10 9 r ( G ) , Algorithm 1 returns a cover with | C | ≤ 1.999999999 τ ( G ) . In particular this holds for every graph with at most 10 9 + 1 vertices.
Proof. 
2 − r / τ ≤ 2 − 10 − 9 is equivalent to τ ≤ 10 9 r . A component with n i ≥ 2 vertices has τ i ≤ n i − 1 , so if n ≤ 10 9 + 1 then τ ≤ 10 9 ≤ 10 9 r .    □
Theorem 4 is elementary, and the same bound holds for any algorithm that returns a pruned maximal-matching cover. It is not a ( 2 − ε ) -approximation: along any sequence of connected graphs with τ → ∞ the margin 1 / τ tends to 0, as for the classical 2 − Θ ( 1 / log n ) guarantees [3], so it is consistent with every hardness result. It does settle a question that experiments cannot: every graph in any experiment we know of has far fewer than 10 9 vertices, so on such graphs a ratio of at most 1.999999999 is a theorem, not an empirical finding.

5.2. Per-Class Guarantees of the Strategies

Because Salvador returns the smallest refined candidate, a guarantee proved for one candidate on a class of graphs holds for the returned cover on that class. Throughout, R 0 = 1.999999999 = 2 − ε 0 with ε 0 = 10 − 9 , α ( G ) is the independence number, d ¯ the average degree, Δ the maximum degree and W ( G ) = ∑ u v ∈ E 1 / max { deg u , deg v } .
Lemma 2 
(Safe vertices). For every graph G and vertex w, τ ( G − w ) ≥ τ ( G ) − 1 , with equality if and only if w belongs to some minimum vertex cover. If v has degree 1 and w is its neighbour, then w belongs to some minimum vertex cover.
Proof. 
A cover of G − w plus w covers G; a minimum cover of G containing w, minus w, covers G − w ; and conversely a minimum cover of G − w plus w is a minimum cover of G when τ ( G − w ) = τ ( G ) − 1 . A minimum cover contains v or w, and replacing v by w keeps it a cover, since v w is the only edge at v.    □
Lemma 3 
(Exactness criterion for Min-to-Min). Every vertex added by c 5 is a neighbour of a vertex of minimum positive degree in the current active graph, and is then removed from it. Consequently, if every added vertex belongs to some minimum vertex cover of the current active graph, then | c 5 | = τ ( G ) .
Proof. 
Every vertex of positive current degree k has an entry in the bucket B k , since an entry is pushed whenever a degree changes, and stale entries are skipped. Removing a vertex lowers the degree of each neighbour by one, so all positive degrees stay at least the current minimum minus one, and the bucket pointer, decreased by at most one per step and advanced to the first non-empty bucket, always indexes the minimum positive degree. Let w 1 , … , w k be the added vertices, G 0 = G and G i = G i − 1 − w i ; the last graph has no edge. If each w i lies in some minimum cover of G i − 1 , Lemma 2 gives τ ( G i ) = τ ( G i − 1 ) − 1 , so | c 5 | = k = τ ( G ) .    □
Theorem 5 
(Classes solved exactly by c 5 ). If every component of G is a tree, a path, a cycle, a complete graph or a complete bipartite graph, then | c 5 | = τ ( G ) , and Salvador returns a minimum vertex cover.
Proof. 
It suffices that each added vertex is safe in the component K of the popped vertex v, which has minimum degree in K, and that deleting it leaves components of the listed types. In a tree or a path v is a leaf, so its neighbour is safe by Lemma 2, and deleting a vertex leaves trees or paths. A cycle C k , a complete graph K n and a balanced K a , a are vertex-transitive, so every vertex lies in some minimum cover, and C k − w = P k − 1 , K n − w = K n − 1 , K a , a − w = K a − 1 , a . In K a , b with a < b the vertices of minimum degree are on the side of size b, so the added vertex lies on the side of size a, a minimum cover by Konig’s theorem [20], and K a , b − w = K a − 1 , b . Lemma 3 concludes.    □
Lemma 4 
(Caro–Wei bound for the residual candidate). For every graph G without isolated vertices, the residual variant of c 8 returns, before pruning, a cover C b with | C b | ≤ n − ∑ v ∈ V 1 deg ( v ) + 1 . Consequently | C | ≤ n − ⌈ ∑ v 1 / ( deg v + 1 ) ⌉ .
Proof. 
Let u be processed with minimum residual degree k ≥ 1 and residual neighbours v 1 , … , v k . Its gadget is the even cycle a 1 b 1 … a k b k , with a j = x u v j of weight 1 / k and b j = x v j u of weight w j = 1 / d res ( v j ) ≤ 1 / k . The forcing edges a j b j are a perfect matching of the cycle, so every cover of it weighs at least ∑ j min { 1 / k , w j } = ∑ j w j , the weight of the neighbour side; with ties broken toward the neighbours the exact solve returns the neighbour side. So every step puts v 1 , … , v k into C b , u into the independent set S = V ∖ C b , and deletes u , v 1 , … , v k . Let Φ = ∑ x 1 / ( d res ( x ) + 1 ) over the vertices not yet deleted. The k + 1 deleted vertices have residual degree at least k, so they contribute at most 1, and the terms of the surviving vertices can only grow; hence each step lowers Φ by at most 1. When no residual edge remains the r surviving vertices contribute 1 each and belong to S, so after t steps | S | = t + r ≥ Φ 0 = ∑ v 1 / ( deg v + 1 ) , the greedy form of the Caro–Wei bound [26,27]. Pruning and the ensemble only shrink the cover, and cover sizes are integers.    □
Theorem 6 
(Regular graphs). If G is d-regular with d ≥ 1 , then | C | ≤ 2 d d + 1 τ ( G ) = 2 − 2 d + 1 τ ( G ) . In particular cubic graphs get ratio at most 3 / 2 , and every d-regular graph with d ≤ 1 , 999 , 999 , 999 gets ratio at most 1.999999999 .
Proof. 
By Lemma 4, | C | ≤ n − n / ( d + 1 ) = n d / ( d + 1 ) , and τ ( G ) ≥ m / d = n / 2 since each vertex covers d of the m = n d / 2 edges. The last statement is 2 − 2 / ( d + 1 ) ≤ 2 − 10 − 9 .    □
Lemma 4 is a per-instance certificate on every graph, computable from the degree sequence and a lower bound on τ ; it is weak on very irregular graphs, where other candidates take over, and it gives the uniform bound of Theorem 6 on regular graphs. Part E of Section 7 finds that it is the best a-priori certificate on all of its instances.
Corollary 2 
(Degree-heterogeneous graphs). For every graph without isolated vertices,
| C | τ ( G ) ≤ 2 Δ d ¯ + 1 .
In particular the ratio is at most R 0 whenever Δ ≤ R 0 ( d ¯ + 1 ) / 2 .
Proof. 
The function x ↦ 1 / ( x + 1 ) is convex, so ∑ v 1 / ( deg v + 1 ) ≥ n / ( d ¯ + 1 ) by Jensen’s inequality, and Lemma 4 gives | C | ≤ n d ¯ / ( d ¯ + 1 ) . Every vertex covers at most Δ edges, so τ ≥ m / Δ = n d ¯ / ( 2 Δ ) .    □
On regular bipartite graphs c 5 and c 8 do much better than Theorem 6: they are exact, whatever the degree, because the minimum-degree rule never leaves the side on which it starts.
Theorem 7 
(Degree-ordered bipartite graphs). Let G be a graph without isolated vertices each of whose components K is bipartite with a bipartition ( L K , R K ) such that either (a) K is d K -regular for some d K ≥ 1 , or (b) K is degree-separated: deg r > deg l for every r ∈ R K and l ∈ L K . Then | c 5 | = | c 8 | = τ ( G ) , and Salvador returns a minimum vertex cover.
Proof. 
The optimum. In case (a) both sides have | V ( K ) | / 2 vertices and τ ( K ) ≥ | E ( K ) | / d K = | V ( K ) | / 2 , so each side is a minimum cover. In case (b) let a = max L K deg and b = min R K deg > a ; for S ⊆ R K the edges between S and N ( S ) give b | S | ≤ a | N ( S ) | , so | N ( S ) | > | S | for S ≠ ∅ , Hall’s theorem [28] gives a matching saturating R K , and R K is a minimum cover. So it suffices that each candidate contains at most one side of each component, the side R K in case (b).
Candidate c 5 . In case (a) call L K the side of the first vertex of K that c 5 pops. We show that every vertex popped in K lies in L K , so that every added vertex, a neighbour of it, lies in R K . While this holds, no vertex of L K is removed, so every remaining vertex of R K keeps its original degree, while vertices of L K can only lose degree. A popped vertex has minimum positive degree δ (Lemma 3). Suppose a remaining r ∈ R K were popped. In case (b) any neighbour l of r has positive degree at most deg l < deg r = δ , a contradiction. In case (a) δ = d K , so every vertex of L K has degree 0 or d K ; a vertex of L K adjacent to r has degree d K and hence all its neighbours remain, and every remaining vertex of R K keeps all its neighbours, so alternating between the sides from r reaches all of K through remaining vertices and no vertex of R K has been removed. But the first vertex popped in K lies in L K and its added neighbour, in R K , was removed. Hence c 5 ∩ V ( K ) ⊆ R K and | c 5 | ≤ τ ( G ) .
Candidate c 8 . By the proof of Lemma 4, the residual variant processes a vertex u of minimum positive residual degree, puts all its residual neighbours into the cover and deletes u with them. With L K defined by the first processed vertex in case (a), the argument for c 5 , with residual degrees, shows that every processed vertex of K lies in L K ; so every vertex put into the cover lies in R K , and every vertex of R K is eventually put there. Pruning keeps a minimum cover.    □
Case (a) contains every regular bipartite graph: even cycles, hypercubes, crown graphs, balanced complete bipartite graphs, bipartite double covers H × K 2 of regular graphs, and random regular bipartite graphs, which are expanders of linear treewidth. Case (b) contains every unbalanced complete bipartite graph. Neither case needs a bound on the degree or on the treewidth, and neither depends on how ties are broken.
Theorem 8 
(Matching certificate). For every graph with an edge, | C | ≤ 2 ν ( G ) , so | C | / τ ( G ) ≤ 2 ν ( G ) / τ ( G ) , and the ratio is at most R 0 whenever τ ( G ) ≥ 2 ν ( G ) / R 0 .
Proof. 
| C | ≤ | c 2 | ≤ 2 | M | ≤ 2 ν ( G ) .    □
Since τ ≤ 2 ν always holds, Theorem 8 leaves out exactly the nearly Konig–Egerváry graphs, with ν ≤ τ < 2 ν / R 0 . On every other graph the matching candidate alone beats R 0 . Every candidate is a minimal cover (Theorem 2), which gives a guarantee that does not depend on the strategy.
Corollary 3 
(Low independence ratio). If α ( G ) ≤ ( 1 − 1 / R 0 ) n , then every minimal cover, and in particular every candidate, has ratio at most R 0 . More precisely: (a) if V can be partitioned into cliques of size at least k ≥ 3 , every minimal cover has ratio at most k / ( k − 1 ) ≤ 3 / 2 ; (b) if G is d-regular with smallest adjacency eigenvalue λ min ≥ − ( 1 − ε 0 ) d , every minimal cover has ratio at most 1 + | λ min | / d ≤ R 0 , for every degree d.
Proof. 
A minimal cover has at most n vertices and τ = n − α ≥ n / R 0 . For (a), α is at most the number of cliques, at most n / k . For (b), Hoffman’s ratio bound [29] gives α ≤ n | λ min | / ( d + | λ min | ) , so n / τ ≤ 1 + | λ min | / d .    □
Theorem 9 
(Max-degree greedy: c 3 ). For every graph of maximum degree Δ, | C | ≤ | c 3 | ≤ H ( Δ ) τ ( G ) , where H ( k ) = ∑ j = 1 k 1 / j . In particular every graph of maximum degree at most 3 gets ratio at most H ( 3 ) = 11 / 6 .
Proof. 
Vertex cover is the set cover instance whose elements are the edges and whose sets are the stars of the vertices, of size at most Δ . The bucket queue processes degrees from the highest down and degrees only decrease, so every selected vertex has maximum current degree, and c 3 is the greedy set cover algorithm, whose ratio is at most H ( Δ ) by Johnson’s theorem [30]. Pruning only shrinks c 3 .    □
Theorem 9 covers irregular and bipartite subcubic graphs, a class on which vertex cover is APX-hard [31], which excludes an approximation scheme but not a fixed ratio such as 11 / 6 .
Theorem 10 
(Hallelujah bound: c 4 ). Let S be the set produced by the weighted pass of the selection-aware Hallelujah resolution. For every graph with an edge,
| c 4 | 2 ≤ | S | 2 ≤ W ( G ) ∑ v ∈ S deg v ≤ 2 m W ( G ) ≤ 2 m τ ( G ) .
Consequently the ratio is at most R 0 on every graph with 2 m W ( G ) ≤ R 0 2 τ ( G ) 2 .
Proof. 
Candidate c 4 is the smaller of S and an unweighted pass, so | c 4 | ≤ | S | . Each vertex enters S once, while an edge { u , w } with no selected endpoint is inspected, and it is then an endpoint of minimum weight 1 / max { deg u , deg w } of that edge; the edge is covered afterwards, so distinct vertices of S are charged to distinct edges and ∑ v ∈ S 1 / deg v ≤ W ( G ) . This is the minimum weight of a cover of the auxiliary perfect matching, which is at most τ ( G ) , because the deg v copies of each vertex of an optimal cover weigh 1 in total. By the Cauchy–Schwarz inequality, | S | 2 ≤ ( ∑ v ∈ S 1 / deg v ) ( ∑ v ∈ S deg v ) ≤ W ( G ) · 2 m .    □
Proposition 1 
(Selection-aware Hallelujah on regular components). If every component G j of G is d j -regular with n j vertices, then before pruning c 4 is the complement of a maximal independent set, and | c 4 | ≤ ∑ j n j d j / ( d j + 1 ) ≤ ( 2 − 2 / ( max j d j + 1 ) ) τ ( G ) .
Proof. 
Adjacent vertices have equal degree, so every weight comparison ties and the tie rule selects the still-unselected neighbours of each scanned unselected vertex u. Let I be the vertices unselected when scanned: no vertex of I is ever selected, since a later neighbour of it is already selected and is skipped, so I is independent, and every selected vertex has a neighbour in I, so I is maximal. In G j each vertex of I dominates at most d j + 1 vertices, so | I ∩ V ( G j ) | ≥ n j / ( d j + 1 ) ; and τ ( G j ) ≥ n j / 2 .    □
Theorem 10 is strong when degrees are heterogeneous, and Proposition 1 when they are equal; the published Hallelujah rule [16], which resolves ties by labels, reaches 2 − 1 / k on the even cycle C 2 k , while the selection-aware rule returns k vertices there.
Proposition 2 
(Edge-dominating-set gadget: c 10 ). For every edge dominating set F of the gadget D, the set of vertices that F decodes to is a vertex cover; for every vertex cover C, the path edges of the vertices of C form an edge dominating set that decodes to C. On a bipartite component K the minimum cost of a labelled edge dominating set is K ★ τ ( K ) + min { e ( C ) : C a minimum cover of K } , so c 10 is a minimum cover of K, with the fewest doubly covered edges, whenever its core is empty, and no bag of its dynamic program has more than six nodes.
Proof. 
Let { u , v } ∈ E and let ( u , k ) be an incidence node joined to the edge-node ( u , v ) . The gadget edge between them is dominated by a chosen edge at ( u , k ) or at ( u , v ) , and every gadget edge there lies on the path of u or of v and decodes to u or v. Conversely, a gadget edge { ( u , k ) , ( u , x ) } is chosen if u ∈ C ; otherwise x ∈ C and a path edge of x at ( u , x ) dominates it. A solution that pays a penalty costs more than the penalty-free solution of all vertices, so every optimum is penalty-free, chooses the path edges of the set C labelled 1, is feasible exactly when C is a cover, and costs K ★ | C | + e ( C ) with e ( C ) ≤ | E ( K ) | < K ★ . With an empty core the bucket elimination over the penalty-free states is exact, and nodes are eliminated only while their fill degree is at most 5.    □
Theorem 11 
(Subdivision reduction: c 11 ). Let p be the number of peels made by one variant of c 11 and S the cover it returns. Then each rule (R0)–(R3) is exact, | S | ≤ τ ( G ) + p , and S is a minimum vertex cover when no peel is needed.
Proof. 
(R0) changes nothing. For (R1), the neighbour of a vertex of residual degree 1 is safe by Lemma 2. For (R2), every cover contains two vertices of the triangle u , a , b , and since u has no other residual edge some minimum cover contains a and b. For (R3), the folding rule of Chen, Kanj and Jia [22] satisfies τ ( G t ) = τ ( G ′ ) + 1 , and unfolding adds exactly one vertex. So the quantity Ψ t = | S t | + F t + τ ( G t ) , with S t the selected vertices, F t the folds and G t the residual graph, is unchanged by every rule, while a peel raises it by 1 + τ ( G t − x ) − τ ( G t ) ∈ { 0 , 1 } by Lemma 2. At the start Ψ 0 = τ ( G ) , and at the end the residual graph has no edge and unfolding adds one vertex per fold, so | S | = Ψ T ≤ τ ( G ) + p .    □
Proposition 3 
(The improvers). c 13 , … , c 16 and every refinement are valid covers; | c 14 | ≤ min i ≤ 13 | c i | , | c 15 | ≤ min i ≤ 14 | c i | , | c 16 | ≤ min i ≤ 15 | c i | , and the refinement r i of every candidate satisfies | r i | ≤ | c i | , so | C | ≤ min 1 ≤ i ≤ 16 | c i | . Every reduction pass of c 15 returns a cover with at most τ ( G ) + p vertices, p its number of peels. If every vertex forced in a round of c 16 lies in a common minimum cover C * ⊇ S , the cover of that round has at most | S | + 2 τ ( G − S ) − r ( G − S ) ≤ 2 τ ( G ) − | S | − r ( G − S ) vertices.
Proof. 
A union of covers is a cover, and pruning keeps it one. c 14 and c 15 accept only covers that are not larger than their start, and a reduction pass of c 15 is the procedure of c 11 with the guided peel, so Theorem 11 applies. c 16 returns the smallest cover of a pool that starts with c 1 , … , c 15 . A refinement move returns the complement of an independent set and is kept only when strictly smaller. If S ⊆ C * , then τ ( G − S ) = τ ( G ) − | S | , and the residual solver, no larger than the pruned maximal-matching cover, returns at most 2 τ ( G − S ) − r ( G − S ) vertices by Theorem 4.    □
Theorem 12 
(Bounded-treewidth dynamic program: c 12 ). If the elimination of c 12 leaves an empty core, then c 12 , and therefore C, is a minimum vertex cover. This holds in particular on every forest and every cycle.
Proof. 
The elimination order and the bags { v } ∪ N F ( v ) form a tree decomposition of G, and bucket elimination along it computes a maximum independent set exactly when no vertex is fixed; its complement is a minimum cover. A forest or a cycle is eliminated with bags of at most three vertices.    □
Proposition 4 
(Bipartite layers: c 9 ). Let K be a connected component of G with m K ≥ 1 edges.
(i)
c 9 is a vertex cover of G, for every matching produced by the phases.
(ii)
K is split into at most ⌊ log 2 m K ⌋ + 1 bipartite layers, and every edge of K lies in exactly one of them.
(iii)
If K is bipartite, it forms a single layer. If moreover the last phase of BipartiteCover finds no augmenting path, then c 9 ∩ V ( K ) is a minimum vertex cover of K; in particular | c 9 | = τ ( G ) when every component of G is bipartite and every solve ends in this way.
(iv)
On a bipartite graph the matching of BipartiteCover after p phases has at least p + 1 p + 2 ν edges, at least 9 10 ν for p = 8 .
Proof. 
(i) Let N be any matching of a bipartite graph with sides T and B, and Z the vertices reachable from the unmatched vertices of T by alternating paths, which leave T along non-matching edges and enter T along matching edges. Let x y be an edge with x ∈ T . If x ∉ Z , then x ∈ T ∖ Z is selected. If x ∈ Z and x y ∉ N , the path to x extends to y, so y ∈ Z ∖ T is selected. If x ∈ Z and x y ∈ N , then x is matched and was entered from its partner, so y ∈ Z . Hence ( T ∖ Z ) ∪ ( Z ∖ T ) is a cover of the layer. In an order of the layers, an edge of a layer either has an endpoint selected in an earlier layer or remains in the sub-layer that is solved, so every edge of K is covered.
(ii) Every vertex other than the start of its breadth-first tree is coloured after its parent, and it takes the colour that disagrees with at least half of its neighbours coloured so far. Charging each edge to its later-coloured endpoint, at least half of the edges join different colours, so layer t takes at least half of the m t edges left and m t + 1 ≤ m t / 2 . Since m 0 = m K , after ⌊ log 2 m K ⌋ + 1 layers fewer than one edge is left. The edges of a layer join different colours, so each layer is bipartite, and every edge leaves the set of remaining edges exactly once.
(iii) Let K have sides X ∋ s and Y, s the start of the colouring. By induction every coloured vertex of X has colour 0 and every coloured vertex of Y colour 1: the coloured neighbours of a new vertex all lie on the other side and share one colour, so the majority rule gives the colour of its side. So every edge of K joins different colours and K is one layer. When no augmenting path is left the matching is maximum and Z ∩ B contains no unmatched vertex, so the cover has one endpoint of every matched edge, ν ( K ) vertices, which is τ ( K ) by Konig’s theorem [20].
(iv) A maximal matching has no augmenting path of length 1, and every Hopcroft–Karp phase raises the length of a shortest augmenting path by at least 2 [19], so after p phases every augmenting path has length at least 2 ( p + 1 ) + 1 . Then the symmetric difference with a maximum matching contains ν − | N | vertex-disjoint augmenting paths, each with at least p + 1 edges of N, so | N | ≥ ( p + 1 ) ( ν − | N | ) and | N | ≥ p + 1 p + 2 ν .    □
On a non-bipartite component the layers give no ratio of their own: a vertex can be selected in every layer through a different copy, and the orders only choose among the covers obtained. The guarantee of the ensemble on such graphs comes from the other strategies, and c 9 contributes when one of its orders happens to cover the odd cycles cheaply.

5.3. A Combined Certificate and the Residue

Theorem 13 
(Combined certificate). For every graph G with an edge,
| C | τ ( G ) ≤ β ( G ) : = min 2 − r τ , 2 ν τ , n − ∑ v 1 deg v + 1 τ , 2 m W ( G ) τ , β cls ( G ) ,
where β cls ( G ) = 1 if every component is a tree, path, cycle, complete graph, complete bipartite graph, regular bipartite graph or degree-separated bipartite graph, or if the core of c 12 is empty, or if a variant of c 11 needs no peel, or if every component is bipartite and the Hopcroft–Karp phases of c 9 end with a maximum matching; β cls ( G ) = 11 / 6 if Δ ≤ 3 ; and β cls ( G ) = 2 otherwise.
Proof. 
| C | ≤ | c i | for every i (Proposition 3). The terms are Theorem 4 for c 2 , Theorem 8, Lemma 4 for c 8 , Theorem 10, Theorems 5 and 7 for c 5 and c 8 , Theorem 9, Theorem 11, Theorem 12 and Proposition 4.    □
The certificate β ( G ) is computable from the degree sequence, a maximum matching and a lower bound on τ . Let R = { G : β ( G ) > R 0 } be the residue. Since β ≤ 2 − r / τ , every graph of R has τ > 10 9 r and hence more than 10 9 vertices; since β ≤ 2 ν / τ , every graph of R is nearly Konig–Egerváry. On R the right tool is a certificate that reads the returned cover.
Lemma 5 
(Slack identity). Let y : E → [ 0 , 1 ] be a fractional matching, | y | = ∑ e y e , def y ( v ) = 1 − ∑ e ∋ v y e , and for a set C let E ( C ) be the edges with both endpoints in C. Every vertex cover C satisfies
| C | = | y | + σ y ( C ) , σ y ( C ) : = ∑ e ∈ E ( C ) y e + ∑ v ∈ C def y ( v ) ≥ 0 ,
so the excess of C over a minimum cover C * is | C | − τ ( G ) = σ y ( C ) − σ y ( C * ) .
Proof. 
Summing 1 = ∑ e ∋ v y e + def y ( v ) over v ∈ C gives | C | = ∑ e y e | e ∩ C | + ∑ v ∈ C def y ( v ) , and | e ∩ C | is 1 or 2, the latter exactly on E ( C ) , because C is a cover.    □
Theorem 14 
(A-posteriori certificate). Let ν f ( G ) be the optimum of the linear relaxation and y a maximum fractional matching. For every graph and every cover C,
| C | τ ( G ) ≤ | C | ν f ( G ) = 1 + σ y ( C ) ν f ( G ) ≤ | C | ν ( G ) ,
and the three quantities on the right are computable in polynomial time. If τ ( G ) < 2 ν ( G ) / R 0 , in particular on R , then | C | / ν ( G ) < ( 1 + 5.1 · 10 − 10 ) | C | / τ ( G ) ; and if τ ( G ) = ν ( G ) , as on every bipartite graph, then | C | − τ ( G ) = σ M ( C ) for every maximum matching M.
Proof. 
Weak duality gives ν ≤ ν f ≤ τ , and Lemma 5 with | y | = ν f gives the equality; ν f is half a maximum matching of the bipartite double cover. If τ < 2 ν / R 0 , then | C | / ν < ( 2 / R 0 ) | C | / τ and 2 / R 0 < 1 + 5.1 · 10 − 10 . If τ = ν , a maximum matching M is an optimal y, so σ M ( C * ) = 0 .    □
Theorem 14 makes the ratio of every returned cover checkable on the residue up to a factor 1 + 5.1 · 10 − 10 , and exactly on bipartite graphs, but it is not a uniform bound, because it depends on C. By Lemma 5, a ratio R 0 on a graph of R means σ y ( C ) ≤ R 0 τ − ν f : the strategies must keep the violation of complementary slackness small. The minimum-degree rule of c 5 and c 8 never puts both endpoints of an edge into the cover when degrees are ordered across a bipartition (Theorem 7); the exact reductions of c 11 and c 15 never create slack (Theorem 11); and a ( 1 , 2 ) -swap of c 14 or c 15 lowers σ y ( C ) by exactly one for every y. What is not proved is that together they keep σ y ( C ) below R 0 τ − ν f on every graph of R . If every fixed ratio below 2 is NP-hard and P ≠ NP , they cannot: Salvador then exceeds R 0 on infinitely many graphs, all in R , and, since every minimal cover is within 1 / ( 1 − δ ) on graphs with α ≤ δ n , these graphs are YES-type instances of the Khot–Regev reduction, with an independent set of almost half the vertices, τ close to ν , large treewidth, and degrees neither ordered across a bipartition nor heterogeneous enough for Theorem 10.

5.4. The Split Graph of c 1

Lemma 6 
(The component count). Let M = ( e 1 , … , e | M | ) be the maximal matching of c 1 and F k = { e 1 , … , e k } . The projection π maps the edges of the split graph bijectively onto the edges of G. After the first k edges of M are split, the split graph has count ( k ) = k + c ( G − F k ) components with an edge. Moreover count ( 0 ) = r ( G ) , count ( | M | ) ≥ | M | , and count ( k + 1 ) − count ( k ) ∈ { 0 , 1 , 2 } for every k.
Proof. 
A split replaces each moved edge ( u , 0 ) z by ( u , 1 ) z , so edges are neither created nor destroyed and their projections are unchanged; initially π is a bijection. The edges of M are disjoint, so after F k is split every vertex u has at most one copy that carries edges not in F k , namely ( u , 1 ) if u is an endpoint of F k and ( u , 0 ) otherwise, and the edges of F k are isolated. Identifying each vertex with that copy maps the edges not in F k onto G − F k and preserves adjacency, which gives the formula. With k = 0 it is r ( G ) , and with k = | M | the | M | isolated edges alone give count ( | M | ) ≥ | M | . Removing the edge e k + 1 from G − F k changes c by − 1 when e k + 1 forms a component by itself, by + 1 when it is a bridge with an edge on both sides, and by 0 otherwise, so count grows by 0, 1 or 2.    □
Lemma 7 
( | M | − 1 ≤ r ′ ≤ | M | ). Let G have no isolated vertices and let M be a maximal matching of G. Algorithm 3 computes count ( 0 ) , … , count ( | M | ) correctly, and the split graph it returns has r ′ components with an edge, where
r ( G ) ≤ r ′ ≤ | M | ≤ ν ( G ) ≤ τ ( G ) ≤ 2 | M | and r ′ ≥ | M | − 1 .
Consequently τ ( G ) ≤ 2 τ ( G ) − | M | ≤ 3 2 τ ( G ) and 2 τ ( G ) − | M | ≤ 2 τ ( G ) − r ′ ≤ 2 τ ( G ) − | M | + 1 .
Proof. 
Every component of G with an edge x y contains an edge of M, because x or y is matched by maximality, so r ( G ) ≤ | M | ; any matching is at most τ , and V ( M ) is a cover, so | M | ≤ ν ≤ τ ≤ 2 | M | . The union-find structure of Algorithm 3 starts from G − F | M | , and adding e k + 1 back joins two trees or none; the number of trees with an edge changes by 1 − a , with a ∈ { 0 , 1 , 2 } the number of joined trees that already had an edge, or by 0, which is exactly the change of c ( G − F k ) . By Lemma 6, count starts at r ( G ) ≤ | M | , ends at a value of at least | M | , never decreases and grows by at most 2 per step, so it takes a value in { | M | − 1 , | M | } , and the largest value not above | M | is r ′ , with r ( G ) ≤ r ′ . The last statements follow from τ / 2 ≤ | M | ≤ τ .    □
Proposition 5 
( c 1 ). For every graph G without isolated vertices, c 1 is a minimal vertex cover, computed in O ( ( n + m ) α ( n ) ) time.
Proof. 
The decoded set is completed by a greedy cover of the uncovered edges and pruned, so c 1 is a cover, minimal by Theorem 2. The time is part of Theorem 16.    □
No bound in terms of τ is proved for c 1 alone, and on some small graphs of Section 7.11 it exceeds 3 2 τ : the decoding may select, in a matched edge of the split graph, the endpoint that a minimum cover avoids. Its role in the ensemble is to supply a cover built from a different matching structure, and the bound of Theorem 4 for the returned cover comes from c 2 .

5.5. A Per-Instance 3 / 2 Certificate

By Lemma 7, the inequality | C | ≤ 2 τ − | M | , which would be the analogue of Theorem 4 with | M | components in place of r, implies the ratio 3 / 2 , since | M | ≥ τ / 2 , and it implies | C | ≤ 2 τ − r ′ for the split graph of c 1 , since r ′ ≤ | M | . It involves the unknown optimum, so it cannot be tested while the algorithm runs. A lower bound on τ turns it into a test that can.
Proposition 6 
(Per-instance certificate). Let C be a vertex cover of G, M the maximal matching of c 2 , and L ≤ τ ( G ) any lower bound.
(i)
If | C | ≤ 3 2 L , then | C | ≤ 3 2 τ ( G ) .
(ii)
If | C | ≤ 2 L − | M | , then | C | ≤ 2 τ ( G ) − | M | ≤ 3 2 τ ( G ) .
(iii)
The test of (ii) implies the test of (i): 2 L − | M | ≤ 3 2 L .
Proof. 
(i) and the first inequality of (ii) follow from L ≤ τ ; the second inequality of (ii) is | M | ≥ τ / 2 (Lemma 7). For (iii), 2 L − | M | ≤ 3 2 L is equivalent to L ≤ 2 | M | , which holds because L ≤ τ ≤ 2 | M | .    □
Proposition 6 is a certificate, not a guarantee: it never certifies a false ratio, but it can fail to certify a true one when L is weak. Test (ii) certifies the conjectured bound itself, and test (i) certifies only the ratio 3 / 2 . Both need a lower bound stronger than | M | : with L = | M | , test (ii) reads | C | ≤ | M | , which holds only when C is optimal and τ = | M | . Suitable lower bounds that can be computed in polynomial time are the size of a Karp–Sipser matching [25], of a maximum matching, which equals τ on bipartite graphs by Konig’s theorem [20] and is found there by the Hopcroft–Karp algorithm [19], a packing of vertex-disjoint cliques K 1 , … , K t , which gives τ ≥ ∑ i ( | K i | − 1 ) , and, on regular graphs, Hoffman’s ratio bound [29]. On bipartite graphs the certificate is therefore exact.
Lemma 8 
(The ratio | M | / L ). Let L be a lower bound with | M | ≤ L ≤ τ ( G ) , for instance the largest of | M | and the bounds above. Then
1 2 ≤ | M | L ≤ 1 , so the target T = 2 L − | M | = L 2 − | M | L satisfies L ≤ T ≤ 3 2 L .
If a cover C passes the test | C | ≤ T , then | C | / τ ( G ) ≤ min { | C | / L , 2 − | M | / τ ( G ) } ≤ 3 2 .
Proof. 
| M | ≤ L gives | M | / L ≤ 1 , and L ≤ τ ≤ 2 | M | gives | M | / L ≥ 1 / 2 ; hence T ∈ [ L , 3 2 L ] . If | C | ≤ T , then | C | / τ ≤ | C | / L because L ≤ τ , and | C | ≤ 2 τ − | M | by Proposition 6(ii).    □
Lemma 8 bounds the target, not the cover. The value of | M | / L also shows how demanding the test is on a given instance: when | M | / L is close to 1 / 2 the threshold is close to 3 2 L , and when | M | / L = 1 the test passes only if | C | = L = τ . Section 7.11 reports it on every instance.

5.6. The Conjectures

Conjecture 1 
(Ensemble bound). For every graph G without isolated vertices, the cover C returned by Algorithm 1, with M the maximal matching of c 2 , satisfies
| C | ≤ 2 τ ( G ) − | M | , equivalently | C | − τ ( G ) ≤ τ ( G ) − | M | .
Conjecture 2 
(Universal ( 2 − ε 0 ) -approximation). For every graph G, Algorithm 1 returns a vertex cover C with | C | ≤ 1.999999999 τ ( G ) .
By Lemma 7, Conjecture 1 implies | C | ≤ 3 2 τ ( G ) and | C | ≤ 2 τ ( G ) − r ′ on every graph, and hence Conjecture 2; by Corollary 1, Conjecture 2 is a theorem on every graph with τ ≤ 10 9 r and is open only on graphs with more than 10 9 vertices. Conjecture 1 would also give a lower bound on τ that is computable in polynomial time, τ ≥ ( | C | + | M | ) / 2 .
Conjecture 1 is a statement about the ensemble, not about any single strategy: on the small graphs of Section 7.11 both c 1 and c 2 alone violate it, on a graph with six vertices for the first and four for the second, while the returned cover satisfies it on every instance. The second form shows how demanding it is. The excess of C over the optimum must not exceed the gap τ − | M | between the optimum and the maximal matching. When | M | is close to τ / 2 , as in a graph made of disjoint triangles with one matched edge each, the conjecture asks only for the ratio 3 / 2 ; when | M | = τ , which happens whenever the maximal matching is maximum and τ = ν , as in many bipartite graphs, it asks for an optimal cover. If UGC holds in the form of [8] and P ≠ NP , then Conjecture 1 is false (Theorem 15), and since a polynomial-time algorithm that failed on finitely many graphs could be patched by a lookup table, it then fails on infinitely many graphs. Such graphs cannot be NO-type instances of the reduction of Khot and Regev: a graph with no independent set of more than δ n vertices, δ ≤ 1 / 4 , has τ ≥ ( 1 − δ ) n and | M | ≤ n / 2 , so every cover satisfies | C | − τ ≤ δ n ≤ ( 1 2 − δ ) n ≤ τ − | M | . A counterexample must be a YES-type instance, with an independent set of almost half the vertices, on which the excess of C exceeds the gap τ − | M | . The graphs of Section 7 are far smaller than the asymptotic instances of the reduction, so they test the conjecture, they do not prove it.

5.7. Conditional Consequence for P Versus NP

Theorem 15 
(Conditional consequence). Assume that for every fixed ε 0 > 0 it is NP-hard to approximate Minimum Vertex Cover within 2 − ε 0 . If Conjecture 1 or Conjecture 2 is proved, then P = NP . The assumption holds if UGC holds [8], and in particular if the Unique Games Theorem reported in [12] holds; without any assumption, a proof of either conjecture would refute UGC unless P = NP .
Proof. 
Algorithm 1 runs in linear time (Theorem 16). A proof of Conjecture 1 makes it a polynomial-time 3 2 -approximation, by Lemma 7, and a proof of Conjecture 2 makes it a polynomial-time 1.999999999 -approximation. Both ratios are of the form 2 − ε 0 with ε 0 > 0 , so under the assumption the algorithm decides an NP-hard problem in polynomial time. The theorem of Khot and Regev [8] derives the assumption from UGC.    □
Remark 1. 
Theorem 15 is a conditional implication, not a proof of P = NP . The theorem of [12] was released in October 2026 with Lean artifacts and had not been peer reviewed at the time of writing; we cite it as reported and have not checked the formalization. The ratio 3 / 2 lies above the unconditional NP-hardness threshold 2 − ε of [6], so Conjecture 1 contradicts no hardness result that is known without UGC. The only bounds proved here for all graphs are 2 and 2 − r / τ (Theorems 3 and 4), neither of which is a constant below 2.

6. Runtime Analysis

Theorem 16. 
With the default parameters, every strategy c 1 , … , c 17 of Algorithm 1 runs in O ( n + m ) time, except c 1 and c 7 , which run in O ( ( n + m ) α ( n ) ) time, where α is the inverse Ackermann function. Hence the whole algorithm runs in O ( ( n + m ) α ( n ) ) time.
Proof. 
Preprocessing and every pruning pass are single scans, O ( n + m ) . Base strategies. The matching of c 2 , which is also the matching M of c 1 , and the primal-dual scan of c 6 are single scans of the edges. In c 1 the union-find pass of Algorithm 3 makes O ( m ) operations, O ( ( n + m ) α ( n ) ) with union by size and path compression [32]; the split graph has m edges and at most 2 n nodes; the edges of M and the matched edges of H are ordered by counting sorts on positions, since the first endpoints within each class are distinct; the matching of H is one scan, and each of the three decodings, completions by a bucket queue and prunings is O ( n + m ) . The bucket queues of c 3 , c 5 and the residual variant of c 8 receive O ( n + m ) pushes, one per vertex and per degree decrement, and every pop costs O ( 1 ) ; the minimum-bucket pointer of c 5 and c 8 moves down by at most one per deletion. In c 4 each auxiliary edge is inspected at most twice. In c 7 the spanning-forest core is built by union-find in O ( ( n + m ) α ( n ) ) , the gadget is a forest with O ( n ) nodes, and at the default parameter the Baker pass is its greedy baseline, which buckets the nodes by their three weights. The auxiliary graph of c 8 has 2 m nodes in disjoint cycles and edges, solved by a dynamic program linear in its size. In c 9 a layer is built from the edges left in time linear in their number, and every layer takes at least half of them (Proposition 4), so all layers together cost O ( n + m ) ; a solve of a layer runs a matching scan, at most p = 8 Hopcroft–Karp phases of linear cost [19] and two breadth-first searches, and each of at most q = 6 orders solves every layer once, so c 9 costs O ( p q ( n + m ) ) . The dynamic programs of c 10 and c 12 and the folding of c 11 charge every table entry and adjacency scan to work counters and stop at fixed multiples of n + m : 1024 times the gadget size for c 10 , whose bags have at most six nodes, 256 ( n + m ) for c 12 , whose width is at most 10, and 4 ( n + m ) for folding; the reductions of c 11 run on bucket queues of residual degrees. Improvers. The union of c 13 has at most n vertices. The local searches of c 14 and c 15 and the refinement c 17 stop after 100 ( n + m ) work per call, sorting included; each of the three rounds of c 15 and of c 16 costs O ( n + m ) , and the votes of c 16 cost O ( ∑ i | c i | ) = O ( n ) . Summing a constant number of these terms gives the claim.    □
The constants are large: the work budgets alone allow a few hundred passes over the graph, and Section 7.14 measures how the running time grows in practice. Larger limits, such as a smaller ε for the Baker pass of c 7 , unbounded refinement, or numbers of phases or orders of c 9 that grow with the graph, are available as options and give up the linear bound.

7. Reproducible Experiments

7.1. Setup

Every number in this section comes from running all the experiment scripts of the folder car/ of the repository in quick mode, with the option --quick, using Salvador 0.1.4 from the repository, Python 3.12.3 and NetworkX 3.6.1 on Windows 11; the comparison with Hvala on the DIMACS benchmarks (Section 7.13) comes from a run of the command-line program of the package on those files. Table 2 lists the scripts, the options they were run with and their time, 2 , 750 seconds in total. Except for the small graphs of Part A, every instance is built and solved in a worker process with a time limit, and is skipped if it exceeds it; no instance was skipped. Instances are generated from a fixed seed and their name alone, so that every instance can be rebuilt independently of the others.

7.2. Parts A and B: Small Graphs and Large Adversarial Graphs

Part A collects 298 small graphs whose optimum is known by Konig’s theorem or by branch and bound: 202 graphs of order at most 7 from the graph atlas, 12 bipartite hill-climbing instances, 30 random general graphs with n ≤ 12 , 25 random bipartite graphs, 16 bipartite grids, 12 relabelling stress instances and one bipartite obstruction. Every returned cover is valid and optimal; the part took 2.1 seconds.
Part B uses graphs with up to 5 , 000 vertices, where we report | C | / L for a certified lower bound L ≤ τ , the largest of: a Hopcroft–Karp maximum matching on bipartite graphs, which gives L = τ by Konig’s theorem [19,20]; the NetworkX minimum maximal matching and a Karp–Sipser matching [25]; a greedy packing of vertex-disjoint cliques K i , with τ ≥ ∑ i ( | K i | − 1 ) ; and a spectral bound, τ ≥ n − ⌊ n ( 1 − δ / μ max ) ⌋ with δ the minimum degree and μ max the largest Laplacian eigenvalue, which on regular graphs is Hoffman’s bound [29]; μ max is computed by Lanczos iteration, inflated by its residual and capped by max u v ( deg u + deg v ) . Table 3 gives the results.
The certified ratio never exceeds 1.1649 , on the random 12-regular graph with 5 , 000 vertices, where the cover has 3 , 751 vertices and the spectral bound certifies τ ≥ 3 , 220 ; with the matching alone it would be 1.564 . The part took 98 seconds. With Part A, the exact or certified ratio never exceeds 1.17 .

7.3. Which Strategy Wins

The strategy report runs the families of Parts A and B up to n = 5 , 000 , 297 instances, and checks every candidate. Among the base strategies, c 12 , which starts from the best of c 1 , … , c 11 , attains the smallest base cover on all 297 instances and is the only one to do so on two; c 11 attains it on 295, c 10 on 291, c 9 on 287, c 5 and c 8 on 284, c 3 on 276, c 1 on 275, c 4 on 265, c 7 on 264, and c 2 and c 6 on 251. Among the strategies that use earlier covers, c 11 strictly improved the best of c 1 , … , c 10 on 6 instances, by 183 vertices in total, c 12 the best of c 1 , … , c 11 on 2, by 3, the local search c 14 the best of c 1 , … , c 13 on 5, by 133, and c 15 the best of c 1 , … , c 14 on 5, by 25, of which 22 came from its swap searches and 3 from its reductions; c 10 , c 16 and c 17 never improved their reference, and the union c 13 was larger than the best earlier cover on 43 instances and never smaller. Table 4 gives the improvement chain on the six large random graphs.
On these graphs the minimum-degree strategies c 5 and c 8 give the best independent cover, the reductions of c 11 remove 2 to 66 more vertices, and the local search of c 14 , which starts from the best of all base strategies, removes up to 52; consensus forcing fixes 28 % to 68 % of the vertices but finds no smaller cover. The exact strategies certify their own optimality often: c 12 has an empty core on 287 of the 297 instances, c 11 needs no peel on 223, c 10 has an empty core on 109 of the 116 instances whose components are all bipartite, and the phases of c 9 end with a maximum matching on every bipartite instance; on the large random families the core of c 12 holds most of the vertices and c 11 peels up to half of them. The six variants of c 11 (peel max, ref or min, with or without folding) were compared with the best of c 1 , … , c 10 on the same 297 instances: folding raises the instances that need no peel from 168 to 223; ref and ref+fold are never worse and save 117 and 132 vertices; max+fold is worse on 2 instances and saves 80; and min, which does not satisfy | S | ≤ τ + p , is worse on 6. The ensemble uses max+fold and ref+fold.

7.4. Ablation

Every strategy sees the covers found before it, so the contribution of each group of strategies can be read off one run (Table 5).
The base strategies c 1 , … , c 10 already solve 106 of the 108 bipartite graphs, and the reductions of c 11 solve the other two. On the Khot–Regev YES instances and on the mechanism instances the base strategies are weak, and the reductions of c 11 and the local search of c 14 do most of the work: together they reduce the total excess on the YES instances with known optimum from 128 to 9. Consensus forcing and the refinement still help on the mechanism instances, where they make two more covers optimal. No strategy ever made the returned cover larger, as the guards of Algorithm 1 guarantee.

7.5. Part C: Bipartite Graphs

On bipartite graphs τ = ν , so Theorem 8 gives only the ratio 2, while by Theorem 14 the measured ratio is the exact a-posteriori certificate. Part C runs 108 bipartite graphs of 15 families with up to 1 , 000 vertices and shuffled labels, and computes τ = ν by Hopcroft–Karp for measurement only (Table 6).
The ensemble returned a minimum cover on all 108 graphs, 26 , 523 vertices in total. The phases of c 9 end with a maximum matching on 102 graphs, where c 9 is optimal by Proposition 4(iii); it is optimal on 106, and on the other two, a random balanced bipartite graph and a thinned grid, it is two and one vertices above τ . Every regular bipartite graph, double cover, tree, grid, cycle, complete bipartite graph, crown graph and hypercube was solved exactly, as Theorem 7 predicts for the 19 regular and degree-separated ones. The part took 221 seconds.

7.6. Part D: YES-Type Instances of the Khot–Regev Reduction

A Unique Games instance with labels [ k ] is generated on a random d-regular graph with N vertices and a planted labelling L, each edge carrying a permutation π v w with π v w ( L ( w ) ) = L ( v ) (random, or a shift modulo k in the linear variant), and a fraction η of the edges receive a random constraint. Every vertex v becomes a block of s subsets x ⊆ [ k ] drawn from the p-biased measure, and ( v , x ) and ( w , y ) are joined when x and π v w ( y ) are disjoint [8]. The dictator set { ( v , x ) : L ( v ) ∈ x } spans edges only on violated constraints, and removing one endpoint of each leaves an independent set whose complement is a planted cover of about ( 1 − p ) n vertices. The base family has k = 4 , p = 0.45 , η = 0 , d = 4 , s = 16 ; nine more change one parameter. With N ∈ { 40 , 80 } and two seeds this gives 38 instances with 640 to 1 , 280 vertices. The lower bound is the larger of the linear relaxation and the bound of an integer program (HiGHS, 20 seconds), which proved τ on 16 instances (Table 7).
The cover is no larger than the planted one on 34 instances and strictly smaller on 28. Where τ is known it is optimal on 13 of 16, with mean ratio 1.0017 and maximum 1.0148 , on a linear-constraint instance (342 against 337; planted 347); the certified ratio never exceeds 1.161 . The base strategies are optimal on only one of the 16, and the ablation of Table 5 shows that the reductions of c 11 and the local search of c 14 close almost all of the gap. The part took 628 seconds, mostly in the integer programs. These instances are far from the asymptotic regime of the reduction, so they show only that Salvador stays within 1.5 % of the optimum where it is known.

7.7. Part E: Certificates and Mechanism

Part E runs 40 instances of ten families with 140 to 320 vertices: sampled and fixed-weight Khot–Regev YES instances, regular graphs with a planted independent set, random regular graphs and thinned grids. It computes τ by an integer program, the linear relaxation, the Nemhauser–Trotter decomposition [33], the best term of β ( G ) in Theorem 13, the degree bias of a maximum independent set, and the best of the base strategies and the union, min i ≤ 13 | c i | (Table 8).
The a-priori certificate β ( G ) is below R 0 on all 40 instances, always through the Caro–Wei term of c 8 , with maximum 1.908 , and no instance lies in R . Maximum independent sets favour low-degree vertices (mean bias 0.663 , exactly 0.5 on regular graphs), which is the choice of c 5 and c 8 . The best of c 1 , … , c 13 is 0.99 % above the optimum on average and optimal on 28 of the 34 instances with known τ ; the improvers improve it on 6 and leave a mean excess of 0.44 % , with 31 of 34 covers optimal. The hardest family is the fixed-weight Khot–Regev family with k = 5 , where two of four covers are not optimal and the largest ratio is 1.094 . No returned cover admits a ( 1 , 2 ) -swap. The Nemhauser–Trotter kernel covers 74 % of the vertices on average, so the linear relaxation fixes little, and its persistency is respected on all 40 instances. The mean ratio is 1 at both sizes N = 10 and N = 20 on six families; on the sampled family with k = 4 it is 1 and 1.0027 , on the fixed-weight family with k = 5 it is 1.073 and 1, on the random 3-regular graphs 1 and 1.038 , and on the random 6-regular graphs the certified bound grows from 1.087 to 1.139 , where the integer program no longer proves τ and the bound comes from the weak relaxation. The part took 178 seconds.

7.8. Part F: Regular Graphs of Increasing Degree

For every d ∈ { 3 , 4 , 5 , 6 , 8 , 10 , 12 , 16 , 20 , 24 , 32 , 48 , 64 } , n = 200 and two seeds, Part F builds a random d-regular graph and a random d-regular bipartite graph. On the 26 bipartite graphs every cover is optimal, and c 5 , c 8 and c 9 are each exact on all of them alone, as Theorem 7 requires for c 5 and c 8 . Table 9 reports the general graphs, with the spectral lower bound, and compares with 1 + 2 d − 1 / d , the value of Hoffman’s bound n / τ ≤ 1 + | λ min | / d when | λ min | = 2 d − 1 , which random regular graphs attain asymptotically [34].
The certified ratio never exceeds 1.1606 ( d = 16 ) and does not grow with d, far below the bound 2 − 2 / ( d + 1 ) of Theorem 6; the covers approach the estimate of τ as d grows. The part took 19 seconds of solving time.

7.9. Part G: The Bags and the Exactness of c 10

Part G runs c 10 alone, with the pruned cover of the NetworkX minimum maximal matching as reference, on the 108 bipartite graphs of Part C, records the bags and the core, and computes the minor-min-width lower bound on the treewidth of the gadget (Table 10); it also runs c 10 on 285 random bipartite graphs with at most 14 vertices and compares it by brute force with every minimum cover.
No bag exceeded six nodes. The core is empty on 10 instances (trees, even cycles and two thinned grids), where the cover is optimal; on 84 others the treewidth bound is at least 6, so a core is unavoidable under the cap whatever the elimination order. Where the core is not empty, c 10 improves its reference on every family except the dense complete bipartite and crown graphs and the hypercube. On the 285 small graphs the core was empty on 270, and on all of them the cover was a minimum cover with the fewest doubly covered edges, as Proposition 2 states. The part took 100 seconds, 68 of them on the four dense graphs.

7.10. Part H: Triangle-Free Graphs

Part H runs triangle-free graphs: named graphs (Petersen, Clebsch, Hoffman–Singleton and others), Mycielski, Andrásfai, Kneser K ( n , k ) with n < 3 k , generalized Petersen graphs, middle-third circulants, small random graphs of the triangle-free process, and an adversarial hill climb that maximises the ratio against the optimum; and larger graphs: Khot–Regev YES instances on triangle-free constraint graphs, the triangle-free process with average degree 4 to 32, G ( n , p ) with one edge of every triangle removed, random regular graphs with triangles switched out, Frankl–Rödl graphs, and large Mycielski, Andrásfai and circulant graphs. Where τ is not proved, the true ratio lies in [ | C | / τ upper , | C | / L ] (Table 11).
All 161 small instances are solved optimally, and the hill climb finds no ratio above 1. Among the 45 large instances the optimum was proved on 10, and the cover is optimal on 9; the exception is a Khot–Regev instance with p = 0.49 (621 against 620, ratio 1.0016 ). On the Khot–Regev triangle-free instances the certified upper bound is at most 1.184 . On the triangle-free process and the G ( n , p ) graphs the only lower bound is the relaxation, about n / 2 , and the certified upper bound grows with the average degree to 1.70 at degree 32, while the lower bound stays at 1: the intervals are wide because the relaxation is weak. The certified bound is at most 1.5 on 203 of the 206 instances. These figures do not contradict the hardness of the class. By the triangle-removal argument recalled in the introduction, a polynomial-time ( 2 − ε ) -approximation on triangle-free graphs would give one on all graphs, so under UGC triangle-free graphs are as hard as general graphs in the worst case [8,11]. The ratios measured here, optimal on every small instance and certified at most 1.5 on 203 of the 206 instances, describe the families generated in this part, not the worst case; the hard instances of the reduction are far larger, and if UGC holds and P ≠ NP , then for every fixed ε > 0 there are triangle-free graphs on which the cover of Algorithm 1 exceeds ( 2 − ε ) τ . The part took 738 seconds.

7.11. Part I: The Bound 2 τ − | M |

Part I tests Conjecture 1 and the structure of the split graph of c 1 . Its first script runs the ensemble on the 297 non-adaptive instances of Parts A and B, 291 of them with a known optimum, and checks | C | ≤ 2 τ − | M | for the returned cover; its second script checks the same bound, and 2 τ − r ′ , for single strategies on 311 small graphs with a known optimum, the 286 non-adaptive graphs of Part A and 25 hand-made stress graphs on which a leaf-for-hub choice is expensive (paths, stars, double stars, spiders, caterpillars, brooms and K 2 , k ). On the six graphs without a known optimum, the bound is decided by the certificate of Proposition 6(ii) (Table 12).
The returned cover satisfies the bound on every instance, whereas c 1 and c 2 alone violate it on 13 and 18 small graphs; the smallest counterexamples have six vertices for c 1 ( τ = 3 , | M | = 3 , | c 1 | = 4 ) and four for c 2 . The bound is therefore a property of the ensemble, as Conjecture 1 states, and not of either strategy. On 154 of the graphs with a known optimum the maximal matching has | M | = τ , so the conjecture requires an optimal cover; the returned cover was optimal on all of them, and c 1 on 141. Over the 297 instances | M | / L lies between 0.500 and 1.000 , as Lemma 8 requires, with mean 0.843 and median 1.000 , and on 65 % of them | M | / L ≥ 0.75 , so that the threshold 2 − | M | / L is at most 1.25 . The split graph has r ′ = | M | components on 282 of the 297 instances and r ′ = | M | − 1 on the other 15, as Lemma 7 allows.
Table 13. The six graphs without a known optimum. Every one is certified, | C | / L ≤ 2 − | M | / L , that is | C | ≤ 2 L − | M | , which proves | C | ≤ 2 τ − | M | ≤ 3 2 τ on that graph (Proposition 6 and Lemma 8).
Table 13. The six graphs without a known optimum. Every one is certified, | C | / L ≤ 2 − | M | / L , that is | C | ≤ 2 L − | M | , which proves | C | ≤ 2 τ − | M | ≤ 3 2 τ on that graph (Proposition 6 and Lemma 8).
Instance n m L Bound | M | 2 L − | M | | C | | M | / L 2 − | M | / L | C | / L
Random 3-regular 5,000 7,500 2,575 spectral 2,239 2,911 2,761 0.870 1.130 1.0722
Random 6-regular 5,000 15,000 2,870 spectral 2,340 3,400 3,274 0.815 1.185 1.1408
Random 12-regular 5,000 30,000 3,220 spectral 2,399 4,041 3,751 0.745 1.255 1.1649
Barabási–Albert 5,000 14,991 2,446 Karp–Sipser 1,821 3,071 2,465 0.744 1.256 1.0078
Sparse Erdos–Rényi 4,908 9,891 2,442 Karp–Sipser 2,072 2,812 2,597 0.848 1.152 1.0635
Watts–Strogatz 5,000 15,000 3,359 clique packing 2,498 4,220 3,539 0.744 1.256 1.0536
All six are certified, with margins between 0.04 and 0.25 below the threshold; the smallest margins occur on the random regular graphs, where the spectral bound is the only good lower bound.

7.12. Part J: The Bipartite Layers

Part J runs the ensemble on 325 small graphs with a known optimum: the 286 non-adaptive graphs of Part A and 39 hand-made non-bipartite graphs and mixtures on which the layers matter (odd cycles, wheels, complete graphs, the Petersen and dodecahedral graphs, circulants, Mycielski graphs, triangular and king’s grids, chains of odd cycles, and bipartite graphs with a few odd edges). On the 113 bipartite graphs c 9 is a single layer, its phases end with a maximum matching, and it is optimal on all of them, as Proposition 4(iii) states. On the 212 non-bipartite graphs it uses two or three layers, never more than ⌊ log 2 m ⌋ + 1 , which is attained on the smallest graphs, and it is optimal on 203; its largest ratio is 3 / 2 , on a graph of the atlas with five vertices. It is never smaller than every other candidate on these graphs, smaller than c 2 on 44 and larger on 7, and its refinement attains the final size on 324 of the 325. The returned cover is optimal on all 325.

7.13. Part K: DIMACS Clique Complements, Compared with Hvala

On the 68 DIMACS clique-complement instances of NPBench [36], whose optimum is n − ω with the clique numbers compiled by Mascia [37] (best-known values for C500.9 and C1000.9), we compare the figures reported for Hvala [14] with one run of Salvador 0.1.4 at the default parameters. Table 14 summarises by family.
Salvador is never worse than Hvala, strictly better on 50 instances, optimal on 37 against 18, with mean ratio 1.0071 against 1.0253 and maximum 1.068 (gen400_p0.9_75, 347 against 325) against 1.192 ; the largest gains are on san400_0.9_1 (300 against 348), san200_0.9_1 (130 against 155), san200_0.9_2 (140 against 162) and gen200_p0.9_55 (145 against 163), all optimal; the total cover size is 26 , 294 against 26 , 603 . It cannot be worse by construction (Theorem 3), since Hvala’s candidates are among its own. The cumulative algorithm time is 190 seconds against 121, the slowest instance being p_hat700-1 (14 seconds). The two sets of times come from separate runs, so the comparison is indicative only.

7.14. Running Time

The script car_scaling.py times the whole call on eleven families at n = 1 , 000 , 2 , 000 , 4 , 000 and 8 , 000 and fits log t against log ( n + m ) (Table 15).
On eight families the fitted exponent is between 1.03 and 1.09 with R 2 ≥ 0.997 , and every doubling multiplies the time by 1.86 to 2.30 ; over all families the time per element is 116 to 472 microseconds. On the Watts–Strogatz and random bipartite families the time per element falls with the size, and the slopes are 0.89 and 0.86 . On the Barabási–Albert family the last doubling multiplies the time by 3.87 , the largest share of it in c 15 ( 4.3 of 8.4 seconds at n = 8 , 000 ), whose swap searches stop at a fixed multiple of n + m (Theorem 16); four sizes over a factor of eight cannot prove an asymptotic exponent, but none of the other ten families shows growth beyond a linear algorithm with Python constant factors. On the small graphs of Part A the whole algorithm took 2.01 seconds for 442 evaluations, of which 1.10 seconds in c 10 , 0.44 in c 14 and 0.37 in c 15 ; the slowest call took 0.09 seconds.

8. Conclusions

Salvador 0.1.4 is a linear-time ensemble for Minimum Vertex Cover with seventeen strategies, the base strategies first and the improvers last. It always returns a valid cover (Theorem 1) of size at most 2 τ − r (Theorem 4), so its ratio is at most 1.999999999 on every graph with τ ≤ 10 9 r , in particular on every graph with at most 10 9 + 1 vertices, and every strategy runs in O ( ( n + m ) α ( n ) ) time (Theorem 16). The per-class theorems of Section 5.2 prove a minimum cover on forests, cycles, complete and complete bipartite graphs and every regular or degree-separated bipartite graph, on every bipartite graph on which the phases of c 9 reach a maximum matching, ratio 2 − 2 / ( d + 1 ) on d-regular graphs, 11 / 6 on subcubic graphs, and a ratio below 1.999999999 on every graph outside a residue R of nearly Konig–Egerváry graphs with more than 10 9 vertices, on which the a-posteriori certificate of Theorem 14 is exact up to a factor 1 + 5.1 · 10 − 10 .
The guarantees come from different strategies on different graphs, and so does the quality measured in Section 7. The minimum-degree rules of c 5 and c 8 give the best independent covers on regular and random graphs, the bipartite solvers of c 9 and c 10 and the reductions of c 11 make the bipartite graphs exact, and the local searches and reductions of the improvers close most of the remaining gap on the Khot–Regev YES instances. On the 68 DIMACS clique complements the ensemble is never worse than Hvala and optimal on 37 instances against 18. The bound | C | ≤ 2 τ − | M | , which would give the ratio 3 / 2 , held for the returned cover on every instance with a known optimum on which it was tested and was certified on the six without one, while c 1 and c 2 alone violate it on small graphs.
We do not claim that Salvador is a 3 / 2 -approximation. The bound is a conjecture (Conjecture 1); the experiments concern graphs of at most 5 , 000 vertices in quick mode, most of those with a known optimum are small, and a proof would refute UGC unless P = NP , and would imply P = NP if the theorem reported in [12] holds (Theorem 15). What can be guaranteed today is the per-instance certificate: whenever | C | ≤ 3 2 L for a computable lower bound L, the cover is proved to be within ratio 3 / 2 on that graph. Future work includes sharper lower bounds, larger Khot–Regev YES-type instances, and an analysis of the layers of c 9 on non-bipartite graphs. The implementation is freely available as the Salvador package on PyPI [13].

References

  1. Karp, R.M. Reducibility Among Combinatorial Problems. In 50 Years of Integer Programming 1958–2008: From the Early Years to the State-of-the-Art; Springer: Berlin, Germany, 2010; pp. 219–241. [CrossRef]
  2. Papadimitriou, C.H.; Steiglitz, K. Combinatorial Optimization: Algorithms and Complexity; Courier Corporation: North Chelmsford (MA), 1998.
  3. Karakostas, G. A Better Approximation Ratio for the Vertex Cover Problem. ACM Transactions on Algorithms 2009, 5, 1–8. [CrossRef]
  4. Karpinski, M.; Zelikovsky, A. Approximating Dense Cases of Covering Problems. In Proceedings of the DIMACS Series in Discrete Mathematics and Theoretical Computer Science, Providence, Rhode Island, 1996; Vol. 26, pp. 147–164.
  5. Dinur, I.; Safra, S. On the Hardness of Approximating Minimum Vertex Cover. Annals of Mathematics 2005, 162, 439–485. [CrossRef]
  6. Khot, S.; Minzer, D.; Safra, M. Pseudorandom Sets in Grassmann Graph Have Near-Perfect Expansion. In Proceedings of the 2018 IEEE 59th Annual Symposium on Foundations of Computer Science, Paris, France, 2018; pp. 592–601. [CrossRef]
  7. Khot, S. On the Power of Unique 2-Prover 1-Round Games. In Proceedings of the Proceedings of the 34th Annual ACM Symposium on Theory of Computing, Montreal, Québec, Canada, 2002; pp. 767–775. [CrossRef]
  8. Khot, S.; Regev, O. Vertex Cover Might Be Hard to Approximate to Within 2-ϵ. Journal of Computer and System Sciences 2008, 74, 335–349. [CrossRef]
  9. Austrin, P.; Khot, S.; Safra, M. Inapproximability of Vertex Cover and Independent Set in Bounded Degree Graphs. Theory of Computing 2011, 7, 27–43. [CrossRef]
  10. Halperin, E. Improved Approximation Algorithms for the Vertex Cover Problem in Graphs and Hypergraphs. SIAM Journal on Computing 2002, 31, 1608–1623. [CrossRef]
  11. Bonnet, É.; Rzążewski, P. An 11/6-Approximation Algorithm for Vertex Cover on String Graphs. In Proceedings of the 41st International Symposium on Computational Geometry (SoCG 2025); Aichholzer, O.; Wang, H., Eds. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2025, Vol. 332, Leibniz International Proceedings in Informatics (LIPIcs), pp. 24:1–24:15. [CrossRef]
  12. OpenAI Math Team. The Unique Games Conjecture and Optimal Approximation Thresholds (Result Family 102). GitHub Repository, 2026. Manuscripts and Lean artifacts available at https://github.com/openai/math/blob/main/lean/docs/102.md.
  13. Vega, F. Salvador: Approximate Vertex Cover Solver. https://pypi.org/project/salvador, 2026. Python package version 0.1.4.
  14. Vega, F. An Approximate Solution to the Minimum Vertex Cover Problem: The Hvala Algorithm. Gauge Freedom Journal 2026, 1. [CrossRef]
  15. Vega, F. Hvala: Approximate Vertex Cover Solver. https://pypi.org/project/hvala, 2026.
  16. Vega, F. An approximate solution to the minimum vertex cover problem: the Hallelujah algorithm. International Journal of Parallel, Emergent and Distributed Systems 2026. Published online 9 May 2026. [CrossRef]
  17. Bar-Yehuda, R.; Even, S. A local-ratio theorem for approximating the weighted vertex cover problem. In Analysis and Design of Algorithms for Combinatorial Problems; Elsevier, 1985; Vol. 25, Annals of Discrete Mathematics, pp. 27–46. http://www.cs.technion.ac.il/~reuven/PDF/vc_lr.pdf.
  18. Baker, B.S. Approximation algorithms for NP-complete problems on planar graphs. Journal of the ACM 1994, 41, 153–180. [CrossRef]
  19. Hopcroft, J.E.; Karp, R.M. An n5/2 Algorithm for Maximum Matchings in Bipartite Graphs. SIAM Journal on Computing 1973, 2, 225–231. [CrossRef]
  20. Konig, D. Graphen und Matrizen. Matematikai es Fizikai Lapok 1931, 38, 116–119.
  21. Yannakakis, M.; Gavril, F. Edge Dominating Sets in Graphs. SIAM Journal on Applied Mathematics 1980, 38, 364–372. [CrossRef]
  22. Chen, J.; Kanj, I.A.; Jia, W. Vertex Cover: Further Observations and Further Improvements. Journal of Algorithms 2001, 41, 280–301. [CrossRef]
  23. Chang, L.; Li, W.; Zhang, W. Computing a Near-Maximum Independent Set in Linear Time by Reducing-Peeling. In Proceedings of the Proceedings of the 2017 ACM International Conference on Management of Data (SIGMOD), 2017, pp. 1181–1196. [CrossRef]
  24. Andrade, D.V.; Resende, M.G.C.; Werneck, R.F. Fast local search for the maximum independent set problem. Journal of Heuristics 2012, 18, 525–547. [CrossRef]
  25. Karp, R.M.; Sipser, M. Maximum matchings in sparse random graphs. In Proceedings of the Proceedings of the 22nd Annual Symposium on Foundations of Computer Science, 1981, pp. 364–375. [CrossRef]
  26. Caro, Y. New Results on the Independence Number. Technical report, Tel Aviv University, 1979.
  27. Wei, V.K. A Lower Bound on the Stability Number of a Simple Graph. Technical Memorandum 81-11217-9, Bell Laboratories, 1981.
  28. Hall, P. On Representatives of Subsets. Journal of the London Mathematical Society 1935, s1-10, 26–30. [CrossRef]
  29. Hoffman, A.J. On eigenvalues and colorings of graphs. In Graph Theory and its Applications; Harris, B., Ed.; Academic Press: New York, 1970; pp. 79–91.
  30. Johnson, D.S. Approximation Algorithms for Combinatorial Problems. Journal of Computer and System Sciences 1974, 9, 256–278. [CrossRef]
  31. Alimonti, P.; Kann, V. Some APX-completeness Results for Cubic Graphs. Theoretical Computer Science 2000, 237, 123–134. [CrossRef]
  32. Tarjan, R.E. Efficiency of a good but not linear set union algorithm. Journal of the ACM 1975, 22, 215–225. [CrossRef]
  33. Nemhauser, G.L.; Trotter, L.E. Vertex Packings: Structural Properties and Algorithms. Mathematical Programming 1975, 8, 232–248. [CrossRef]
  34. Friedman, J. A Proof of Alon’s Second Eigenvalue Conjecture and Related Problems; Vol. 195, Memoirs of the American Mathematical Society, American Mathematical Society: Providence, RI, 2008. [CrossRef]
  35. Frieze, A.M.; uczak, T. On the Independence and Chromatic Numbers of Random Regular Graphs. Journal of Combinatorial Theory, Series B 1992, 54, 123–132. [CrossRef]
  36. Nguyen, T.; Bui, T. NP-Complete Benchmark Instances. https://roars.dev/npbench/, 2025. Vertex cover DIMACS clique complements.
  37. Mascia, F. The Maximum Clique Problem – DIMACS Benchmark Set. https://iridia.ulb.ac.be/~fmascia/maximum_clique/DIMACS-benchmark, 2015. Compiled clique-number values for DIMACS Second Implementation Challenge instances.
Figure 1. Strategy c 1 . (a) Splitting ( u , 0 ) ( v , 0 ) keeps it as an isolated K 2 and moves the other edges of u and v to their copies of index 1 (shaded); only edges whose endpoints both have index 0 are split. (b) The path a b c d e , with τ = 2 . The maximal matching M = ( a b , c d ) fixes the target | M | = 2 , and one split, of a b , reaches it. The matched edges ( a , 0 ) ( b , 0 ) and ( d , 0 ) ( e , 0 ) have equal indices and select their endpoint of larger degree in G, b and d; the matched edge ( ( b , 1 ) , ( c , 0 ) ) is then covered by b. The decoded set { b , d } is a minimum cover.
Figure 1. Strategy c 1 . (a) Splitting ( u , 0 ) ( v , 0 ) keeps it as an isolated K 2 and moves the other edges of u and v to their copies of index 1 (shaded); only edges whose endpoints both have index 0 are split. (b) The path a b c d e , with τ = 2 . The maximal matching M = ( a b , c d ) fixes the target | M | = 2 , and one split, of a b , reaches it. The matched edges ( a , 0 ) ( b , 0 ) and ( d , 0 ) ( e , 0 ) have equal indices and select their endpoint of larger degree in G, b and d; the matched edge ( ( b , 1 ) , ( c , 0 ) ) is then covered by b. The decoded set { b , d } is a minimum cover.
Preprints 238834 g001
Figure 2. Local weighted-MIDS gadget for a core edge ( u , v ) . Selecting ( u , 0 ) or ( v , 0 ) corresponds to paying for a vertex-cover endpoint, while selecting the heavy hub h u v incurs penalty P = N + 1 .
Figure 2. Local weighted-MIDS gadget for a core edge ( u , v ) . Selecting ( u , 0 ) or ( v , 0 ) corresponds to paying for a vertex-cover endpoint, while selecting the heavy hub h u v incurs penalty P = N + 1 .
Preprints 238834 g002
Figure 3. Oriented-incidence gadget of a vertex u with d = 3 unprocessed neighbours: an even cycle C 6 . Solid forcing edges { x u v j , x v j u } encode the original edges { u , v j } ; dashed local edges close the cycle. Blue nodes (weight 1 / deg u ) decode to u, orange nodes (weight 1 / deg v j ) to v j .
Figure 3. Oriented-incidence gadget of a vertex u with d = 3 unprocessed neighbours: an even cycle C 6 . Solid forcing edges { x u v j , x v j u } encode the original edges { u , v j } ; dashed local edges close the cycle. Blue nodes (weight 1 / deg u ) decode to u, orange nodes (weight 1 / deg v j ) to v j .
Preprints 238834 g003
Figure 4. Strategy c 9 on the odd cycle C 5 . (a) The breadth-first majority colouring from a puts four of the five edges between the colours (solid): they form the bipartite layer 0, a path. The edge c d joins two vertices of colour 0 and forms layer 1 (dashed), with the copies ( c , 1 ) and ( d , 1 ) . (b) Solving layer 0 exactly gives { b , e } ; in layer 1 neither c nor d is selected yet, and one of them is added. The cover has 3 = τ ( C 5 ) vertices.
Figure 4. Strategy c 9 on the odd cycle C 5 . (a) The breadth-first majority colouring from a puts four of the five edges between the colours (solid): they form the bipartite layer 0, a path. The edge c d joins two vertices of colour 0 and forms layer 1 (dashed), with the copies ( c , 1 ) and ( d , 1 ) . (b) Solving layer 0 exactly gives { b , e } ; in layer 1 neither c nor d is selected yet, and one of them is added. The cover has 3 = τ ( C 5 ) vertices.
Preprints 238834 g004
Figure 5. The edge-dominating-set gadget of c 10 . Left: a graph G in which u has neighbours v , w , z (adjacency order) and w , z are adjacent. Right: its gadget D. Every edge of G is an edge-node (grey box); every vertex receives incidence nodes (circles) that thread its edge-nodes into a path, e.g. ( u , v ) − ( u , 0 ) − ( u , w ) − ( u , 1 ) − ( u , z ) for u, while v, of degree 1, has the single node ( v , 0 ) . The incidence index k in ( u , k ) is a position on the path of u, never a neighbour. The thick red edges are all the path edges of the vertices labelled 1, u and z (shaded): they form an edge dominating set of D, since every gadget edge shares an endpoint with one of them, and they decode to the cover { u , z } . Its weight is 2 K ★ + 1 : one unit K ★ per vertex, and an overlap of 1 because the edge u z has both endpoints in the cover. Every minimum cover of G ( { u , z } or { u , w } ) has this weight, and no other labelling is lighter.
Figure 5. The edge-dominating-set gadget of c 10 . Left: a graph G in which u has neighbours v , w , z (adjacency order) and w , z are adjacent. Right: its gadget D. Every edge of G is an edge-node (grey box); every vertex receives incidence nodes (circles) that thread its edge-nodes into a path, e.g. ( u , v ) − ( u , 0 ) − ( u , w ) − ( u , 1 ) − ( u , z ) for u, while v, of degree 1, has the single node ( v , 0 ) . The incidence index k in ( u , k ) is a position on the path of u, never a neighbour. The thick red edges are all the path edges of the vertices labelled 1, u and z (shaded): they form an edge dominating set of D, since every gadget edge shares an endpoint with one of them, and they decode to the cover { u , z } . Its weight is 2 K ★ + 1 : one unit K ★ per vertex, and an overlap of 1 because the edge u z has both endpoints in the cover. Every minimum cover of G ( { u , z } or { u , w } ) has this weight, and no other labelling is lighter.
Preprints 238834 g005
Figure 6. The weighted subdivision reduction of c 11 . (a) A graph G with a triangle a b c and a pendant path c d e . (b) Its subdivision S ( G ) : vertex-nodes (circles) keep the vertices, every edge becomes an edge-node (grey box) joined to its two endpoints, so S ( G ) is bipartite. The reductions select d by (R1) and then a , b by (R2); the selected vertex-nodes (shaded) dominate every edge-node through the thick edges, and no peel was needed, so { a , b , d } is a minimum vertex cover (Theorem 11). (c) The fold (R3): u , a , b become one vertex z adjacent to N ( a ) ∪ N ( b ) ∖ { u } , and the optimum drops by exactly one.
Figure 6. The weighted subdivision reduction of c 11 . (a) A graph G with a triangle a b c and a pendant path c d e . (b) Its subdivision S ( G ) : vertex-nodes (circles) keep the vertices, every edge becomes an edge-node (grey box) joined to its two endpoints, so S ( G ) is bipartite. The reductions select d by (R1) and then a , b by (R2); the selected vertex-nodes (shaded) dominate every edge-node through the thick edges, and no peel was needed, so { a , b , d } is a minimum vertex cover (Theorem 11). (c) The fold (R3): u , a , b become one vertex z adjacent to N ( a ) ∪ N ( b ) ∖ { u } , and the optimum drops by exactly one.
Preprints 238834 g006
Figure 7. One round of consensus forcing ( c 16 ). (a) The vertex h is in every cover of the pool, so it is forced: it is deleted and added to the cover, as a self-loop on h would require. (b) The residual graph splits into small components, on which the linear-time solvers are exact. (c) The union is pruned on G. Forcing helps when the strategies agree on the vertices of an optimal cover and disagree elsewhere: the residual graph then carries only the undecided part of the instance.
Figure 7. One round of consensus forcing ( c 16 ). (a) The vertex h is in every cover of the pool, so it is forced: it is deleted and added to the cover, as a self-loop on h would require. (b) The residual graph splits into small components, on which the linear-time solvers are exact. (c) The union is pruned on G. Forcing helps when the strategies agree on the vertices of an optimal cover and disagree elsewhere: the residual graph then carries only the undecided part of the instance.
Preprints 238834 g007
Table 1. Code metadata for the Salvador package (v0.1.4).
Table 1. Code metadata for the Salvador package (v0.1.4).
Nr. Code metadata description Metadata
C1 Current code version v0.1.4
C2 Permanent link to code repository https://github.com/frankvegadelgado/salvador
C3 Permanent link to reproducible capsule https://pypi.org/project/salvador/
C4 Legal Code License MIT License
C5 Code versioning system used git
C6 Languages, tools, and services used Python ≥ 3.12 , NetworkX ≥ 3.4 . 2 , NumPy ≥ 2.2 . 1 , SciPy ≥ 1.15 . 0
C7 Compilation requirements and dependencies Python, NetworkX, NumPy, SciPy
Table 2. The experiment scripts run in quick mode, the options added to --quick, and their time. --max-n caps the number of vertices, --exact-time the seconds given to the integer program that proves τ , and --timeout the limit per instance.
Table 2. The experiment scripts run in quick mode, the options added to --quick, and their time. --max-n caps the number of vertices, --exact-time the seconds given to the integer program that proves τ , and --timeout the limit per instance.
Script Options used by --quick Measures Time (s)
car_ratio.py --max-n 5000 --timeout 120 approximation ratio, Parts A and B 102.5
car_strategies.py --max-n 5000 which strategy wins; improvement chain 106.6
car_c11_variants.py --max-n 5000 the six variants of c 11 123.7
car_c10_bags.py bags and exactness of c 10 , Part G 135.6
car_c1_components.py --max-n 5000 the split graph and the ensemble bound, Part I 130.1
car_c1_fix.py the bound for single strategies, Part I 1.2
car_c9_layers.py the bipartite layers, Part J 2.6
car_regular.py regular graphs, Part F 22.7
car_bipartite.py --max-n 1000 bipartite graphs, Part C 221.3
car_yes_instances.py --max-n 1280 --exact-time 20 Khot–Regev YES instances, Part D 628.1
car_mechanism.py --exact-time 20 certificates and mechanism, Part E 179.3
car_triangle_free.py --max-n 2000 --exact-time 20 --timeout 120 triangle-free graphs, Part H 738.4
car_scaling.py --max-n 8000 running time against n + m 354.0
car_ratio_timing.py time of each strategy on Part A 3.2
Table 3. Part B: certified ratio upper bound | C | / L on the 11 instances of nine families, the lower bound that attained it, the bound the minimum maximal matching alone would give, and the time of the slowest instance.
Table 3. Part B: certified ratio upper bound | C | / L on the 11 instances of nine families, the lower bound that attained it, the bound the minimum maximal matching alone would give, and the time of the slowest instance.
Family Max n Max ratio u.b. Bound Matching-only Max time (s)
Random 12-regular 5,000 1.1649 spectral 1.564 4.58
Random 6-regular 5,000 1.1408 spectral 1.399 3.00
Random 3-regular 5,000 1.0722 spectral 1.233 2.00
Sparse Erdos–Rényi (deg. 4) 5,000 1.0635 Karp–Sipser 1.253 2.24
Watts–Strogatz small-world 5,000 1.0536 clique packing 1.417 2.39
Barabási–Albert scale-free 5,000 1.0078 Karp–Sipser 1.354 2.85
Complete bipartite 800 1.0000 exact 1.000 31.37
Crown graph 800 1.0000 exact 1.000 29.20
Double star + bridge 2,002 1.0000 exact 1.000 0.74
Table 4. Improvement chain on the six large random graphs: c 1 , the best of c 2 , … , c 8 , c 9 , c 11 , c 12 (here c 10 equals its reference, the graphs being non-bipartite), c 14 , c 15 (with the vertices removed by its swap searches and its reductions), the vertices forced in the last round of c 16 with its matching lower bound L, and the returned cover c 17 .
Table 4. Improvement chain on the six large random graphs: c 1 , the best of c 2 , … , c 8 , c 9 , c 11 , c 12 (here c 10 equals its reference, the graphs being non-bipartite), c 14 , c 15 (with the vertices removed by its swap searches and its reductions), the vertices forced in the last round of c 16 with its matching lower bound L, and the returned cover c 17 .
Instance ( n = 5 , 000 ) c 1 Best c 2 . . c 8 c 9 c 11 c 12 c 14 c 15 search reduce forced L c 17
Random 3-regular 3,118 2,838 2,886 2,772 2,771 2,765 2,761 2 2 1,428 2,498 2,761
Random 6-regular 3,582 3,355 3,429 3,332 3,332 3,280 3,274 6 0 2,318 2,499 3,274
Random 12-regular 4,012 3,826 3,943 3,810 3,810 3,761 3,751 10 0 3,384 2,498 3,751
Sparse Erdos–Rényi 2,743 2,640 2,716 2,600 2,600 2,598 2,597 0 1 2,103 2,442 2,597
Watts–Strogatz 3,715 3,605 3,661 3,569 3,567 3,543 3,539 4 0 2,988 2,491 3,539
Barabási–Albert 2,580 2,467 2,581 2,465 2,465 2,465 2,465 0 0 2,028 2,446 2,465
Table 5. Ablation. Each column adds strategies to the previous ones; “optimal” counts covers of size τ , “total excess” is ∑ ( | C | − τ ) , and the rows “total cover” give the size of the best of c 1 , … , c 10 and then the change made by each addition.
Table 5. Ablation. Each column adds strategies to the previous ones; “optimal” counts covers of size τ , “total excess” is ∑ ( | C | − τ ) , and the rows “total cover” give the size of the best of c 1 , … , c 10 and then the change made by each addition.
Experiment Inst. Measure Best c 1 . . c 10 + c 11 + c 12 , c 13 + c 14 + c 15 + c 16 Final c 17
Bipartite graphs (Part C) 108 optimal 106 108 108 108 108 108 108
total excess 3 0 0 0 0 0 0
Mechanism (Part E), τ known 34 optimal 22 28 28 29 29 30 31
total excess 55 42 42 21 20 17 15
Khot–Regev YES (Part D), τ known 16 optimal 1 7 7 13 13 13 13
total excess 128 54 54 9 9 9 9
Khot–Regev YES (Part D), all 38 cover − planted − 503 − 673 − 673 − 815 − 831 − 832 − 841
Regular graphs (Part F), general 26 total cover 3,978 − 25 0 − 34 − 4 0 0
Large random graphs (strategy report) 6 total cover 18,731 − 183 − 3 − 133 − 25 0 0
Table 6. Part C: the returned cover on 108 bipartite graphs against τ = ν ; “Opt.” and “Exc.” count optimal instances and total excess of the best of c 1 , … , c 10 , of c 9 and of the returned cover; “ c 9 exact” counts the instances on which the phases of c 9 end with a maximum matching, and the last two columns the empty cores of c 10 and c 12 .
Table 6. Part C: the returned cover on 108 bipartite graphs against τ = ν ; “Opt.” and “Exc.” count optimal instances and total excess of the best of c 1 , … , c 10 , of c 9 and of the returned cover; “ c 9 exact” counts the instances on which the phases of c 9 end with a maximum matching, and the last two columns the empty cores of c 10 and c 12 .
Family Inst. Max n Opt. c 1 . . c 10 Opt. c 9 Optimal Max ratio Exc. c 1 . . c 10 Excess c 9 exact c 10 exact c 12 exact
Random bipartite (balanced) 18 1,000 17 17 18 1.0000 2 0 17 0 0
Random bipartite (1:2) 18 1,000 18 18 18 1.0000 0 0 18 0 0
Random d-regular bipartite 18 1,000 18 18 18 1.0000 0 0 18 0 0
Power-law bipartite 6 1,000 6 6 6 1.0000 0 0 6 0 3
Double cover G × K 2 12 1,000 12 12 12 1.0000 0 0 12 0 0
Hidden perfect matching 12 1,000 12 12 12 1.0000 0 0 9 0 3
Random tree 6 1,000 6 6 6 1.0000 0 0 6 6 6
2D grid, 70 % of edges 6 961 5 5 6 1.0000 1 0 5 2 3
2D grid 2 961 2 2 2 1.0000 0 0 2 0 0
3D grid 2 1,000 2 2 2 1.0000 0 0 2 0 0
Even cycle 2 1,000 2 2 2 1.0000 0 0 1 2 2
Complete bipartite 2 1,000 2 2 2 1.0000 0 0 2 0 0
Crown graph 2 1,000 2 2 2 1.0000 0 0 2 0 0
Hypercube 1 256 1 1 1 1.0000 0 0 1 0 0
Hypercube, 50 % of edges 1 256 1 1 1 1.0000 0 0 1 0 0
All 108 1,000 106 106 108 1.0000 3 0 102 10 17
Table 7. Part D: 38 sampled Khot–Regev YES instances. “≤ planted” counts covers no larger than the planted one; “Max exact” is the largest | C | / τ where τ is known; “Max cert.” the largest | C | / L .
Table 7. Part D: 38 sampled Khot–Regev YES instances. “≤ planted” counts covers no larger than the planted one; “Max exact” is the largest | C | / τ where τ is known; “Max cert.” the largest | C | / L .
Family Inst. ≤ planted τ known Opt. c 1 . . c 10 Optimal Max exact Max cert.
Base family 4 3 1 0 1 1.0000 1.0502
Label size k = 3 4 4 0 0 0 – 1.0731
Label size k = 6 4 4 4 0 4 1.0000 1.0000
Bias p = 0.35 4 4 0 0 0 – 1.1606
Bias p = 0.49 4 4 4 0 4 1.0000 1.0000
Noise η = 0.02 4 3 2 0 1 1.0089 1.0623
Noise η = 0.1 4 4 1 0 0 1.0029 1.0381
Constraint degree d = 8 4 3 2 1 2 1.0000 1.1149
Samples per block s = 32 2 1 0 0 0 – 1.0988
Linear UG, Max-2-Lin ( Z k ) 4 4 2 0 1 1.0148 1.0443
All 38 34 16 1 13 1.0148 1.1606
Table 8. Part E: “Max β ” is the largest a-priori certificate of Theorem 13, always its Caro–Wei term; “Bias” the mean probability that a vertex of a maximum independent set has smaller degree than a vertex outside it; “Base exc.” the mean relative excess of min i ≤ 13 | c i | over τ .
Table 8. Part E: “Max β ” is the largest a-priori certificate of Theorem 13, always its Caro–Wei term; “Bias” the mean probability that a vertex of a maximum independent set has smaller degree than a vertex outside it; “Base exc.” the mean relative excess of min i ≤ 13 | c i | over τ .
Family τ known Opt. Max exact Max cert. Max β Bias Base exc.
KR sampled k = 4 4/4 3 1.0054 1.0054 1.798 0.858 0.87%
KR sampled k = 6 4/4 4 1.0000 1.0000 1.902 0.933 0.00%
KR fixed k = 4 , t = 2 (bip.) 4/4 4 1.0000 1.0000 1.908 0.618 0.00%
KR fixed k = 5 , t = 2 4/4 2 1.0938 1.0938 1.741 0.552 7.25%
KR fixed k = 6 , t = 3 (bip.) 4/4 4 1.0000 1.0000 1.734 0.786 0.00%
Planted regular α = 0.45 , d = 6 4/4 4 1.0000 1.0000 1.575 0.594 0.00%
Planted regular α = 0.48 , d = 10 4/4 4 1.0000 1.0000 1.743 0.631 0.00%
Random regular d = 3 2/4 2 1.0000 1.0409 1.404 0.500 0.56%
Random regular d = 6 0/4 0 – 1.1436 1.514 0.500 –
Thinned grid ( 70 % , bip.) 4/4 4 1.0000 1.0000 1.450 0.660 0.00%
All 34/40 31 1.0938 1.1436 1.908 0.663 0.99%
Table 9. Part F: random d-regular graphs, n = 200 . “vs. estimate” is | C | over the estimate n ( 1 − 2 ln d / d ) of τ  [35], asymptotic in d and not a bound.
Table 9. Part F: random d-regular graphs, n = 200 . “vs. estimate” is | C | over the estimate n ( 1 − 2 ln d / d ) of τ  [35], asymptotic in d and not a bound.
d Max ratio u.b. Mean ratio u.b. | C | / n L / n vs. estimate 1 + 2 d − 1 d
3 1.0769 1.0721 0.558 0.520 2.083 1.943
4 1.1101 1.1064 0.597 0.540 1.947 1.866
5 1.1339 1.1339 0.635 0.560 1.783 1.800
6 1.1466 1.1379 0.660 0.580 1.639 1.745
8 1.1570 1.1564 0.702 0.607 1.463 1.661
10 1.1484 1.1484 0.735 0.640 1.362 1.600
12 1.1527 1.1478 0.758 0.660 1.293 1.553
16 1.1606 1.1491 0.790 0.688 1.209 1.484
20 1.1549 1.1509 0.820 0.712 1.171 1.436
24 1.1507 1.1434 0.837 0.732 1.139 1.400
32 1.1523 1.1448 0.870 0.760 1.111 1.348
48 1.1250 1.1211 0.903 0.805 1.076 1.286
64 1.1145 1.1114 0.923 0.830 1.060 1.248
Table 10. Part G: c 10 alone. “Exact” counts empty cores; | c 10 | / τ and “Ref. / τ ” are means; “Max tw LB” the largest lower bound on the treewidth of the gadget.
Table 10. Part G: c 10 alone. “Exact” counts empty cores; | c 10 | / τ and “Ref. / τ ” are means; “Max tw LB” the largest lower bound on the treewidth of the gadget.
Family Inst. Max bag Exact | c 10 | / τ Ref. / τ Max tw LB Time (s)
Random bipartite (balanced) 18 3 0 1.649 1.808 69 8.61
Random bipartite (1:2) 18 4 0 1.856 1.989 46 8.18
Random d-regular bipartite 18 4 0 1.693 1.866 41 5.03
Power-law bipartite 6 3 0 1.084 1.841 17 0.97
Double cover G × K 2 12 3 0 1.660 1.858 30 2.37
Hidden perfect matching 12 4 0 1.461 1.793 30 2.23
Random tree 6 2 6 1.000 1.775 1 0.51
2D grid, 70 % of edges 6 6 2 1.110 1.897 5 2.36
2D grid 2 4 0 1.697 1.976 7 0.40
3D grid 2 3 0 1.941 1.996 15 0.54
Even cycle 2 3 2 1.000 2.000 2 0.33
Complete bipartite 2 4 0 2.000 2.000 5 28.54
Crown graph 2 5 0 2.000 2.000 6 39.39
Hypercube 1 3 0 1.953 1.953 19 0.12
Hypercube, 50 % of edges 1 3 0 1.578 1.828 12 0.07
All 108 6 10 99.65
Table 11. Part H: 206 triangle-free graphs. “Max lower” and “Max cert.” are the largest certified lower and upper bounds on the ratio. aNamed, Mycielski, Andrásfai, Kneser, generalized Petersen, circulant, random ( n ≤ 40 ) and hill-climb instances. bTen variants as in Part D.
Table 11. Part H: 206 triangle-free graphs. “Max lower” and “Max cert.” are the largest certified lower and upper bounds on the ratio. aNamed, Mycielski, Andrásfai, Kneser, generalized Petersen, circulant, random ( n ≤ 40 ) and hill-climb instances. bTen variants as in Part D.
Family Inst. Max n τ known Optimal Max exact Max lower Max cert.
Small families with known optimuma 161 64 161 161 1.0000 1.0000 1.0000
Khot–Regev on triangle-free constraint graphsb 19 1,280 3 2 1.0016 1.0299 1.1839
Large Mycielski M 8 – M 10 3 767 3 3 1.0000 1.0000 1.0000
Large Andrásfai graphs 4 1,199 2 2 1.0000 1.0000 1.2165
Large middle-third circulants 4 2,000 1 1 1.0000 1.0000 1.2174
Frankl–Rödl F R ( q , t ) 2 1,024 0 0 – 1.0000 1.1938
Triangle-free process, avg. deg. 4–32 4 2,000 0 0 – 1.0000 1.6970
G ( n , p ) , triangles removed, deg. 4–16 3 2,000 0 0 – 1.0000 1.5130
Random d-regular, triangle-free, d = 3 –12 5 2,000 0 0 – 1.0000 1.1694
Random bipartite (control) 1 1,996 1 1 1.0000 1.0000 1.0000
All 206 2,000 171 170 1.0016 1.0299 1.6970
Table 12. Part I: the bound 2 τ − | M | for the returned cover on the instances of Parts A and B, and for c 1 and c 2 alone on the small graphs. “Certified” counts the graphs without a known optimum on which | C | ≤ 2 L − | M | .
Table 12. Part I: the bound 2 τ − | M | for the returned cover on the instances of Parts A and B, and for c 1 and c 2 alone on the small graphs. “Certified” counts the graphs without a known optimum on which | C | ≤ 2 L − | M | .
Cover Graphs with τ > 2 τ − | M | > 2 τ − r > 3 2 τ Optimal Max exact ratio Certified
Returned cover c 17 291 0 0 0 291 1.0000 6 of 6
c 1 alone 311 13 0 3 295 1.6667 –
c 2 alone 311 18 0 3 270 1.6667 –
Table 14. Part K: total cover sizes by family, number of instances on which Salvador is strictly smaller (“Wins”), optimal instances and largest ratio to the optimum, for Hvala and Salvador.
Table 14. Part K: total cover sizes by family, number of instances on which Salvador is strictly smaller (“Wins”), optimal instances and largest ratio to the optimum, for Hvala and Salvador.
Family Inst. OPT Hvala Salvador Wins Opt. Hvala Opt. Salvador Max ratio H. Max ratio S.
brock 12 5,317 5,407 5,370 12 0 0 1.033 1.025
c-fat 7 2,276 2,276 2,276 0 7 7 1.000 1.000
C 4 1,672 1,705 1,681 4 0 1 1.039 1.007
gen 5 1,306 1,403 1,351 5 0 1 1.124 1.068
hamming 6 1,956 1,964 1,958 1 5 5 1.008 1.002
johnson 4 672 672 672 0 4 4 1.000 1.000
keller 2 909 921 911 2 0 1 1.013 1.003
MANN 4 3,192 3,202 3,195 3 1 2 1.007 1.001
p_hat 10 5,151 5,187 5,152 9 1 9 1.015 1.001
san 10 2,573 2,751 2,621 10 0 4 1.192 1.051
sanr 4 1,106 1,115 1,107 4 0 3 1.013 1.006
All 68 26,130 26,603 26,294 50 18 37 1.192 1.068
Table 15. Running time of Salvador on graphs of doubling size: least-squares slope of log t against log ( n + m ) and its R 2 (a linear algorithm has slope 1), time per element at the smallest and largest size, largest ratio t ( 2 n ) / t ( n ) , and time at the largest size.
Table 15. Running time of Salvador on graphs of doubling size: least-squares slope of log t against log ( n + m ) and its R 2 (a linear algorithm has slope 1), time per element at the smallest and largest size, largest ratio t ( 2 n ) / t ( n ) , and time at the largest size.
Family Max n Max m Slope R 2 μ s / ( n + m ) , first last Max doubling Max time (s)
Random 3-regular 8,000 12,000 1.049 0.999 139 154 2.14 3.08
Random 6-regular 8,000 24,000 1.094 1.000 123 152 2.19 4.85
Random 12-regular 8,000 48,000 1.074 1.000 121 142 2.18 7.93
Erdos–Rényi, avg. deg. 4 7,861 15,934 1.080 0.998 124 147 2.30 3.50
Erdos–Rényi, avg. deg. 16 8,000 63,718 1.030 1.000 182 192 2.07 13.77
Barabási–Albert, m = 3 8,000 23,991 1.371 0.977 116 264 3.87 8.44
Watts–Strogatz, k = 6 8,000 24,000 0.889 0.987 258 212 2.27 6.77
2D grid 7,921 15,664 1.056 0.997 425 472 2.22 11.13
Random tree 8,000 7,999 1.063 0.998 362 415 2.27 6.64
Random bipartite, avg. deg. 6 7,992 24,000 0.857 0.952 352 248 2.14 7.93
Triangle-free process, avg. deg. 4 7,832 16,000 1.060 0.999 122 140 2.22 3.33
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.
Copyright: This open access article is published under a Creative Commons CC BY 4.0 license, which permit the free download, distribution, and reuse, provided that the author and preprint are cited in any reuse.