Submitted:
23 May 2026
Posted:
26 May 2026
You are already at the latest version
Abstract
Keywords:
MSC: 05C69; 68Q25; 90C27
1. Introduction
- 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 of minimum degree .
- Approximate solution on the kernel: Baker’s PTAS [4] is run on with parameter (i.e. ), 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.
- Contributions
- A practical reduction whose non-PTAS part runs in 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 into the complement 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 .
- A theoretical consequence: if the algorithm achieves a 2-approximation universally, then , by the 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.
2. Research Data
3. Description of the Algorithm
| Algorithm 1 FindDominatingSet |
|
- Rule 0 (isolated vertex). If and v is not already dominated through an edge of G by some vertex in , add v to . In either case, remove v from H.
- Rule 1 (pendant vertex). If with unique H-neighbour u and v is not already dominated, add u to . Remove both u and v from H, and additionally remove every neighbour w of u whose H-neighbours all lie inside . Neighbours of u that have at least one edge leaving are kept — these are the only vertices that may end up in the boundary set .
| Algorithm 2 RunCascade |
|
| Algorithm 3 SpanningForest |
|
1.5
|
4. Correctness of the Algorithm
- If v is isolated in H but already has a neighbour in 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 .
- 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 all such vertices are dominated by u.
5. Approximation Ratio and Consequences for P vs NP
5.1. Structural Setup
5.2. Exchange Argument and Optimality of Forced Vertices
5.3. Key Inequalities
- (i)
- .
- (ii)
- .
- (iii)
- .
5.4. Tight Case: Guaranteed 2-Approximation
5.5. Non-Tight Case: The Witness Mapping and a Refined Bound
- (a)
- ,
- (b)
- , and
- (c)
- w is theuniqueD-neighbour of in G.
5.6. What the Certificate Does and Does Not Prove
5.7. Consequences for P vs NP
6. Runtime Analysis
- Preprocessing (self-loops and isolates): .
- Cascade (Rules 0 and 1): each vertex is removed at most once, and each removal scans its neighbour list, giving total work .
- Forest projection: Algorithm 3 first performs one LR planarity test in . If the residual is already planar, it is returned unchanged. Otherwise, a DFS scan keeps a spanning forest in . No edge sorting and no repeated planarity checks are performed.
- Baker’s PTAS on the planar kernel: the kernel has vertices and edges. In the theoretical fixed- Baker framework this step is linear in ; the reference Python implementation uses a practical decomposition/repair routine, so its observed cost is represented by .
- Lifting, pruning, and verification: .
7. Experimental Study
7.1. Setup
7.2. Certified Benchmark Results
7.3. NetworkX Comparison on VC-Bench Real-World Graphs
8. Conclusions
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]
- Feige, U. A threshold of lnn for approximating set cover. Journal of the ACM 1998, 45, 634–652. [CrossRef]
- 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]
- Baker, B.S. Approximation algorithms for NP-complete problems on planar graphs. Journal of the ACM 1994, 41, 153–180. [CrossRef]
- Vega, F. Furones: Approximate Dominating Set Solver. https://pypi.org/project/furones, 2026. Version 0.2.8, Accessed May 23, 2026.
- 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]
- Nguyen, T.; Bui, T. NP-Complete Benchmark Instances. https://roars.dev/npbench/. Vertex cover DIMACS clique complements.
- Cai, S. A Collection of Large Graphs for Vertex Cover Benchmarking. https://lcs.ios.ac.cn/~caisw/graphs.html, 2017. Accessed: 2026-05-22.
- Vazirani, V.V. Approximation Algorithms; Springer Science & Business Media, 2001.
| 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 |
| Instance | n | m | ms | --consistency | Bound | |
| brock200_1 | 200 | 5066 | 12 | 79.104 | yes | |
| brock200_2 | 200 | 10024 | 7 | 69.520 | yes | |
| brock200_3 | 200 | 7852 | 7 | 45.499 | yes | |
| brock200_4 | 200 | 6811 | 9 | 41.027 | yes | |
| brock400_1 | 400 | 20077 | 13 | 127.964 | yes | |
| brock400_2 | 400 | 20014 | 13 | 141.828 | yes | |
| brock400_3 | 400 | 20119 | 12 | 127.718 | yes | |
| brock400_4 | 400 | 20035 | 13 | 96.426 | yes | |
| brock800_1 | 800 | 112095 | 13 | 859.918 | yes | |
| brock800_2 | 800 | 111434 | 12 | 653.505 | yes | |
| brock800_3 | 800 | 112267 | 12 | 588.356 | yes | |
| brock800_4 | 800 | 111957 | 12 | 1035.418 | yes | |
| c-fat200-1 | 200 | 18366 | 2 | 76.947 | yes | |
| c-fat200-2 | 200 | 16665 | 2 | 81.690 | yes | |
| c-fat200-5 | 200 | 11427 | 2 | 60.935 | yes | |
| c-fat500-1 | 500 | 120291 | 2 | 533.267 | yes | |
| c-fat500-10 | 500 | 78123 | 2 | 379.581 | yes | |
| c-fat500-2 | 500 | 115611 | 2 | 509.301 | yes | |
| c-fat500-5 | 500 | 101559 | 2 | 706.302 | yes | |
| C1000.9 | 1000 | 49421 | 36 | 275.494 | yes | |
| C125.9 | 125 | 787 | 22 | 0.000 | yes | |
| C250.9 | 250 | 3141 | 25 | 10.970 | yes | |
| C500.9 | 500 | 12418 | 29 | 66.273 | yes | |
| gen200_p0.9_44 | 200 | 1990 | 24 | 22.267 | yes | |
| gen200_p0.9_55 | 200 | 1990 | 23 | 17.404 | yes | |
| gen400_p0.9_55 | 400 | 7980 | 31 | 143.843 | yes | |
| gen400_p0.9_65 | 400 | 7980 | 31 | 47.538 | yes | |
| gen400_p0.9_75 | 400 | 7980 | 30 | 43.435 | yes | |
| hamming10-2 | 1024 | 5120 | 172 | 38.668 | yes | |
| hamming10-4 | 1024 | 89600 | 18 | 535.905 | yes | |
| hamming6-2 | 64 | 192 | 15 | 0.000 | yes | |
| hamming6-4 | 64 | 1312 | 2 | 15.273 | yes | |
| hamming8-2 | 256 | 1024 | 48 | 9.930 | yes | |
| hamming8-4 | 256 | 11776 | 6 | 70.361 | yes | |
| johnson16-2-4 | 120 | 1680 | 8 | 7.148 | yes | |
| johnson32-2-4 | 496 | 14880 | 16 | 64.438 | yes | |
| johnson8-2-4 | 28 | 168 | 4 | 0.000 | yes | |
| johnson8-4-4 | 70 | 560 | 8 | 0.000 | yes | |
| keller4 | 171 | 5100 | 7 | 27.093 | yes | |
| keller5 | 776 | 74710 | 16 | 413.935 | yes | |
| MANN_a27 | 378 | 702 | 39 | 10.770 | yes | |
| MANN_a45 | 1035 | 1980 | 66 | 47.806 | yes | |
| MANN_a81 | 3321 | 6480 | 120 | 173.083 | yes | |
| MANN_a9 | 45 | 72 | 14 | 12.538 | yes | |
| p_hat1000-3 | 1000 | 127754 | 20 | 743.294 | yes | |
| p_hat300-1 | 300 | 33917 | 4 | 147.821 | yes | |
| p_hat300-2 | 300 | 22922 | 9 | 89.907 | yes | |
| p_hat300-3 | 300 | 11460 | 16 | 55.926 | yes | |
| p_hat500-1 | 500 | 93181 | 5 | 441.127 | yes | |
| p_hat500-2 | 500 | 61804 | 12 | 300.894 | yes | |
| p_hat500-3 | 500 | 30950 | 26 | 344.563 | yes | |
| p_hat700-1 | 700 | 183651 | 4 | 906.348 | yes | |
| p_hat700-2 | 700 | 122922 | 9 | 615.148 | yes | |
| p_hat700-3 | 700 | 61640 | 22 | 320.006 | yes | |
| san200_0.7_1 | 200 | 5970 | 9 | 30.371 | yes | |
| san200_0.7_2 | 200 | 5970 | 8 | 255.688 | yes | |
| san200_0.9_1 | 200 | 1990 | 20 | 13.806 | yes | |
| san200_0.9_2 | 200 | 1990 | 21 | 10.775 | yes | |
| san200_0.9_3 | 200 | 1990 | 22 | 15.211 | yes | |
| san400_0.5_1 | 400 | 39900 | 6 | 190.746 | yes | |
| san400_0.7_1 | 400 | 23940 | 10 | 109.924 | yes | |
| san400_0.7_2 | 400 | 23940 | 11 | 106.871 | yes | |
| san400_0.7_3 | 400 | 23940 | 10 | 114.503 | yes | |
| san400_0.9_1 | 400 | 7980 | 30 | 44.115 | yes | |
| sanr200_0.7 | 200 | 6032 | 11 | 98.955 | yes | |
| sanr200_0.9 | 200 | 2037 | 23 | 9.569 | yes | |
| sanr400_0.5 | 400 | 39816 | 7 | 191.481 | yes | |
| sanr400_0.7 | 400 | 23931 | 13 | 108.915 | yes | |
| Summary: 68 certified runs; total algorithm time 13.534 s; median 85.799 ms; maximum 1035.418 ms. | ||||||
| Instance | ms | 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 . 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. |
© 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/).