Beta release. Problem Forge is new and open by invitation. The beta test period runs through 2026-11-30; the full opening is on 2026-12-01 00:00 UTC. Things may break, and we may correct the boards when they do. The difficulty of some rungs may be wrong. There are no prizes during the beta, and the bounty is not open. Your account and your progress stay when the beta ends. Please tell us what goes well and what goes wrong: admin@problemforge.com.

References

More reading on the 10 problems, and tools to help you climb. Start with Wikipedia. The papers and books below are the classic sources.

Background: P, NP and NP-completeness

  • Wikipedia: P versus NP problem, NP-completeness, Cook–Levin theorem.
  • Clay Mathematics Institute, P vs NP, one of the seven Millennium Prize Problems.
  • Stephen A. Cook, "The complexity of theorem-proving procedures", Proceedings of the Third Annual ACM Symposium on Theory of Computing (STOC '71), 1971, pp. 151–158. doi:10.1145/800157.805047
  • Richard M. Karp, "Reducibility among combinatorial problems", in R. E. Miller and J. W. Thatcher (eds.), Complexity of Computer Computations, Plenum Press, 1972, pp. 85–103. doi:10.1007/978-1-4684-2001-2_9
  • Michael R. Garey and David S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness, W. H. Freeman, 1979. ISBN 0-7167-1045-5. The standard catalogue of NP-complete problems.
  • Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage Learning, 2013. ISBN 978-1-133-18779-0. Chapter 7 introduces P, NP and NP-completeness.
  • Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, 2009. doi:10.1017/CBO9780511804090

Boolean Satisfiability (SAT)

  • Wikipedia: Boolean satisfiability problem, SAT solver.
  • Classic: Cook 1971 (above), the first NP-completeness proof. For solving: Martin Davis and Hilary Putnam, "A computing procedure for quantification theory", Journal of the ACM 7(3), 1960, pp. 201–215, doi:10.1145/321033.321034; and Martin Davis, George Logemann and Donald Loveland, "A machine program for theorem-proving", Communications of the ACM 5(7), 1962, pp. 394–397, doi:10.1145/368273.368557 (DPLL, the method behind every modern solver).
  • Survey: Armin Biere, Marijn Heule, Hans van Maaren and Toby Walsh (eds.), Handbook of Satisfiability, 2nd ed., IOS Press, 2021. doi:10.3233/FAIA336

3-SAT

  • Wikipedia: 3-satisfiability (a section of the SAT article).
  • Classic: Uwe Schöning, "A probabilistic algorithm for k-SAT and constraint satisfaction problems", 40th Annual Symposium on Foundations of Computer Science (FOCS), IEEE, 1999, pp. 410–414, doi:10.1109/SFFCS.1999.814612; journal version in Algorithmica 32(4), 2002, pp. 615–623, doi:10.1007/s00453-001-0094-7. A simple method that makes random moves. On 3-SAT it is faster than trying every case.
  • Textbook: Donald E. Knuth, The Art of Computer Programming, Volume 4B: Combinatorial Algorithms, Part 2, Addison-Wesley, 2023, section 7.2.2.2 (Satisfiability). ISBN 0-201-03806-4.

Independent Set

Clique

  • Wikipedia: Clique problem.
  • Classic: Coen Bron and Joep Kerbosch, "Algorithm 457: finding all cliques of an undirected graph", Communications of the ACM 16(9), 1973, pp. 575–577. doi:10.1145/362342.362367
  • Survey: Qinghua Wu and Jin-Kao Hao, "A review on algorithms for maximum clique problems", European Journal of Operational Research 242(3), 2015, pp. 693–709. doi:10.1016/j.ejor.2014.09.064

Vertex Cover

  • Wikipedia: Vertex cover.
  • Classic: G. L. Nemhauser and L. E. Trotter, "Vertex packings: structural properties and algorithms", Mathematical Programming 8(1), 1975, pp. 232–248. doi:10.1007/BF01580444 Also: Jianer Chen, Iyad A. Kanj and Ge Xia, "Improved upper bounds for vertex cover", Theoretical Computer Science 411(40–42), 2010, pp. 3736–3756. doi:10.1016/j.tcs.2010.06.026
  • Textbook: Marek Cygan, Fedor V. Fomin, Łukasz Kowalik, Daniel Lokshtanov, Dániel Marx, Marcin Pilipczuk, Michał Pilipczuk and Saket Saurabh, Parameterized Algorithms, Springer, 2015. doi:10.1007/978-3-319-21275-3

Graph 3-Coloring

Hamiltonian Cycle

  • Wikipedia: Hamiltonian path problem, Hamiltonian path.
  • Classic: Michael Held and Richard M. Karp, "A dynamic programming approach to sequencing problems", Journal of the Society for Industrial and Applied Mathematics 10(1), 1962, pp. 196–210, doi:10.1137/0110015; and Richard Bellman, "Dynamic programming treatment of the travelling salesman problem", Journal of the ACM 9(1), 1962, pp. 61–63, doi:10.1145/321105.321111. Modern: Andreas Björklund, "Determinant sums for undirected Hamiltonicity", SIAM Journal on Computing 43(1), 2014, pp. 280–299. doi:10.1137/110839229
  • Survey: Ronald J. Gould, "Advances on the Hamiltonian problem – a survey", Graphs and Combinatorics 19(1), 2003, pp. 7–52. doi:10.1007/s00373-002-0492-x
  • Hard instances: Joeri Sleegers and Daan van den Berg, "The hardest Hamiltonian cycle problem instances: the plateau of yes and the cliff of no", SN Computer Science 3, article 372, 2022. Open access. doi:10.1007/s42979-022-01256-0

Travelling Salesperson (TSP)

  • Wikipedia: Travelling salesman problem.
  • Classic: G. Dantzig, R. Fulkerson and S. Johnson, "Solution of a large-scale traveling-salesman problem", Journal of the Operations Research Society of America 2(4), 1954, pp. 393–410, doi:10.1287/opre.2.4.393; and S. Lin and B. W. Kernighan, "An effective heuristic algorithm for the traveling-salesman problem", Operations Research 21(2), 1973, pp. 498–516, doi:10.1287/opre.21.2.498. Held and Karp 1962 (above) is the classic exact dynamic program.
  • Book: David L. Applegate, Robert E. Bixby, Vašek Chvátal and William J. Cook, The Traveling Salesman Problem: A Computational Study, Princeton University Press, 2006. ISBN 978-0-691-12993-8.

0-1 Integer Programming

Exact Cover by 3-Sets (X3C)

  • Wikipedia: Exact cover (exact cover by 3-sets is the case where every set has three elements), Knuth's Algorithm X, Dancing links.
  • Classic: Donald E. Knuth, "Dancing links", in Millennial Perspectives in Computer Science, 2000, pp. 187–214. arXiv:cs/0011047 The problem appears as [SP2] in Garey and Johnson 1979 (above).
  • Textbook: Donald E. Knuth, The Art of Computer Programming, Volume 4B, Addison-Wesley, 2023, section 7.2.2.1 (Dancing links). ISBN 0-201-03806-4.

Solvers and tools

Each licence is as the project states it. "Academic use" means other uses may need permission.

SAT

Graphs (independent set, clique, vertex cover)

  • KaMIS: maximum independent sets and vertex covers of large sparse graphs. MIT.
  • Cliquer (Patric Östergård and others): exact maximum and maximum-weight clique search. GNU GPL.
  • PMC (Ryan A. Rossi): parallel maximum clique. GNU GPL v3 or later.
  • NetworkX (source): Python graph library for small experiments. BSD 3-clause.

Exact cover

  • Donald E. Knuth's DLX1, Algorithm 7.2.2.1X (exact cover by dancing links), in CWEB. Neither the program nor the page that lists it states a licence.

Travelling salesperson and Hamiltonian cycle

  • Concorde (Applegate, Bixby, Chvátal, Cook): exact symmetric TSP solver. Academic research use is allowed. Other uses need a licence from William Cook.
  • LKH and LKH-3 (Keld Helsgaun): the Lin–Kernighan–Helsgaun method for finding short tours, not always the shortest. LKH also solves Hamiltonian cycle problems directly. For academic and non-commercial use only. The author reserves all rights.

General constraint and integer programming solvers

  • RoundingSat (Jan Elffers, Jakob Nordström and others): pseudo-Boolean solver that reads OPB files. MIT. Described in Jan Elffers and Jakob Nordström, "Divide and conquer: towards faster pseudo-Boolean solving", Proceedings of the Twenty-Seventh International Joint Conference on Artificial Intelligence (IJCAI-18), 2018, pp. 1291–1299, doi:10.24963/ijcai.2018/180.
  • OR-Tools CP-SAT (Google; source). Apache 2.0.
  • SCIP (source): constraint integer programming; reads OPB files. Apache 2.0.
  • HiGHS (source): linear and mixed-integer programming. MIT.

Further reading

  • Lance Fortnow, "The status of the P versus NP problem", Communications of the ACM 52(9), 2009, pp. 78–86. doi:10.1145/1562164.1562186
  • Scott Aaronson, "NP-complete problems and physical reality", ACM SIGACT News 36(1), 2005, pp. 30–52. doi:10.1145/1052796.1052804, arXiv:quant-ph/0502072 Whether physical systems (quantum computers, analog devices, and more) could solve NP-complete problems efficiently.
  • Lance Fortnow, The Golden Ticket: P, NP, and the Search for the Impossible, Princeton University Press, 2013. ISBN 978-0-691-15649-1. For a general reader.
  • William J. Cook, In Pursuit of the Traveling Salesman: Mathematics at the Limits of Computation, Princeton University Press, 2012. ISBN 978-0-691-15270-7.
  • Cristopher Moore and Stephan Mertens, The Nature of Computation, Oxford University Press, 2011. doi:10.1093/acprof:oso/9780199233212.001.0001 Broad and readable. See the book site.
  • Avi Wigderson, Mathematics and Computation, Princeton University Press, 2019. doi:10.2307/j.ctvckq7xb The author offers a final draft for personal study.