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:
vertex cover
; approximation algorithm
; maximal matching
; split graph
; bipartite layers
; ensemble heuristics
; linear time
; unique games conjecture
; P versus NP
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 , a set is a vertex cover if every edge has at least one endpoint in C; the goal is a cover of minimum size . We write , , for the matching number, and 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 [3,4], which is but not a constant below 2. On the hardness side, Dinur and Safra ruled out ratios below unless [5], and the proof of the 2-to-2 Games Theorem raised this unconditional threshold to [6]. Under the Unique Games Conjecture (UGC) [7], Khot and Regev showed that no fixed ratio is achievable in polynomial time unless [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 -approximation for triangle-free graphs on the rest would approximate every graph within . Hence approximating Minimum Vertex Cover within 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 -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 , which lies above the unconditional threshold but below 2.
Salvador is an ensemble algorithm, implemented in the Python package Salvador [13], that computes seventeen strategies 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 build covers from the graph: component amplification before a maximal matching (), the maximal matching itself (), degree and weight heuristics ( to ), three reductions to auxiliary problems that are solved exactly (, and ), a decomposition into bipartite layers (), a weighted subdivision reduction with exact reductions and folding (), and a bounded-treewidth dynamic program (). The five improvers work on the covers already found: a union pass, a -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 gives a cover of at most vertices on every graph (Theorem 4), because every component with an edge saves one vertex. The component amplification uses this observation in the other direction: it creates components before matching. Every vertex u has two copies and ; 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 components, the largest value not above , so that . The bipartite layers handle odd cycles differently: a non-bipartite component is split into at most 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 and exact on every regular bipartite graph, a Caro–Wei argument bounds on every graph, and the exact reductions and dynamic programs of , and certify their own optimality whenever their cores are empty.
Contributions
The main contributions of this paper are:
- Linear running time: with the default parameters every strategy, and therefore the whole ensemble, runs in time, with the inverse Ackermann function (Theorem 16).
- A bound for every graph: the returned cover satisfies (Theorem 4); hence the ratio is at most on every graph with , in particular on every graph with at most vertices (Corollary 1). The margin tends to 0 as grows, so this is not a -approximation.
- Per-class guarantees (Section 5.2): is exact on forests, cycles, complete and complete bipartite graphs (Theorem 5); and are exact on every regular or degree-separated bipartite graph (Theorem 7); meets the Caro–Wei bound, hence ratio on d-regular graphs (Lemma 4, Theorem 6); achieves on subcubic graphs (Theorem 9); satisfies a Cauchy–Schwarz bound (Theorem 10); uses at most 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 of nearly Konig–Egerváry graphs (Theorems 13 and 14).
- The split graph of : its component count is computed for every number of splits in one union-find pass, and with (Lemmas 6 and 7).
- A per-instance certificate (Proposition 6): any cover with or , for a computable lower bound , is within ratio of the optimum on that instance; and the conjecture that the returned cover always satisfies (Conjecture 1), with the conditional theorem that a proof would refute UGC unless , and would imply 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 , a test of the conjectured bound and of the layers of , a comparison with Hvala on the 68 DIMACS clique complements, and the running time.
2. Research Data
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 are computed from the graph alone; , and 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 combine or improve the covers already found; and refines every candidate and returns the smallest refined cover.
Every strategy that receives an earlier cover is guarded: , , and are replaced by the cover they start from whenever that cover is smaller, 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 — Salvador 0.1.4 |
![]() |
| Algorithm 2 Prune |
|
Require: Adjacency map , a vertex cover C Ensure: A vertex cover
|
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 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: .
The nodes of the split graph H are copies of vertices u of G with an index . Initially H has the copy of every vertex and the edge for every edge of G; the projection maps the edges of H onto the edges of G. To split an edge whose endpoints both have index 0, the edge is kept, every other edge of moves to , and every other edge of moves to ; the split edge becomes an isolated 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 of M leaves the split graph with
components that have an edge, where 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 in one backward pass of a union-find structure, starting from and adding the edges of M back one by one, and stops at the first k at which reaches the largest value that does not exceed . Lemma 7 shows that this value satisfies and .
| Algorithm 3 SplitGraph |
|
Require: Graph G without isolated vertices, the maximal matching of G Ensure: Split graph H with copies of index 0 and 1, and components with an edge
|
Let be the maximal matching of H returned by min_maximal_matching; it contains every isolated , because such an edge has no neighbouring edge. Every matched edge is written with , and the edges are processed in increasing order of and then of , 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 selects its endpoint of larger degree in G, ties by position; with only two indices no residual graph is needed. An edge with 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 — strategy |
![]() |
Maximal matching, greedy and Hallelujah: , and .
MaximalMatchingCover () takes both endpoints of M; this is the classical 2-approximation [2]. BucketDegreeGreedy () 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 () is the degree-1 weighted reduction of [16]: every vertex u of degree d is replaced by d copies of weight , 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: and .
MinToMinCover () 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 , without rescanning a bucket, so the number of pushes and pops is . LinearWeightedCover () 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: .
SolveVC () builds by union-find a spanning-forest core of G and records the cycle-closing edges. Every vertex v of the core becomes a choice node of weight 1 joined to a pendant node of weight 0, and every core edge becomes a hub of weight , with N the number of core vertices, joined to and (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 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: .
BipartitePlanarCover () processes the vertices in a fixed order. When u is processed, each edge to a not-yet-processed neighbour, , creates two oriented-incidence nodes and , of weights and , joined by a forcing edge, and consecutive incidences are joined by local edges that close an even cycle when (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 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 , 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 , so the exact cycle solve selects the neighbours, and the decoded cover is the complement of a greedy minimum-degree maximal independent set. Candidate keeps the better of the input-order and the residual variant.
Bipartite layers: .
BipartiteLayersCover () 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 phases of the Hopcroft–Karp algorithm [19], each of which finds a maximal set of vertex-disjoint shortest augmenting paths in , and Konig’s construction [20]: with Z the vertices reachable from the unmatched vertices of one side T by alternating paths, the set 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 of them, and otherwise q orders (the natural order, the reverse order and their rotations), and the smallest cover is kept.
| Algorithm 5 BipartiteLayersCover — strategy |
|
Require: Adjacency map of a graph without self-loops; limits (phases) and (orders) Ensure: A vertex cover C
|
Labelled, weighted edge dominating set: .
Candidate reduces every bipartite component to an edge dominating set problem on a gadget D. Every edge of G becomes an edge-node , and a vertex u with neighbours receives incidence nodes that thread its edge-nodes into a path , 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 in total, where 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 , with 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 . With an empty core 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 linear.
Weighted subdivision reduction: .
The subdivision graph has a vertex-node for every vertex and an edge-node for every edge, joined to and ; it is bipartite, with nodes and edges. A set X of vertices dominates the edge-node when or ; with vertex-nodes of weight 1 and an undominated edge-node costing , a minimum-weight selection dominates every edge-node and is a minimum vertex cover (Lemma 1). A vertex cover of 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; keeps the domination constraint, which carries the hardness, and uses the bipartite structure for bookkeeping. SubdivisionCover () 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 is folded with them into one vertex z adjacent to , as in the folding rule of Chen, Kanj and Jia [22], and unfolded at the end into if z was selected and into u otherwise. Folding is charged to a work budget of . 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 (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 dominates every edge-node of if and only if X is a vertex cover of G. Every minimiser of is a minimum vertex cover, and .
Proof.
The edge-node is dominated exactly when X covers , so a cover pays no penalty and . A set that leaves an edge-node undominated has , so a minimiser is a cover of minimum size. □
Bounded-treewidth dynamic program: .
TreewidthDPCover () 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 ; the remaining vertices form a core, fixed as in the best of .
3.3. Improvers
Union and local search: and .
Candidate prunes the union of , the pruning pass of Hvala applied to all the independent heuristics at once. LocalSearchCover () improves the complementary independent set of the best of . For let . A -swap of Andrade, Resende and Werneck [24] removes a vertex 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 work with .
Reduce-and-search and consensus: and .
The swap search of stops on plateaus, and the reductions of stop when every residual degree is at least 3. ReduceSearchCover () alternates the two for three rounds from the best of : 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 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 () turns the agreement of the earlier covers into a reduction. A vertex can be forced into every cover by a self-loop on it; 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 , then of the covers of its pool, which starts with and receives the cover of every round, solves the residual graph again with the best of the pruned maximal-matching cover, and (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 and a Karp–Sipser matching [25], or when a round would force the same set as the previous one.
Swap-maximize refinement: .
RefineCover () refines every candidate. For a cover C with complementary independent set I, and for every , with 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 -swaps cannot do, and it succeeds when the low-degree vertices it frees outnumber the evicted ones. The moves stop after 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 is a cover of the cleaned graph and that the refinement preserves this, since 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 is completed by a greedy cover of the edges that its decoded set leaves uncovered, and then pruned. Candidate consists of both endpoints of a maximal matching, and an edge with no matched endpoint would extend the matching. Candidates and add vertices until no active vertex has positive degree, and every deletion removes only covered edges. In 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 adds an endpoint of every edge whose slack is exhausted, which the local-ratio scan guarantees for every edge [17]. Candidate ends with a repair scan that adds an endpoint of every uncovered edge. In every edge of G is a forcing edge of the auxiliary graph, whose cover is exact, so an endpoint is decoded. Candidate is a cover by Proposition 4(i). Candidate keeps only penalty-free dynamic-programming states, which decode to covers, and takes the earlier best cover on non-bipartite components. Candidate 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 if z was selected and u otherwise, which covers every edge at u, a and b. In 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 . Candidates , the search step of and every refinement are complements of independent sets, hence covers, and a reduction pass of is accepted only after it is checked to be a cover. In a round returns with a cover of , so every edge with an endpoint in S is covered by S and every other edge by . □
5. Approximation Ratio
5.1. Ratio 2 and the Bound
Theorem 2
(Every pruned candidate is minimal). Every output of Algorithm 2 is a minimal vertex cover. In particular 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 .
Proof.
Before pruning, consists of both endpoints of a maximal matching M; any cover contains an endpoint of each of the disjoint edges of M, so and [2]. The returned cover is the smallest refined candidate, and a refinement never enlarges a cover, so . □
Theorem 4
( on every graph). Let be the number of connected components of G that have an edge. The pruned candidate , for every maximal matching, and therefore the cover C returned by Algorithm 1, satisfy
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 for a connected graph G with an edge and to sum over the components. Let M be the maximal matching and its matched vertices. Always ; suppose for a contradiction that . Then equality holds throughout: pruning removed nothing, so is a minimal cover by Theorem 2, and , so M is a maximum matching. Take an edge . By minimality u has a neighbour and v has a neighbour . If , then is an M-augmenting path, which contradicts the maximality of . Hence u and v have a single common neighbour , and form a triangle. Let and, for , let be the edges of M with . A cover K of G contains at least vertices of : if , then a and an endpoint of each edge of ; if , both endpoints of every edge of , since they are adjacent to a. These sets are disjoint for different a and the sets partition M, so , a contradiction. Hence , and as in Theorem 3. □
Corollary 1
(Ratio below ). If , Algorithm 1 returns a cover with . In particular this holds for every graph with at most vertices.
Proof.
is equivalent to . A component with vertices has , so if then . □
Theorem 4 is elementary, and the same bound holds for any algorithm that returns a pruned maximal-matching cover. It is not a -approximation: along any sequence of connected graphs with the margin tends to 0, as for the classical 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 vertices, so on such graphs a ratio of at most 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, with , is the independence number, the average degree, the maximum degree and .
Lemma 2
(Safe vertices). For every graph G and vertex w, , 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 plus w covers G; a minimum cover of G containing w, minus w, covers ; and conversely a minimum cover of plus w is a minimum cover of G when . A minimum cover contains v or w, and replacing v by w keeps it a cover, since is the only edge at v. □
Lemma 3
(Exactness criterion for Min-to-Min). Every vertex added by 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 .
Proof.
Every vertex of positive current degree k has an entry in the bucket , 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 be the added vertices, and ; the last graph has no edge. If each lies in some minimum cover of , Lemma 2 gives , so . □
Theorem 5
(Classes solved exactly by ). If every component of G is a tree, a path, a cycle, a complete graph or a complete bipartite graph, then , 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 , a complete graph and a balanced are vertex-transitive, so every vertex lies in some minimum cover, and , , . In with 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 . Lemma 3 concludes. □
Lemma 4
(Caro–Wei bound for the residual candidate). For every graph G without isolated vertices, the residual variant of returns, before pruning, a cover with . Consequently .
Proof.
Let u be processed with minimum residual degree and residual neighbours . Its gadget is the even cycle , with of weight and of weight . The forcing edges are a perfect matching of the cycle, so every cover of it weighs at least , the weight of the neighbour side; with ties broken toward the neighbours the exact solve returns the neighbour side. So every step puts into , u into the independent set , and deletes . Let over the vertices not yet deleted. The 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 , 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 , then . In particular cubic graphs get ratio at most , and every d-regular graph with gets ratio at most .
Proof.
By Lemma 4, , and since each vertex covers d of the edges. The last statement is . □
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,
In particular the ratio is at most whenever .
Proof.
The function is convex, so by Jensen’s inequality, and Lemma 4 gives . Every vertex covers at most edges, so . □
On regular bipartite graphs and 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 such that either (a) K is -regular for some , or (b) K is degree-separated: for every and . Then , and Salvador returns a minimum vertex cover.
Proof.
The optimum. In case (a) both sides have vertices and , so each side is a minimum cover. In case (b) let and ; for the edges between S and give , so for , Hall’s theorem [28] gives a matching saturating , and is a minimum cover. So it suffices that each candidate contains at most one side of each component, the side in case (b).
Candidate . In case (a) call the side of the first vertex of K that pops. We show that every vertex popped in K lies in , so that every added vertex, a neighbour of it, lies in . While this holds, no vertex of is removed, so every remaining vertex of keeps its original degree, while vertices of can only lose degree. A popped vertex has minimum positive degree (Lemma 3). Suppose a remaining were popped. In case (b) any neighbour l of r has positive degree at most , a contradiction. In case (a) , so every vertex of has degree 0 or ; a vertex of adjacent to r has degree and hence all its neighbours remain, and every remaining vertex of keeps all its neighbours, so alternating between the sides from r reaches all of K through remaining vertices and no vertex of has been removed. But the first vertex popped in K lies in and its added neighbour, in , was removed. Hence and .
Candidate . 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 defined by the first processed vertex in case (a), the argument for , with residual degrees, shows that every processed vertex of K lies in ; so every vertex put into the cover lies in , and every vertex of 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 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, , so , and the ratio is at most whenever .
Proof.
. □
Since always holds, Theorem 8 leaves out exactly the nearly Konig–Egerváry graphs, with . On every other graph the matching candidate alone beats . 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 , then every minimal cover, and in particular every candidate, has ratio at most . More precisely: (a) if V can be partitioned into cliques of size at least , every minimal cover has ratio at most ; (b) if G is d-regular with smallest adjacency eigenvalue , every minimal cover has ratio at most , for every degree d.
Proof.
A minimal cover has at most n vertices and . For (a), is at most the number of cliques, at most . For (b), Hoffman’s ratio bound [29] gives , so . □
Theorem 9
(Max-degree greedy: ). For every graph of maximum degree Δ, , where . In particular every graph of maximum degree at most 3 gets ratio at most .
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 is the greedy set cover algorithm, whose ratio is at most by Johnson’s theorem [30]. Pruning only shrinks . □
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 .
Theorem 10
(Hallelujah bound: ). Let S be the set produced by the weighted pass of the selection-aware Hallelujah resolution. For every graph with an edge,
Consequently the ratio is at most on every graph with .
Proof.
Candidate is the smaller of S and an unweighted pass, so . Each vertex enters S once, while an edge with no selected endpoint is inspected, and it is then an endpoint of minimum weight of that edge; the edge is covered afterwards, so distinct vertices of S are charged to distinct edges and . This is the minimum weight of a cover of the auxiliary perfect matching, which is at most , because the copies of each vertex of an optimal cover weigh 1 in total. By the Cauchy–Schwarz inequality, . □
Proposition 1
(Selection-aware Hallelujah on regular components). If every component of G is -regular with vertices, then before pruning is the complement of a maximal independent set, and .
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 each vertex of I dominates at most vertices, so ; and . □
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 on the even cycle , while the selection-aware rule returns k vertices there.
Proposition 2
(Edge-dominating-set gadget: ). 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 , so 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 and let be an incidence node joined to the edge-node . The gadget edge between them is dominated by a chosen edge at or at , and every gadget edge there lies on the path of u or of v and decodes to u or v. Conversely, a gadget edge is chosen if ; otherwise and a path edge of x at 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 with . 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: ). Let p be the number of peels made by one variant of and S the cover it returns. Then each rule (R0)–(R3) is exact, , 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 , 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 , and unfolding adds exactly one vertex. So the quantity , with the selected vertices, the folds and the residual graph, is unchanged by every rule, while a peel raises it by by Lemma 2. At the start , and at the end the residual graph has no edge and unfolding adds one vertex per fold, so . □
Proposition 3
(The improvers). and every refinement are valid covers; , , , and the refinement of every candidate satisfies , so . Every reduction pass of returns a cover with at most vertices, p its number of peels. If every vertex forced in a round of lies in a common minimum cover , the cover of that round has at most vertices.
Proof.
A union of covers is a cover, and pruning keeps it one. and accept only covers that are not larger than their start, and a reduction pass of is the procedure of with the guided peel, so Theorem 11 applies. returns the smallest cover of a pool that starts with . A refinement move returns the complement of an independent set and is kept only when strictly smaller. If , then , and the residual solver, no larger than the pruned maximal-matching cover, returns at most vertices by Theorem 4. □
Theorem 12
(Bounded-treewidth dynamic program: ). If the elimination of leaves an empty core, then , 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 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: ). Let K be a connected component of G with edges.
- (i)
- is a vertex cover of G, for every matching produced by the phases.
- (ii)
- K is split into at most 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 is a minimum vertex cover of K; in particular 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 edges, at least for .
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 be an edge with . If , then is selected. If and , the path to x extends to y, so is selected. If and , then x is matched and was entered from its partner, so . Hence 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 edges left and . Since , after 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 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 contains no unmatched vertex, so the cover has one endpoint of every matched edge, vertices, which is 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 . Then the symmetric difference with a maximum matching contains vertex-disjoint augmenting paths, each with at least edges of N, so and . □
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 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,
where 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 is empty, or if a variant of needs no peel, or if every component is bipartite and the Hopcroft–Karp phases of end with a maximum matching; if ; and otherwise.
Proof.
for every i (Proposition 3). The terms are Theorem 4 for , Theorem 8, Lemma 4 for , Theorem 10, Theorems 5 and 7 for and , Theorem 9, Theorem 11, Theorem 12 and Proposition 4. □
The certificate is computable from the degree sequence, a maximum matching and a lower bound on . Let be the residue. Since , every graph of has and hence more than vertices; since , every graph of is nearly Konig–Egerváry. On the right tool is a certificate that reads the returned cover.
Lemma 5
(Slack identity). Let be a fractional matching, , , and for a set C let be the edges with both endpoints in C. Every vertex cover C satisfies
so the excess of C over a minimum cover is .
Proof.
Summing over gives , and is 1 or 2, the latter exactly on , because C is a cover. □
Theorem 14
(A-posteriori certificate). Let be the optimum of the linear relaxation and y a maximum fractional matching. For every graph and every cover C,
and the three quantities on the right are computable in polynomial time. If , in particular on , then ; and if , as on every bipartite graph, then for every maximum matching M.
Proof.
Weak duality gives , and Lemma 5 with gives the equality; is half a maximum matching of the bipartite double cover. If , then and . If , a maximum matching M is an optimal y, so . □
Theorem 14 makes the ratio of every returned cover checkable on the residue up to a factor , and exactly on bipartite graphs, but it is not a uniform bound, because it depends on C. By Lemma 5, a ratio on a graph of means : the strategies must keep the violation of complementary slackness small. The minimum-degree rule of and never puts both endpoints of an edge into the cover when degrees are ordered across a bipartition (Theorem 7); the exact reductions of and never create slack (Theorem 11); and a -swap of or lowers by exactly one for every y. What is not proved is that together they keep below on every graph of . If every fixed ratio below 2 is NP-hard and , they cannot: Salvador then exceeds on infinitely many graphs, all in , and, since every minimal cover is within on graphs with , 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
Lemma 6
(The component count). Let be the maximal matching of and . 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 components with an edge. Moreover , , and for every k.
Proof.
A split replaces each moved edge by , so edges are neither created nor destroyed and their projections are unchanged; initially is a bijection. The edges of M are disjoint, so after is split every vertex u has at most one copy that carries edges not in , namely if u is an endpoint of and otherwise, and the edges of are isolated. Identifying each vertex with that copy maps the edges not in onto and preserves adjacency, which gives the formula. With it is , and with the isolated edges alone give . Removing the edge from changes c by when forms a component by itself, by when it is a bridge with an edge on both sides, and by 0 otherwise, so grows by 0, 1 or 2. □
Lemma 7
(). Let G have no isolated vertices and let M be a maximal matching of G. Algorithm 3 computes correctly, and the split graph it returns has components with an edge, where
Consequently and .
Proof.
Every component of G with an edge contains an edge of M, because x or y is matched by maximality, so ; any matching is at most , and is a cover, so . The union-find structure of Algorithm 3 starts from , and adding back joins two trees or none; the number of trees with an edge changes by , with the number of joined trees that already had an edge, or by 0, which is exactly the change of . By Lemma 6, starts at , ends at a value of at least , never decreases and grows by at most 2 per step, so it takes a value in , and the largest value not above is , with . The last statements follow from . □
Proposition 5
(). For every graph G without isolated vertices, is a minimal vertex cover, computed in time.
Proof.
The decoded set is completed by a greedy cover of the uncovered edges and pruned, so is a cover, minimal by Theorem 2. The time is part of Theorem 16. □
No bound in terms of is proved for alone, and on some small graphs of Section 7.11 it exceeds : 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 .
5.5. A Per-Instance Certificate
By Lemma 7, the inequality , which would be the analogue of Theorem 4 with components in place of r, implies the ratio , since , and it implies for the split graph of , since . 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 , and any lower bound.
- (i)
- If , then .
- (ii)
- If , then .
- (iii)
- The test of (ii) implies the test of (i): .
Proof.
(i) and the first inequality of (ii) follow from ; the second inequality of (ii) is (Lemma 7). For (iii), is equivalent to , which holds because . □
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 . Both need a lower bound stronger than : with , test (ii) reads , which holds only when C is optimal and . 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 , which gives , and, on regular graphs, Hoffman’s ratio bound [29]. On bipartite graphs the certificate is therefore exact.
Lemma 8
(The ratio ). Let L be a lower bound with , for instance the largest of and the bounds above. Then
If a cover C passes the test , then .
Proof.
gives , and gives ; hence . If , then because , and by Proposition 6(ii). □
Lemma 8 bounds the target, not the cover. The value of also shows how demanding the test is on a given instance: when is close to the threshold is close to , and when the test passes only if . 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 , satisfies
Conjecture 2
(Universal -approximation). For every graph G, Algorithm 1 returns a vertex cover C with .
By Lemma 7, Conjecture 1 implies and on every graph, and hence Conjecture 2; by Corollary 1, Conjecture 2 is a theorem on every graph with and is open only on graphs with more than vertices. Conjecture 1 would also give a lower bound on that is computable in polynomial time, .
Conjecture 1 is a statement about the ensemble, not about any single strategy: on the small graphs of Section 7.11 both and 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 between the optimum and the maximal matching. When is close to , as in a graph made of disjoint triangles with one matched edge each, the conjecture asks only for the ratio ; when , 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 , 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 vertices, , has and , so every cover satisfies . 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 . 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 it is NP-hard to approximate Minimum Vertex Cover within . If Conjecture 1 or Conjecture 2 is proved, then . 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 .
Proof.
Algorithm 1 runs in linear time (Theorem 16). A proof of Conjecture 1 makes it a polynomial-time -approximation, by Lemma 7, and a proof of Conjecture 2 makes it a polynomial-time -approximation. Both ratios are of the form with , 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 . 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 lies above the unconditional NP-hardness threshold 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 (Theorems 3 and 4), neither of which is a constant below 2.
6. Runtime Analysis
Theorem 16.
With the default parameters, every strategy of Algorithm 1 runs in time, except and , which run in time, where α is the inverse Ackermann function. Hence the whole algorithm runs in time.
Proof.
Preprocessing and every pruning pass are single scans, . Base strategies. The matching of , which is also the matching M of , and the primal-dual scan of are single scans of the edges. In the union-find pass of Algorithm 3 makes operations, with union by size and path compression [32]; the split graph has m edges and at most 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 . The bucket queues of , and the residual variant of receive pushes, one per vertex and per degree decrement, and every pop costs ; the minimum-bucket pointer of and moves down by at most one per deletion. In each auxiliary edge is inspected at most twice. In the spanning-forest core is built by union-find in , the gadget is a forest with 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 has nodes in disjoint cycles and edges, solved by a dynamic program linear in its size. In 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 ; a solve of a layer runs a matching scan, at most Hopcroft–Karp phases of linear cost [19] and two breadth-first searches, and each of at most orders solves every layer once, so costs . The dynamic programs of and and the folding of charge every table entry and adjacency scan to work counters and stop at fixed multiples of : 1024 times the gadget size for , whose bags have at most six nodes, for , whose width is at most 10, and for folding; the reductions of run on bucket queues of residual degrees. Improvers. The union of has at most n vertices. The local searches of and and the refinement stop after work per call, sorting included; each of the three rounds of and of costs , and the votes of cost . 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 , unbounded refinement, or numbers of phases or orders of 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, 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 , 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 seconds.
Part B uses graphs with up to vertices, where we report for a certified lower bound , the largest of: a Hopcroft–Karp maximum matching on bipartite graphs, which gives by Konig’s theorem [19,20]; the NetworkX minimum maximal matching and a Karp–Sipser matching [25]; a greedy packing of vertex-disjoint cliques , with ; and a spectral bound, with the minimum degree and the largest Laplacian eigenvalue, which on regular graphs is Hoffman’s bound [29]; is computed by Lanczos iteration, inflated by its residual and capped by . Table 3 gives the results.
The certified ratio never exceeds , on the random 12-regular graph with vertices, where the cover has vertices and the spectral bound certifies ; with the matching alone it would be . The part took 98 seconds. With Part A, the exact or certified ratio never exceeds .
7.3. Which Strategy Wins
The strategy report runs the families of Parts A and B up to , 297 instances, and checks every candidate. Among the base strategies, , which starts from the best of , attains the smallest base cover on all 297 instances and is the only one to do so on two; attains it on 295, on 291, on 287, and on 284, on 276, on 275, on 265, on 264, and and on 251. Among the strategies that use earlier covers, strictly improved the best of on 6 instances, by 183 vertices in total, the best of on 2, by 3, the local search the best of on 5, by 133, and the best of on 5, by 25, of which 22 came from its swap searches and 3 from its reductions; , and never improved their reference, and the union 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 and give the best independent cover, the reductions of remove 2 to 66 more vertices, and the local search of , which starts from the best of all base strategies, removes up to 52; consensus forcing fixes to of the vertices but finds no smaller cover. The exact strategies certify their own optimality often: has an empty core on 287 of the 297 instances, needs no peel on 223, has an empty core on 109 of the 116 instances whose components are all bipartite, and the phases of end with a maximum matching on every bipartite instance; on the large random families the core of holds most of the vertices and peels up to half of them. The six variants of (peel max, ref or min, with or without folding) were compared with the best of 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 , 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 already solve 106 of the 108 bipartite graphs, and the reductions of solve the other two. On the Khot–Regev YES instances and on the mechanism instances the base strategies are weak, and the reductions of and the local search of 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 vertices and shuffled labels, and computes by Hopcroft–Karp for measurement only (Table 6).
The ensemble returned a minimum cover on all 108 graphs, vertices in total. The phases of end with a maximum matching on 102 graphs, where 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 is generated on a random d-regular graph with N vertices and a planted labelling L, each edge carrying a permutation with (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 drawn from the p-biased measure, and and are joined when x and are disjoint [8]. The dictator set spans edges only on violated constraints, and removing one endpoint of each leaves an independent set whose complement is a planted cover of about vertices. The base family has , , , , ; nine more change one parameter. With and two seeds this gives 38 instances with 640 to 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 and maximum , on a linear-constraint instance (342 against 337; planted 347); the certified ratio never exceeds . The base strategies are optimal on only one of the 16, and the ablation of Table 5 shows that the reductions of and the local search of 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 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 in Theorem 13, the degree bias of a maximum independent set, and the best of the base strategies and the union, (Table 8).
The a-priori certificate is below on all 40 instances, always through the Caro–Wei term of , with maximum , and no instance lies in . Maximum independent sets favour low-degree vertices (mean bias , exactly on regular graphs), which is the choice of and . The best of is 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 , with 31 of 34 covers optimal. The hardest family is the fixed-weight Khot–Regev family with , where two of four covers are not optimal and the largest ratio is . No returned cover admits a -swap. The Nemhauser–Trotter kernel covers 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 and on six families; on the sampled family with it is 1 and , on the fixed-weight family with it is and 1, on the random 3-regular graphs 1 and , and on the random 6-regular graphs the certified bound grows from to , 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 , 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 , and are each exact on all of them alone, as Theorem 7 requires for and . Table 9 reports the general graphs, with the spectral lower bound, and compares with , the value of Hoffman’s bound when , which random regular graphs attain asymptotically [34].
The certified ratio never exceeds () and does not grow with d, far below the bound 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
Part G runs 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 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, 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 with , 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, 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 (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 (621 against 620, ratio ). On the Khot–Regev triangle-free instances the certified upper bound is at most . On the triangle-free process and the graphs the only lower bound is the relaxation, about , and the certified upper bound grows with the average degree to 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 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 -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 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 , then for every fixed there are triangle-free graphs on which the cover of Algorithm 1 exceeds . The part took 738 seconds.
7.11. Part I: The Bound
Part I tests Conjecture 1 and the structure of the split graph of . 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 for the returned cover; its second script checks the same bound, and , 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 ). 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 and alone violate it on 13 and 18 small graphs; the smallest counterexamples have six vertices for (, , ) and four for . 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 , so the conjecture requires an optimal cover; the returned cover was optimal on all of them, and on 141. Over the 297 instances lies between and , as Lemma 8 requires, with mean and median , and on of them , so that the threshold is at most . The split graph has components on 282 of the 297 instances and on the other 15, as Lemma 7 allows.
Table 13.
The six graphs without a known optimum. Every one is certified, , that is , which proves on that graph (Proposition 6 and Lemma 8).
Table 13.
The six graphs without a known optimum. Every one is certified, , that is , which proves on that graph (Proposition 6 and Lemma 8).
| Instance | n | m | L | Bound | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 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 and 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 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 , which is attained on the smallest graphs, and it is optimal on 203; its largest ratio is , on a graph of the atlas with five vertices. It is never smaller than every other candidate on these graphs, smaller than 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 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 against and maximum (gen400_p0.9_75, 347 against 325) against ; 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 against . 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 , , and and fits against (Table 15).
On eight families the fitted exponent is between and with , and every doubling multiplies the time by to ; 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 and . On the Barabási–Albert family the last doubling multiplies the time by , the largest share of it in ( of seconds at ), whose swap searches stop at a fixed multiple of (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 seconds for 442 evaluations, of which seconds in , in and in ; the slowest call took 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 (Theorem 4), so its ratio is at most on every graph with , in particular on every graph with at most vertices, and every strategy runs in 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 reach a maximum matching, ratio on d-regular graphs, on subcubic graphs, and a ratio below on every graph outside a residue of nearly Konig–Egerváry graphs with more than vertices, on which the a-posteriori certificate of Theorem 14 is exact up to a factor .
The guarantees come from different strategies on different graphs, and so does the quality measured in Section 7. The minimum-degree rules of and give the best independent covers on regular and random graphs, the bipartite solvers of and and the reductions of 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 , which would give the ratio , 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 and alone violate it on small graphs.
We do not claim that Salvador is a -approximation. The bound is a conjecture (Conjecture 1); the experiments concern graphs of at most vertices in quick mode, most of those with a known optimum are small, and a proof would refute UGC unless , and would imply if the theorem reported in [12] holds (Theorem 15). What can be guaranteed today is the per-instance certificate: whenever for a computable lower bound L, the cover is proved to be within ratio on that graph. Future work includes sharper lower bounds, larger Khot–Regev YES-type instances, and an analysis of the layers of on non-bipartite graphs. The implementation is freely available as the Salvador package on PyPI [13].
References
- 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]
- Papadimitriou, C.H.; Steiglitz, K. Combinatorial Optimization: Algorithms and Complexity; Courier Corporation: North Chelmsford (MA), 1998.
- Karakostas, G. A Better Approximation Ratio for the Vertex Cover Problem. ACM Transactions on Algorithms 2009, 5, 1–8. [CrossRef]
- 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.
- Dinur, I.; Safra, S. On the Hardness of Approximating Minimum Vertex Cover. Annals of Mathematics 2005, 162, 439–485. [CrossRef]
- 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]
- 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]
- 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]
- 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]
- Halperin, E. Improved Approximation Algorithms for the Vertex Cover Problem in Graphs and Hypergraphs. SIAM Journal on Computing 2002, 31, 1608–1623. [CrossRef]
- 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]
- 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.
- Vega, F. Salvador: Approximate Vertex Cover Solver. https://pypi.org/project/salvador, 2026. Python package version 0.1.4.
- Vega, F. An Approximate Solution to the Minimum Vertex Cover Problem: The Hvala Algorithm. Gauge Freedom Journal 2026, 1. [CrossRef]
- Vega, F. Hvala: Approximate Vertex Cover Solver. https://pypi.org/project/hvala, 2026.
- 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]
- 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.
- Baker, B.S. Approximation algorithms for NP-complete problems on planar graphs. Journal of the ACM 1994, 41, 153–180. [CrossRef]
- 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]
- Konig, D. Graphen und Matrizen. Matematikai es Fizikai Lapok 1931, 38, 116–119.
- Yannakakis, M.; Gavril, F. Edge Dominating Sets in Graphs. SIAM Journal on Applied Mathematics 1980, 38, 364–372. [CrossRef]
- Chen, J.; Kanj, I.A.; Jia, W. Vertex Cover: Further Observations and Further Improvements. Journal of Algorithms 2001, 41, 280–301. [CrossRef]
- 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]
- 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]
- 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]
- Caro, Y. New Results on the Independence Number. Technical report, Tel Aviv University, 1979.
- Wei, V.K. A Lower Bound on the Stability Number of a Simple Graph. Technical Memorandum 81-11217-9, Bell Laboratories, 1981.
- Hall, P. On Representatives of Subsets. Journal of the London Mathematical Society 1935, s1-10, 26–30. [CrossRef]
- 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.
- Johnson, D.S. Approximation Algorithms for Combinatorial Problems. Journal of Computer and System Sciences 1974, 9, 256–278. [CrossRef]
- Alimonti, P.; Kann, V. Some APX-completeness Results for Cubic Graphs. Theoretical Computer Science 2000, 237, 123–134. [CrossRef]
- Tarjan, R.E. Efficiency of a good but not linear set union algorithm. Journal of the ACM 1975, 22, 215–225. [CrossRef]
- Nemhauser, G.L.; Trotter, L.E. Vertex Packings: Structural Properties and Algorithms. Mathematical Programming 1975, 8, 232–248. [CrossRef]
- 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]
- 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]
- Nguyen, T.; Bui, T. NP-Complete Benchmark Instances. https://roars.dev/npbench/, 2025. Vertex cover DIMACS clique complements.
- 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 . (a) Splitting keeps it as an isolated 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 , with . The maximal matching fixes the target , and one split, of , reaches it. The matched edges and have equal indices and select their endpoint of larger degree in G, b and d; the matched edge is then covered by b. The decoded set is a minimum cover.
Figure 1.
Strategy . (a) Splitting keeps it as an isolated 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 , with . The maximal matching fixes the target , and one split, of , reaches it. The matched edges and have equal indices and select their endpoint of larger degree in G, b and d; the matched edge is then covered by b. The decoded set is a minimum cover.

Figure 2.
Local weighted-MIDS gadget for a core edge . Selecting or corresponds to paying for a vertex-cover endpoint, while selecting the heavy hub incurs penalty .
Figure 2.
Local weighted-MIDS gadget for a core edge . Selecting or corresponds to paying for a vertex-cover endpoint, while selecting the heavy hub incurs penalty .

Figure 3.
Oriented-incidence gadget of a vertex u with unprocessed neighbours: an even cycle . Solid forcing edges encode the original edges ; dashed local edges close the cycle. Blue nodes (weight ) decode to u, orange nodes (weight ) to .
Figure 3.
Oriented-incidence gadget of a vertex u with unprocessed neighbours: an even cycle . Solid forcing edges encode the original edges ; dashed local edges close the cycle. Blue nodes (weight ) decode to u, orange nodes (weight ) to .

Figure 4.
Strategy on the odd cycle . (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 joins two vertices of colour 0 and forms layer 1 (dashed), with the copies and . (b) Solving layer 0 exactly gives ; in layer 1 neither c nor d is selected yet, and one of them is added. The cover has vertices.
Figure 4.
Strategy on the odd cycle . (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 joins two vertices of colour 0 and forms layer 1 (dashed), with the copies and . (b) Solving layer 0 exactly gives ; in layer 1 neither c nor d is selected yet, and one of them is added. The cover has vertices.

Figure 5.
The edge-dominating-set gadget of . Left: a graph G in which u has neighbours (adjacency order) and 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. for u, while v, of degree 1, has the single node . The incidence index k in 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 . Its weight is : one unit per vertex, and an overlap of 1 because the edge has both endpoints in the cover. Every minimum cover of G ( or ) has this weight, and no other labelling is lighter.
Figure 5.
The edge-dominating-set gadget of . Left: a graph G in which u has neighbours (adjacency order) and 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. for u, while v, of degree 1, has the single node . The incidence index k in 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 . Its weight is : one unit per vertex, and an overlap of 1 because the edge has both endpoints in the cover. Every minimum cover of G ( or ) has this weight, and no other labelling is lighter.

Figure 6.
The weighted subdivision reduction of . (a) A graph G with a triangle and a pendant path . (b) Its subdivision : vertex-nodes (circles) keep the vertices, every edge becomes an edge-node (grey box) joined to its two endpoints, so is bipartite. The reductions select d by (R1) and then by (R2); the selected vertex-nodes (shaded) dominate every edge-node through the thick edges, and no peel was needed, so is a minimum vertex cover (Theorem 11). (c) The fold (R3): become one vertex z adjacent to , and the optimum drops by exactly one.
Figure 6.
The weighted subdivision reduction of . (a) A graph G with a triangle and a pendant path . (b) Its subdivision : vertex-nodes (circles) keep the vertices, every edge becomes an edge-node (grey box) joined to its two endpoints, so is bipartite. The reductions select d by (R1) and then by (R2); the selected vertex-nodes (shaded) dominate every edge-node through the thick edges, and no peel was needed, so is a minimum vertex cover (Theorem 11). (c) The fold (R3): become one vertex z adjacent to , and the optimum drops by exactly one.

Figure 7.
One round of consensus forcing (). (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 (). (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.

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 , NetworkX , NumPy , SciPy |
| 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 | 123.7 |
| car_c10_bags.py | bags and exactness of , 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 | 354.0 |
| car_ratio_timing.py | time of each strategy on Part A | 3.2 |
Table 3.
Part B: certified ratio upper bound 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 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: , the best of , , , (here equals its reference, the graphs being non-bipartite), , (with the vertices removed by its swap searches and its reductions), the vertices forced in the last round of with its matching lower bound L, and the returned cover .
Table 4.
Improvement chain on the six large random graphs: , the best of , , , (here equals its reference, the graphs being non-bipartite), , (with the vertices removed by its swap searches and its reductions), the vertices forced in the last round of with its matching lower bound L, and the returned cover .
| Instance () | Best | search | reduce | forced | L | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 , and the rows “total cover” give the size of the best of 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 , and the rows “total cover” give the size of the best of and then the change made by each addition.
| Experiment | Inst. | Measure | Best | Final | |||||
|---|---|---|---|---|---|---|---|---|---|
| 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 | |||||||
| Regular graphs (Part F), general | 26 | total cover | 3,978 | 0 | 0 | 0 | |||
| Large random graphs (strategy report) | 6 | total cover | 18,731 | 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 , of and of the returned cover; “ exact” counts the instances on which the phases of end with a maximum matching, and the last two columns the empty cores of and .
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 , of and of the returned cover; “ exact” counts the instances on which the phases of end with a maximum matching, and the last two columns the empty cores of and .
| Family | Inst. | Max n | Opt. | Opt. | Optimal | Max ratio | Exc. | Excess | exact | exact | 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 | 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, 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, 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 where is known; “Max cert.” the largest .
Table 7.
Part D: 38 sampled Khot–Regev YES instances. “≤ planted” counts covers no larger than the planted one; “Max exact” is the largest where is known; “Max cert.” the largest .
| Family | Inst. | ≤ planted | known | Opt. | Optimal | Max exact | Max cert. |
|---|---|---|---|---|---|---|---|
| Base family | 4 | 3 | 1 | 0 | 1 | 1.0000 | 1.0502 |
| Label size | 4 | 4 | 0 | 0 | 0 | – | 1.0731 |
| Label size | 4 | 4 | 4 | 0 | 4 | 1.0000 | 1.0000 |
| Bias | 4 | 4 | 0 | 0 | 0 | – | 1.1606 |
| Bias | 4 | 4 | 4 | 0 | 4 | 1.0000 | 1.0000 |
| Noise | 4 | 3 | 2 | 0 | 1 | 1.0089 | 1.0623 |
| Noise | 4 | 4 | 1 | 0 | 0 | 1.0029 | 1.0381 |
| Constraint degree | 4 | 3 | 2 | 1 | 2 | 1.0000 | 1.1149 |
| Samples per block | 2 | 1 | 0 | 0 | 0 | – | 1.0988 |
| Linear UG, Max-2-Lin | 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 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 over .
| Family | known | Opt. | Max exact | Max cert. | Max | Bias | Base exc. |
|---|---|---|---|---|---|---|---|
| KR sampled | 4/4 | 3 | 1.0054 | 1.0054 | 1.798 | 0.858 | 0.87% |
| KR sampled | 4/4 | 4 | 1.0000 | 1.0000 | 1.902 | 0.933 | 0.00% |
| KR fixed (bip.) | 4/4 | 4 | 1.0000 | 1.0000 | 1.908 | 0.618 | 0.00% |
| KR fixed | 4/4 | 2 | 1.0938 | 1.0938 | 1.741 | 0.552 | 7.25% |
| KR fixed (bip.) | 4/4 | 4 | 1.0000 | 1.0000 | 1.734 | 0.786 | 0.00% |
| Planted regular , | 4/4 | 4 | 1.0000 | 1.0000 | 1.575 | 0.594 | 0.00% |
| Planted regular , | 4/4 | 4 | 1.0000 | 1.0000 | 1.743 | 0.631 | 0.00% |
| Random regular | 2/4 | 2 | 1.0000 | 1.0409 | 1.404 | 0.500 | 0.56% |
| Random regular | 0/4 | 0 | – | 1.1436 | 1.514 | 0.500 | – |
| Thinned grid (, 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, . “vs. estimate” is over the estimate of [35], asymptotic in d and not a bound.
Table 9.
Part F: random d-regular graphs, . “vs. estimate” is over the estimate of [35], asymptotic in d and not a bound.
| d | Max ratio u.b. | Mean ratio u.b. | vs. estimate | |||
|---|---|---|---|---|---|---|
| 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: alone. “Exact” counts empty cores; and “Ref.” are means; “Max tw LB” the largest lower bound on the treewidth of the gadget.
Table 10.
Part G: alone. “Exact” counts empty cores; and “Ref.” are means; “Max tw LB” the largest lower bound on the treewidth of the gadget.
| Family | Inst. | Max bag | Exact | 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 | 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, 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, 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 () 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 () 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 – | 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 | 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 |
| , triangles removed, deg. 4–16 | 3 | 2,000 | 0 | 0 | – | 1.0000 | 1.5130 |
| Random d-regular, triangle-free, –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 for the returned cover on the instances of Parts A and B, and for and alone on the small graphs. “Certified” counts the graphs without a known optimum on which .
Table 12.
Part I: the bound for the returned cover on the instances of Parts A and B, and for and alone on the small graphs. “Certified” counts the graphs without a known optimum on which .
| Cover | Graphs with | Optimal | Max exact ratio | Certified | |||
|---|---|---|---|---|---|---|---|
| Returned cover | 291 | 0 | 0 | 0 | 291 | 1.0000 | 6 of 6 |
| alone | 311 | 13 | 0 | 3 | 295 | 1.6667 | – |
| 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 against and its (a linear algorithm has slope 1), time per element at the smallest and largest size, largest ratio , and time at the largest size.
Table 15.
Running time of Salvador on graphs of doubling size: least-squares slope of against and its (a linear algorithm has slope 1), time per element at the smallest and largest size, largest ratio , and time at the largest size.
| Family | Max n | Max m | Slope | s, 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, | 8,000 | 23,991 | 1.371 | 0.977 | 116 | 264 | 3.87 | 8.44 |
| Watts–Strogatz, | 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. |
© 2026 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
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.

