Preprint
Article

This version is not peer-reviewed.

An Approximate Solution to the Minimum Dominating Set Problem: The Furones Algorithm

Submitted:

23 May 2026

Posted:

26 May 2026

You are already at the latest version

Abstract
The Minimum Dominating Set problem is NP-hard, and the best known polynomial-time approxima-tion factor is O(ln n), which is provably tight unless P = NP. We present a polynomial-time algorithm that reduces an arbitrary input graph to a planar kernel through forced-vertex extraction, pendant elim-ination, and a linear-time forest projection, and then applies Baker’s PTAS to that kernel. The reduction outside the planar PTAS runs in O(n + m) worst-case time; with a linear-time fixed-ε implementation of Baker’s planar subroutine, the full algorithm is linear. The algorithm is provably within twice the optimum whenever the reduction is tight, and the implementation provides a linear-time sufficient--consistency certificate based on the proved forced-boundary inequality. We give a structural witness mapping that injects the post-pruning forced-boundary set into the rest of the planar kernel, explaining why pruning often improves the observed bound without turning the remaining gap into an estab-lished universal guarantee. We complement the theory with two experiments using Furones v0.2.8 with the --consistency flag: a certified run on 68 NPBench DIMACS clique-complement instances, and a comparison against NetworkX’s logarithmic approximation on a 64-graph compendium from VC-Bench. The NetworkX comparison certifies 63 of 64 instances; the lone uncertified instance still has logged upper-bound ratio 1.603 < 2, illustrating incompleteness of the current sufficient certificate rather than a poor empirical outcome.
Keywords: 
;  ;  ;  ;  

1. Introduction

The Minimum Dominating Set (DS) problem is one of the canonical NP-hard problems in graph theory [1]. Given an undirected graph G = ( V , E ) , a set D V is a dominating set if every vertex of V is either in D or has a neighbour in D; the goal is to find such a set of minimum cardinality, denoted γ ( G ) . Dominating sets arise in wireless backbone selection, sensor placement, monitoring infrastructure, and influence maximisation in social networks.
The problem is notoriously hard to approximate. The greedy set-cover reduction yields an O ( ln n ) approximation, and this is essentially the best one can do: Feige [2] showed that set cover (and hence dominating set) cannot be approximated within ( 1 ε ) ln n for any fixed ε > 0 unless P = NP , and Raz and Safra [3] sharpened this barrier. A direct consequence is that any polynomial-time algorithm achieving a constant approximation ratio — such as 2 — would imply P = NP .
Despite this barrier, we present an algorithm that is provably a 2-approximation in the tight case and, in the experiments below, often satisfies the linear-time sufficient --consistency certificate. The algorithm, called find_dominating_set and shipped in the Furones package (v0.2.8), proceeds in five phases:
  • Preprocessing: self-loops are removed and isolated vertices, which must lie in any dominating set, are extracted.
  • Reduction to a planar kernel: two reduction rules (forced isolated vertices and pendant elimination with selective neighbour removal) are applied until the working graph H has minimum degree at least 2. If H is non-planar, a planar spanning forest is built in linear time, and the reduction is applied a second time. The result is a planar graph G red of minimum degree 2 .
  • Approximate solution on the kernel: Baker’s PTAS [4] is run on G red with parameter ε = 1 (i.e. k = 1 / ε = 1 ), yielding a 2-approximation on the planar kernel.
  • Lifting: the kernel solution is combined with the forced vertices and the isolated vertices to produce a dominating set of G.
  • Pruning: redundant vertices are greedily removed from the lifted solution while preserving feasibility.
The dominant step in earlier versions was greedy planarisation. The present implementation replaces it with a linear-time forest projection, so the reduction outside the planar PTAS is O ( n + m ) . The full Python implementation is available at the link in Table 1.
  • Contributions
The main contributions of this paper are the following.
  • A practical reduction whose non-PTAS part runs in O ( n + m ) time, with a provable 2-approximation guarantee in the tight case (the residual planar kernel does not touch any forced vertex).
  • A new structural lemma — the witness mapping — which injects the post-pruning forced-boundary set F R pruned into the complement R F R of the forced-boundary inside the kernel. This identifies the part of the non-tight case controlled by pruning, while the implemented certificate remains the conservative proved condition on the full forced-boundary set F R .
  • A theoretical consequence: if the algorithm achieves a 2-approximation universally, then P = NP , by the ( 1 ε ) ln n inapproximability lower bound.
  • Experimental studies on 68 NPBench DIMACS clique-complement instances and a 64-graph compendium from VC-Bench, all run with --consistency; the second study also compares against NetworkX’s approximation implementation.
  • An open-source implementation, Furones v0.2.8.
The paper is organised as follows. Section 3 describes the algorithm. Section 4 proves that it always outputs a valid dominating set. Section 5 analyses the approximation ratio, develops the witness mapping, and discusses the consequences for the P vs NP question. Section 6 establishes the time complexity. Section 7 reports the experimental results. Section 8 concludes.

2. Research Data

The algorithm is implemented in the Python package Furones, freely available on the Python Package Index [5]. The current version is v0.2.8; code metadata is summarised in Table 1.

3. Description of the Algorithm

We now present the pseudo-code of find_dominating_set. The full Python implementation is shipped with the Furones package. The implementation also supports a linear-time sufficient --consistency flag: when enabled, the routine returns only if the current proof certifies the 2-approximation bound; otherwise it raises a certification error rather than claiming an unproved universal guarantee.
Algorithm 1 FindDominatingSet ( G , ε , consistency )
Require: 
Undirected graph G = ( V , E ) , approximation parameter ε ( 0 , 1 ] (default ε = 1 ), Boolean consistency (default false)
Ensure: 
A dominating set D V ; if consistency is true, the returned set is certified by the linear-time sufficient conditions below
1:
Remove all self-loops from G
2:
I iso { v V : deg ( v ) = 0 }          ▹ isolated vertices
3:
G G I iso
4:
ifG has no vertices thenreturn  I iso
5:
end if
6:
H G . copy ( )
7:
D forced
8:
RunCascade ( H , D forced , G )              ▹ DS reduction rules
9:
ifH is non-planar then
10:
     P S p a n n i n g F o r e s t ( H )
11:
     H P
12:
    RunCascade ( H , D forced , G )
13:
end if
14:
ifH has vertices then
15:
     D red B a k e r P T A S ( H , ε )           ▹ ( 1 + ε ) -approximation on planar graph
16:
else
17:
     D red
18:
end if
19:
D P r u n e R e d u n d a n t ( G , D forced D red I iso )
20:
ifD is not a dominating set of G then raise RuntimeError
21:
end if
22:
if  consistency and not CertifiedTwoApprox ( G , H , D forced , D I iso )  then
23:
    raise ApproximationNotCertifiedError
24:
end if
25:
return D
The consistency check is deliberately conservative and linear in the size of the graph after the dominating-set verification. It computes
F R = { v V ( H ) : N G ( v ) D forced }
and accepts when either F R = (the tight case of Theorem 2) or | D forced | 2 | F R | (the sufficient condition in Corollary 1). This check intentionally uses the full forced-boundary set, not only the post-pruning subset F R pruned . Thus consistency=True does not solve the open universal case; it prevents the implementation from reporting a 2-approximation certificate on instances outside the currently proved conditions.
The reduction cascade (Algorithm 2) implements two rules.
  • Rule 0 (isolated vertex). If deg H ( v ) = 0 and v is not already dominated through an edge of G by some vertex in D forced , add v to D forced . In either case, remove v from H.
  • Rule 1 (pendant vertex). If deg H ( v ) = 1 with unique H-neighbour u and v is not already dominated, add u to D forced . Remove both u and v from H, and additionally remove every neighbour w of u whose H-neighbours all lie inside { u } N H ( u ) . Neighbours of u that have at least one edge leaving { u } N H ( u ) are kept — these are the only vertices that may end up in the boundary set F R .
The rules are applied repeatedly until no vertex of degree at most 1 remains.
Algorithm 2 RunCascade ( H , D forced , G )
Require: 
Graph H (modifiable), forced set D forced , original graph G
Ensure: 
H has minimum degree 2 after removal
1:
Q { v V ( H ) : deg H ( v ) 1 }
2:
while  Q  do
3:
     v Q . pop ( )
4:
    if  v V ( H )  then continue
5:
    end if
6:
    if  deg H ( v ) = 0  then
7:
        if  u G . neighbors ( v ) D forced  then  H . remove ( v )
8:
        else  D forced . add ( v ) ; H . remove ( v )
9:
        end if
10:
    else if  deg H ( v ) = 1  then
11:
         u unique neighbour of v in H
12:
        if  w G . neighbors ( v ) D forced { u }  then
13:
            H . remove ( v )
14:
           if  deg H ( u ) 1  then  Q . add ( u )
15:
           end if
16:
        else
17:
            D forced . add ( u )
18:
            N u H . neighbors ( u )
19:
            R { u , v } { w N u : x H . neighbors ( w ) , x N u { u } }
20:
            H . remove_nodes(R)
21:
           for  w N u R  do
22:
               if  deg H ( w ) 1  then  Q . add ( w )
23:
               end if
24:
           end for
25:
        end if
26:
    end if
27:
end while
The planar subgraph construction is given in Algorithm 3. The implementation uses the fastest safe projection: if the residual graph H is already planar, it is kept unchanged; otherwise a depth-first search keeps only discovery edges. The result is a spanning forest, hence planar by construction. This removes both the O ( m log m ) edge sort and the repeated planarity checks used in earlier greedy versions. The trade-off is that dense non-planar residuals may lose cycle-closing edges that a maximal planar subgraph could have kept.
Algorithm 3 SpanningForest ( H )
1.5
Require: 
Graph H (possibly non-planar)
Ensure: 
Planar forest P with V ( P ) = V ( H ) and E ( P ) E ( H )
1:
if  I s P l a n a r ( H )  then return  H . copy ( )
2:
end if
3:
P Graph ( V ( H ) ) with no edges
4:
S                ▹ visited vertices
5:
for  r V ( H )  do
6:
    if  r S  then continue
7:
    end if
8:
    Push r onto a stack and add r to S
9:
    while the stack is non-empty do
10:
         u P o p ( )
11:
        for  v N H ( u )  do
12:
           if  v S  then
13:
               add v to S; push v; P . add_edge ( u , v )
14:
           end if
15:
        end for
16:
    end while
17:
end for
18:
return P
Finally, Baker’s PTAS for planar dominating set is invoked with ε = 1 , which yields a 2-approximation on the planar kernel G red . With k = 1 / ε = 1 , the underlying treewidth dynamic programme runs in O ( 3 k n ) = O ( n ) time on planar graphs [4,6].

4. Correctness of the Algorithm

Theorem 1. 
Algorithm 1 always returns a valid dominating set of the input graph G.
Proof. 
We argue that every vertex of G is either contained in the output set D or adjacent to a vertex of D. Three classes of vertices arise.
Isolated vertices. Any vertex of degree 0 in G is moved to I iso and added to D, hence trivially dominated.
Vertices removed during the cascade. The cascade modifies only the working copy H. Each removal is justified as follows.
  • If v is isolated in H but already has a neighbour in D forced via an edge of G, then v is already dominated and can be safely removed.
  • Otherwise, an isolated v has no surviving neighbour and can only be dominated by itself, so it is forced into D forced .
  • For a pendant v with unique H-neighbour u: if v is already dominated through some other neighbour, v is removed safely; otherwise the exchange argument (Proposition 1) certifies the existence of an optimal DS that contains u, so forcing u is correct. The vertices removed jointly with u and v are either u, v, or other neighbours of u that have no external edges — once u D forced all such vertices are dominated by u.
After the cascade, every removed vertex is either in D forced or adjacent to a vertex of D forced .
Vertices that survive in the planar kernel G red . Greedy planarisation (Algorithm 3) only deletes edges, so every vertex of H remains. Each edge of G red is also an edge of G, so any domination relation witnessed in G red is equally valid in G. Baker’s PTAS returns a feasible dominating set D red of G red , which therefore dominates V ( G red ) in G as well.
The union D forced D red I iso dominates every vertex of G. Pruning only removes a vertex v if (i) v has another neighbour in the current D and (ii) every neighbour of v either lies in D or has at least two D-neighbours; both conditions guarantee that the remaining set is still a dominating set.    □

5. Approximation Ratio and Consequences for P vs NP

5.1. Structural Setup

Throughout this section we fix the following notation. Let G be the input graph, F = D forced the set of forced vertices produced by the cascade, R = V ( G red ) the vertex set of the residual planar kernel, and D the algorithm’s output. The sets F and R are disjoint by construction, and we write γ ( · ) for the size of a minimum dominating set.
The forced-boundary set is
F R = v R : N G ( v ) F ,
the vertices of G red that have at least one forced neighbour in G. When F R = we call the reduction tight; otherwise non-tight. The implementation exposes this flag as no_bridge_forced in verify_reduction_ds.

5.2. Exchange Argument and Optimality of Forced Vertices

Proposition 1 
(Optimality of forced vertices). There exists a minimum dominating set D * of G with F D * .
Proof. 
We treat each forcing rule separately.
Rule 0 (isolated v). A vertex with no neighbours can only be dominated by itself, hence belongs to every dominating set of G.
Rule 1 (pendant v with unique H-neighbour u). Any DS must dominate v, so v D or u D . If D contains v but not u, then D = ( D { v } ) { u } has the same size and satisfies N G [ u ] { u , v } = N G [ v ] , so D also dominates everything D dominated. Iterating this exchange over all pendant reductions yields an optimal DS containing every vertex in F.    □

5.3. Key Inequalities

Lemma 1 
(Reduction bounds). The following inequalities hold:
(i)
γ ( G ) | F | + γ ( G r e d ) .
(ii)
γ ( G r e d ) γ ( G ) | F | + | F R | .
(iii)
| D | 2 γ ( G ) | F | + 2 | F R | .
Proof. 
(i). Let D r be any dominating set of G red . Then F D r dominates G: forced vertices are covered by themselves; vertices removed during the cascade are covered by their forced neighbour in F; and vertices in R are covered by D r via edges of G red G . Minimising over D r gives γ ( G ) | F | + γ ( G red ) .
(ii) Fix D * with F D * and | D * | = γ ( G ) (Proposition 1). Set D R * = D * R , so | D R * | = γ ( G ) | F | . The set D R * may fail to dominate some vertex v R : this happens precisely when v is dominated in D * exclusively by a forced neighbour, in which case v F R . For every such v pick a neighbour s v N G red ( v ) , which exists because G red has minimum degree 2 . Then D R * { s v } is a dominating set of G red of size at most | D R * | + | F R | = γ ( G ) | F | + | F R | .
(iii) Baker’s PTAS with k = 1 returns D red with
| D red | k + 1 k γ ( G red ) = 2 γ ( G red ) .
Before pruning, the lifted solution has size | F | + | D red | | F | + 2 γ ( G red ) , and pruning can only decrease this. Substituting (ii) gives
| D | | F | + 2 γ ( G ) | F | + | F R | = 2 γ ( G ) | F | + 2 | F R | .
   □

5.4. Tight Case: Guaranteed 2-Approximation

Theorem 2 
(2-approximation for tight reductions). If the reduction is tight ( F R = ), then | D | 2 γ ( G ) .
Proof. 
When F R = , every v R has no forced neighbour, so in any optimal DS D * with F D * each v R must be dominated by some vertex in D * R . Hence D R * = D * R already dominates G red , giving γ ( G red ) γ ( G ) | F | , i.e. γ ( G ) = | F | + γ ( G red ) . Applying Lemma 1(iii) with F R = yields | D | 2 γ ( G ) | F | 2 γ ( G ) .    □

5.5. Non-Tight Case: The Witness Mapping and a Refined Bound

When F R , Lemma 1(iii) gives | D | 2 γ ( G ) | F | + 2 | F R | . By itself this implies a 2-approximation only when | F | 2 | F R | . The pruning step is designed to recover the slack: many vertices of F R that Baker’s PTAS chooses are then deleted as redundant, because their forced neighbour in F already dominates them in G.
Vertices in F R arise exclusively from the selective-removal step of Rule 1: when a pendant v triggers the forcing of its neighbour u, every neighbour of u that has at least one edge leaving { u } N H ( u ) is kept in H, and these kept vertices are precisely the candidates for F R . By construction, every w F R has a forced G-neighbour, namely u, and minimum degree at least 2 in G red .
Let
F R pruned = F R D
denote the subset of forced-boundary vertices that survive pruning. We give two complementary results: a structural witness mapping for F R pruned (Theorem 3), and a quantitative consequence (Corollary 1) which formalises the conservative full-boundary certificate currently used by the implementation.
Theorem 3 
(Witness mapping). For every w F R pruned there exists a vertex x w R F R with
(a)
x w D ,
(b)
{ w , x w } E ( G ) , and
(c)
w is theuniqueD-neighbour of x w in G.
Moreover the assignment w x w is injective. Consequently
| F R pruned | | R F R | .
Proof. 
Let w F R pruned . Because w F R , it has a forced G-neighbour u F D , so condition (a) of the pruning rule (“w has a D-neighbour”) is satisfied. The fact that w was nevertheless retained means condition (b) of the pruning rule must fail for w: there exists a G-neighbour x w of w with x w D and | N G ( x w ) D | < 2 . Since w D contributes one to that count, w is the unique D-neighbour of x w . This proves (a), (b) and (c).
We now locate x w . First, x w F , because F D but x w D . Second, x w cannot have been removed during the cascade: every cascade-removed vertex either is itself forced or has a forced G-neighbour, both of which would contribute a D-neighbour distinct from w (recall w R and F R = ), contradicting (c). Hence x w R . Finally, if x w had a forced neighbour, the forced neighbour would be in D and distinct from w, again contradicting (c); so x w F R , i.e. x w R F R .
For injectivity, suppose x w = x w for some w w in F R pruned . Then x w would have both w and w as D-neighbours, contradicting condition (c).    □
Theorem 3 gives the cleanest precise statement available about the post-pruning forced-boundary: every surviving forced-boundary vertex is “earning its keep” by being the sole dominator of a private witness in R F R . The map is into R F R rather than into V F , which is the strongest possible target given that vertices in F R already have a forced neighbour and therefore cannot serve as witnesses.
Proposition 2 
(Pruning removes forced-boundary redundancy). A vertex w F R that lies in D red but isnotthe unique D-neighbour of any vertex outside D is removed from D byPruneRedundant.
Proof. 
Such a w has its forced neighbour u F D available, so condition (a) of the pruning rule holds. Condition (b) of the rule requires that every neighbour u of w either lies in D or has at least two D-neighbours; the hypothesis says exactly this. Both conditions hold, so w is removed.    □
Corollary 1 
(Refined approximation bound). The output D of Algorithm 1 satisfies
| D | 2 γ ( G ) | F | + 2 | F R | ,
and equality is attained only when no vertex of F R is pruned. In particular, | D | 2 γ ( G ) whenever | F | 2 | F R | .
Proof. 
The bound is Lemma 1(iii). Equality requires that every F R -vertex chosen by Baker’s PTAS be retained — but Proposition 2 shows that any such vertex with no exclusive role is removed.    □

5.6. What the Certificate Does and Does Not Prove

The proved bound from Corollary 1 is universal but loose. The certified NPBench experiment in Section 7 shows that every clique-complement instance in that run satisfies the implemented --consistency check and therefore receives the bound | D | 2 γ ( G ) . The VC-Bench comparison, however, contains one graph, scc_rt_justinbieber, for which the sufficient certificate does not fire even though the logged upper-bound ratio is below 2. This is the correct interpretation of a failed consistency run: the implementation has declined to certify the instance, not disproved the usefulness of the returned dominating set.
The post-pruning inequality
| F | 2 | F R pruned | .
is therefore not used as an implemented universal certificate. It is a natural strengthening suggested by the witness mapping, because only vertices of F R that survive pruning can contribute directly to the final lifted solution. At present, however, the proved and enforced sufficient condition remains the stronger full-boundary inequality | F | 2 | F R | from Corollary 1. Establishing a sound bound in terms of F R pruned , or finding counterexamples to such a strengthening, is left as future work.
Theorem 3 establishes the strongest one-sided structural fact we have so far: each w F R pruned pays for at least one private vertex outside F R . What remains open is whether this post-pruning structure can be converted into a sound universal approximation proof.

5.7. Consequences for P vs NP

Theorem 4 
(Implication for P vs NP ). If Algorithm 1 with ε = 1 returns | D | 2 γ ( G ) on every undirected graph G, then P = NP .
Proof. 
A polynomial-time 2-approximation for Minimum Dominating Set would, for every ε > 0 and every sufficiently large n, beat the ( 1 ε ) ln n inapproximability barrier of Feige [2], strengthened by Raz and Safra [3]. Hence such an algorithm forces P = NP .    □
Whether Algorithm 1 actually attains a universal 2-approximation remains open. Theorem 2 establishes the guarantee unconditionally for tight reductions, while Theorem 3 explains the residual post-pruning structure in the non-tight case. For consistency with this state of knowledge, the implementation’s --consistency mode is a linear-time sufficient certification mode rather than an exponential verifier or an unconditional guarantee.

6. Runtime Analysis

Theorem 5. 
The reduction and lifting parts of Algorithm 1 run in time O ( n + m ) , where n = | V | and m = | E | . The full running time is O ( n + m + T B a k e r ( n , ε ) ) , where T B a k e r is the time used by the planar dominating-set subroutine on the reduced kernel.
Proof. 
We bound each step.
  • Preprocessing (self-loops and isolates): O ( n + m ) .
  • Cascade (Rules 0 and 1): each vertex is removed at most once, and each removal scans its neighbour list, giving total work O ( n + m ) .
  • Forest projection: Algorithm 3 first performs one LR planarity test in O ( n + m ) . If the residual is already planar, it is returned unchanged. Otherwise, a DFS scan keeps a spanning forest in O ( n + m ) . No edge sorting and no repeated planarity checks are performed.
  • Baker’s PTAS on the planar kernel: the kernel has n n vertices and m = O ( n ) edges. In the theoretical fixed- ε Baker framework this step is linear in n ; the reference Python implementation uses a practical decomposition/repair routine, so its observed cost is represented by T B a k e r ( n , ε ) .
  • Lifting, pruning, and verification:  O ( n + m ) .
Thus the implemented reduction has worst-case linear time, and the full algorithm is linear whenever the planar PTAS backend is implemented in linear time for fixed ε .    □

7. Experimental Study

7.1. Setup

We evaluated Furones v0.2.8 on the NPBench collection of DIMACS clique-complement graphs [7]. These are complements of classical DIMACS maximum-clique instances and are hard benchmark instances for dominating set. The exact command was
python mfurones . batch i . experiments c l consistency ,
equivalently batch_asia -i .\experiments\ -c -l --consistency. The generated log was copied to experiments/np_bench.txt; Table 2 is derived only from that log. The time column is the algorithmic phase reported by the line “Our Algorithm ... done in:” and does not include parsing. Because every run completed with --consistency, each returned solution is certified by the implemented linear-time sufficient conditions and receives the certified approximation bound | D | / γ ( G ) 2 .

7.2. Certified Benchmark Results

The largest logged dominating set has size 172 on hamming10-2; the smallest has size 2 on the c-fat and small Hamming instances. The slowest algorithmic run is brock800_4 at 1035.418 ms, and the total algorithmic time across all 68 instances is 13.534 s. Since every instance was run with --consistency, Table 2 reports certified approximation bounds rather than empirical ratios against an ILP optimum.

7.3. NetworkX Comparison on VC-Bench Real-World Graphs

We also evaluated Furones v0.2.8 on a 64-graph compendium selected from Cai’s VC-Bench collection of real-world undirected graphs [8]. Cai’s source collection is a large DIMACS-format graph repository; our experiment uses this selected compendium rather than the full repository. The command was
python mfurones . batch i . network c a l consistency ,
equivalently batch_asia -i .\network\ -c -a -l --consistency. The -a flag runs NetworkX’s default dominating-set approximation implementation in NetworkX 3.4.2 before Furones; this is the logarithmic-ratio approximation based on the standard set-cover analysis [9]. The resulting log is network/network.txt. Table 3 reports the per-instance algorithmic times, solution sizes, logged upper-bound ratio, and certification outcome. In the current command-line implementation, this upper bound is computed as
log 2 ( n ) · | D F u r o n e s | / | D N e t w o r k X | ,
using NetworkX’s logarithmic approximation as the comparison baseline.
The comparison shows a strong aggregate size advantage for Furones: its returned dominating set is no larger than NetworkX’s on 62 of 64 instances and the total returned size is roughly half of NetworkX’s. NetworkX has a slightly smaller median runtime because many tiny SCC instances finish in effectively zero milliseconds, but Furones is much faster in total time and on the largest expensive cases; for example, on web-indochina-2004, Furones takes 1411.469 ms versus NetworkX’s 128617.267 ms while returning a set of size 1493 instead of 7303. The sole certification failure, scc_rt_justinbieber, therefore appears as a limitation of the current sufficient certificate rather than as a poor empirical outcome: the logged upper-bound ratio is 1.603 < 2 .

8. Conclusions

We have presented a polynomial-time algorithm for the Minimum Dominating Set problem that combines a two-phase reduction to a planar kernel with Baker’s PTAS and a redundancy-pruning step. The algorithm always returns a valid dominating set, its non-PTAS reduction runs in O ( n + m ) time, and it provably achieves a 2-approximation whenever the reduction is tight; the implementation can enforce this claim through a linear-time sufficient --consistency check that refuses uncertified instances. In the non-tight case our new witness mapping (Theorem 3) provides an injection from the post-pruning forced-boundary F R pruned into R F R , clarifying why pruning can improve the observed result without converting the current proof into a universal 2-approximation guarantee.
Across 68 NPBench DIMACS clique-complement graphs, the --consistency run certifies the 2-approximation bound on every instance and finishes the algorithmic phase in 13.534 seconds total. On the 64-graph VC-Bench compendium, Furones is compared against NetworkX’s approximation implementation; it returns no larger a set on 62 instances, is much faster in total algorithmic time, and has only one consistency failure, whose logged upper-bound ratio is nevertheless below 2.
Future work includes strengthening the certificate beyond the current full-boundary sufficient condition, searching for counterexamples to post-pruning universal bounds, extending the reduction framework to other hard problems such as set cover and vertex cover, and studying hybrid projections that recover some dense planar edges while preserving near-linear time. The implementation is freely available as the Furones package (v0.2.8) on PyPI.

References

  1. Karp, R.M. Reducibility Among Combinatorial Problems. In 50 Years of Integer Programming 1958–2008: From the Early Years to the State-of-the-Art; Springer: Berlin, Germany, 2010; pp. 219–241. [CrossRef]
  2. Feige, U. A threshold of lnn for approximating set cover. Journal of the ACM 1998, 45, 634–652. [CrossRef]
  3. Raz, R.; Safra, S. The distance of the minimum dominating set problem from (lnn)-approximation. In Proceedings of the Proceedings 43rd Annual IEEE Symposium on Foundations of Computer Science, Washington, DC, USA, 2002; pp. 311–320. [CrossRef]
  4. Baker, B.S. Approximation algorithms for NP-complete problems on planar graphs. Journal of the ACM 1994, 41, 153–180. [CrossRef]
  5. Vega, F. Furones: Approximate Dominating Set Solver. https://pypi.org/project/furones, 2026. Version 0.2.8, Accessed May 23, 2026.
  6. Storer, J.A. Exact and approximation algorithms for the minimum dominating set problem on planar graphs. SIAM Journal on Computing 1983, 12, 679–696. [CrossRef]
  7. Nguyen, T.; Bui, T. NP-Complete Benchmark Instances. https://roars.dev/npbench/. Vertex cover DIMACS clique complements.
  8. Cai, S. A Collection of Large Graphs for Vertex Cover Benchmarking. https://lcs.ios.ac.cn/~caisw/graphs.html, 2017. Accessed: 2026-05-22.
  9. Vazirani, V.V. Approximation Algorithms; Springer Science & Business Media, 2001.
Table 1. Code metadata for the Furones package (v0.2.8).
Table 1. Code metadata for the Furones package (v0.2.8).
Nr. Code metadata description Metadata
C1 Current code version v0.2.8
C2 Permanent link to code repository https://github.com/frankvegadelgado/furones
C3 Permanent link to reproducible capsule https://pypi.org/project/furones/
C4 Legal Code License MIT License
C5 Code versioning system used git
C6 Languages, tools, and services used Python ≥ 3.12, NetworkX ≥ 3.0
C7 Compilation requirements and dependencies Python, NetworkX, itertools
Table 2. Certified Furones v0.2.8 results on NPBench DIMACS clique-complement instances. T F is the algorithmic time in milliseconds reported in experiments/np_bench.txt. The --consistency column records that the certification flag was active and did not reject the instance.
Table 2. Certified Furones v0.2.8 results on NPBench DIMACS clique-complement instances. T F is the algorithmic time in milliseconds reported in experiments/np_bench.txt. The --consistency column records that the certification flag was active and did not reject the instance.
Instance n m | D | T F ms --consistency Bound
brock200_1 200 5066 12 79.104 yes 2
brock200_2 200 10024 7 69.520 yes 2
brock200_3 200 7852 7 45.499 yes 2
brock200_4 200 6811 9 41.027 yes 2
brock400_1 400 20077 13 127.964 yes 2
brock400_2 400 20014 13 141.828 yes 2
brock400_3 400 20119 12 127.718 yes 2
brock400_4 400 20035 13 96.426 yes 2
brock800_1 800 112095 13 859.918 yes 2
brock800_2 800 111434 12 653.505 yes 2
brock800_3 800 112267 12 588.356 yes 2
brock800_4 800 111957 12 1035.418 yes 2
c-fat200-1 200 18366 2 76.947 yes 2
c-fat200-2 200 16665 2 81.690 yes 2
c-fat200-5 200 11427 2 60.935 yes 2
c-fat500-1 500 120291 2 533.267 yes 2
c-fat500-10 500 78123 2 379.581 yes 2
c-fat500-2 500 115611 2 509.301 yes 2
c-fat500-5 500 101559 2 706.302 yes 2
C1000.9 1000 49421 36 275.494 yes 2
C125.9 125 787 22 0.000 yes 2
C250.9 250 3141 25 10.970 yes 2
C500.9 500 12418 29 66.273 yes 2
gen200_p0.9_44 200 1990 24 22.267 yes 2
gen200_p0.9_55 200 1990 23 17.404 yes 2
gen400_p0.9_55 400 7980 31 143.843 yes 2
gen400_p0.9_65 400 7980 31 47.538 yes 2
gen400_p0.9_75 400 7980 30 43.435 yes 2
hamming10-2 1024 5120 172 38.668 yes 2
hamming10-4 1024 89600 18 535.905 yes 2
hamming6-2 64 192 15 0.000 yes 2
hamming6-4 64 1312 2 15.273 yes 2
hamming8-2 256 1024 48 9.930 yes 2
hamming8-4 256 11776 6 70.361 yes 2
johnson16-2-4 120 1680 8 7.148 yes 2
johnson32-2-4 496 14880 16 64.438 yes 2
johnson8-2-4 28 168 4 0.000 yes 2
johnson8-4-4 70 560 8 0.000 yes 2
keller4 171 5100 7 27.093 yes 2
keller5 776 74710 16 413.935 yes 2
MANN_a27 378 702 39 10.770 yes 2
MANN_a45 1035 1980 66 47.806 yes 2
MANN_a81 3321 6480 120 173.083 yes 2
MANN_a9 45 72 14 12.538 yes 2
p_hat1000-3 1000 127754 20 743.294 yes 2
p_hat300-1 300 33917 4 147.821 yes 2
p_hat300-2 300 22922 9 89.907 yes 2
p_hat300-3 300 11460 16 55.926 yes 2
p_hat500-1 500 93181 5 441.127 yes 2
p_hat500-2 500 61804 12 300.894 yes 2
p_hat500-3 500 30950 26 344.563 yes 2
p_hat700-1 700 183651 4 906.348 yes 2
p_hat700-2 700 122922 9 615.148 yes 2
p_hat700-3 700 61640 22 320.006 yes 2
san200_0.7_1 200 5970 9 30.371 yes 2
san200_0.7_2 200 5970 8 255.688 yes 2
san200_0.9_1 200 1990 20 13.806 yes 2
san200_0.9_2 200 1990 21 10.775 yes 2
san200_0.9_3 200 1990 22 15.211 yes 2
san400_0.5_1 400 39900 6 190.746 yes 2
san400_0.7_1 400 23940 10 109.924 yes 2
san400_0.7_2 400 23940 11 106.871 yes 2
san400_0.7_3 400 23940 10 114.503 yes 2
san400_0.9_1 400 7980 30 44.115 yes 2
sanr200_0.7 200 6032 11 98.955 yes 2
sanr200_0.9 200 2037 23 9.569 yes 2
sanr400_0.5 400 39816 7 191.481 yes 2
sanr400_0.7 400 23931 13 108.915 yes 2
Summary: 68 certified runs; total algorithm time 13.534 s; median 85.799 ms; maximum 1035.418 ms.
Table 3. Detailed VC-Bench comparison from network/network.txt. T F and T N X are the algorithmic times in milliseconds reported by the corresponding “done in” log lines. UB is the logged upper bound log 2 ( n ) | D F | / | D N X | . The final column records whether the linear-time sufficient --consistency check certified the Furones output.
Table 3. Detailed VC-Bench comparison from network/network.txt. T F and T N X are the algorithmic times in milliseconds reported by the corresponding “done in” log lines. UB is the logged upper bound log 2 ( n ) | D F | / | D N X | . The final column records whether the linear-time sufficient --consistency check certified the Furones output.
Instance | D F | T F ms | D N X | T N X ms UB Cert.
bio-celegans 35 21.829 241 79.567 1.281 yes
bio-diseasome 97 13.082 276 85.794 3.167 yes
bio-dmela 1481 435.197 2664 12764.554 7.145 yes
bio-yeast 356 31.494 463 333.162 8.081 yes
ca-CSphd 523 28.987 554 476.615 10.269 yes
ca-Erdos992 440 79.386 461 1363.359 11.754 yes
ca-GrQc 788 159.655 2218 4862.762 4.271 yes
ca-netscience 57 34.949 138 22.417 3.538 yes
ia-email-EU 755 670.716 820 16967.082 13.797 yes
ia-email-univ 233 116.958 604 457.616 3.914 yes
ia-enron-only 25 10.048 73 8.127 2.452 yes
ia-fb-messages 263 68.861 594 510.342 4.563 yes
ia-infect-dublin 64 17.877 241 74.469 2.305 yes
ia-infect-hyper 7 26.160 5 0.000 9.548 yes
ia-reality 81 79.358 81 286.423 12.733 yes
inf-power 1500 180.161 2263 5326.914 8.133 yes
rt-retweet 32 7.856 33 0.000 6.385 yes
rt-twitter-copen 199 0.505 236 100.225 8.071 yes
scc_enron-only 2 49.686 1 0.000 14.380 yes
scc_fb-forum 28 369.487 322 963.753 0.777 yes
scc_infect-hyper 1 46.864 1 0.000 6.820 yes
scc_retweet 156 469.269 562 1849.766 2.841 yes
scc_retweet-crawl 6079 508.851 8447 73413.115 10.123 yes
scc_rt_alwefaq 17 9.646 35 0.000 2.997 yes
scc_rt_assad 9 0.000 16 0.000 2.862 yes
scc_rt_bahrain 27 5.158 37 6.804 4.502 yes
scc_rt_barackobama 15 0.000 29 0.000 3.270 yes
scc_rt_damascus 11 3.064 15 0.842 3.731 yes
scc_rt_dash 12 2.242 15 0.534 3.963 yes
scc_rt_gmanews 12 4.640 45 6.426 1.887 yes
scc_rt_gop 6 0.000 6 0.000 3.700 yes
scc_rt_http 1 0.000 1 0.000 2.322 yes
scc_rt_israel 11 0.000 11 0.000 4.459 yes
scc_rt_justinbieber 7 0.000 26 0.000 1.603 no
scc_rt_ksa 8 0.000 12 0.000 2.928 yes
scc_rt_lebanon 5 0.000 5 0.000 3.322 yes
scc_rt_libya 10 0.000 12 0.000 3.962 yes
scc_rt_lolgop 14 25.584 104 37.097 1.089 yes
scc_rt_mittromney 36 0.000 42 0.000 5.719 yes
scc_rt_obama 4 1.006 4 0.000 3.000 yes
scc_rt_occupy 19 1.662 22 2.577 4.993 yes
scc_rt_occupywallstnyc 10 6.294 45 3.365 1.553 yes
scc_rt_oman 5 1.049 6 0.000 3.333 yes
scc_rt_onedirection 3 2.218 27 1.122 0.570 yes
scc_rt_p2 12 0.000 12 0.000 4.700 yes
scc_rt_qatif 4 0.000 5 0.000 3.046 yes
scc_rt_saudi 7 2.041 17 1.019 1.979 yes
scc_rt_tcot 11 1.112 12 1.032 4.309 yes
scc_rt_tlot 6 0.000 6 0.000 3.700 yes
scc_rt_uae 7 1.039 8 1.021 3.649 yes
scc_rt_voteonedirection 3 0.000 3 0.000 2.807 yes
soc-dolphins 14 4.693 33 1.121 2.526 yes
soc-karate 4 2.231 8 0.000 2.544 yes
soc-wiki-Vote 214 127.561 415 204.852 5.051 yes
tech-as-caida2007 2401 687.418 3691 61090.660 9.557 yes
tech-routers-rf 490 127.025 805 875.531 6.723 yes
tech-WHOIS 682 671.057 2285 13022.264 3.841 yes
web-BerkStan 3067 588.120 5472 34108.009 7.615 yes
web-edu 249 267.021 1451 2493.434 1.985 yes
web-google 205 115.451 497 1262.731 4.266 yes
web-indochina-2004 1493 1411.469 7303 128617.267 2.754 yes
web-polblogs 108 83.663 246 297.053 4.096 yes
web-spam 859 1066.798 2346 25313.327 4.474 yes
web-webbase-2001 1277 1180.829 2682 74350.114 6.652 yes
Summary: 64 instances; Furones total 9.827 s; NetworkX total 461.644 s; 63 certified; 1 uncertified with UB 1.603 < 2 .
Furones total size 24557; NetworkX total size 49110; Furones returned a no-larger set on 62 of 64 instances.
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.
Copyright: This open access article is published under a Creative Commons CC BY 4.0 license, which permit the free download, distribution, and reuse, provided that the author and preprint are cited in any reuse.
Prerpints.org logo

Preprints.org is a free preprint server supported by MDPI in Basel, Switzerland.

Subscribe

Disclaimer

Terms of Use

Privacy Policy

Privacy Settings

© 2026 MDPI (Basel, Switzerland) unless otherwise stated