List of NP-complete problems
From Wikipedia, the free encyclopedia
| This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. Please improve this article by introducing more precise citations where appropriate. (February 2009) |
Here are some of the more commonly known problems that are NP-complete when expressed as decision problems. This list is in no way comprehensive (there are more than 3000 known NP-complete problems). Most of the problems in this list are taken from Garey and Johnson's seminal book Computers and Intractability: A Guide to the Theory of NP-Completeness, and are here presented in the same order and organization.
This list is incomplete; you can help by expanding it.
[edit] Computational geometry
- Minimum weight triangulation for a set of points in the plane [1]
- Testing whether a tree may be represented as Euclidean minimum spanning tree
- Unit disk graph recognition (Unit disk graphs are intersection graphs of circles of unit radius in the plane)[2]
- Many motion planning among polygonal obstacles in the plane are NP-hard.
- Planar partitioning into connected subassemblies: Given a set A of non-overlapping (but possibly touching) polygons in the plane, decide if there is a proper subset S of A that can be separated from A\S by a collision-free rigid motion of S, and such that both S and A\S are connected. [3]
[edit] Graph theory
[edit] Covering and partitioning
- Vertex cover [4][5]
- Dominating set, a.k.a. domination number [6]
-
- NP-complete special cases include the edge dominating set problem, i.e., the dominating set problem in line graphs. NP-complete variants include the connected dominating set problem.
- Domatic partition, a.k.a. domatic number [7]
- Graph coloring, a.k.a. chromatic number [4][8]
- Partition into cliques
-
- This is the same problem as coloring the complement of the given graph[9].
- Complete coloring, a.k.a. achromatic number [10]
- Grundy number[citation needed]
- Monochromatic triangle [11]
- Feedback vertex set [4][12]
- Feedback arc set [4][13]
- Partial feedback edge set [14]
- Minimum maximal independent set a.k.a. minimum independent dominating set [15]
-
- NP-complete special cases include the minimum maximal matching problem,[16] which is essentially equal to the edge dominating set problem (see above).
- Partition into triangles [17]
- Partition into isomorphic subgraphs [18]
- Partition into Hamiltonian subgraphs [19]
- Partition into forests [20]
- Partition into perfect matchings [21]
- Two-stage maximum weight stochastic matching[citation needed]
- Covering by cliques [4][22]
- Berth allocation problem[citation needed]
- Covering by complete bipartite subgraphs [23]
[edit] Subgraphs and supergraphs
- Clique [4][24]
- Independent set [25]
- Induced subgraph with property Π[citation needed]
- Induced connected subgraph with property Π[citation needed]
- Induced path [26]
- Balanced complete bipartite subgraph [27]
- Bipartite subgraph [28]
- Degree-bounded connected subgraph [29]
- Planar subgraph [30]
- Edge-subgraph [31]
- Transitive subgraph [32]
- Uniconnected subgraph [33]
- Minimum k-connected subgraph [34]
- Cubic subgraph [35]
- Minimum equivalent digraph [36]
- Hamiltonian completion [37]
- Interval graph completion [38]
- Path graph completion [39]
[edit] Vertex ordering
- Hamiltonian circuit [4][40]
- Directed Hamiltonian circuit [4][41]
- Hamiltonian path [42]
- Bandwidth [43]
- Directed bandwidth [44]
- Optimal linear arrangement [45]
- Directed optimal linear arrangement [46]
- Minimum cut linear arrangement [47]
- Rooted tree arrangement [48]
- Directed elimination ordering [49]
- Elimination degree sequence [50]
[edit] Iso- and other morphisms
- Subgraph isomorphism [51]
- Largest common subgraph [52]
- Maximum subgraph matching [53]
- Graph contractability [54]
- Graph homomorphism [55]
- Digraph D-morphism [56]
[edit] Miscellaneous
- Path with forbidden pairs [57]
- Multiple choice matching [58]
- Graph Grundy numbering [59]
- Kernel [60]
- K-closure [61]
- Intersection graph basis [62]
- Path distinguishers [63]
- Metric dimension [64]
- Nesetril–Rödl dimension [65]
- Threshold number [66]
- Oriented diameter [67]
- Weighted diameter [68]
[edit] Network design
[edit] Spanning trees
- Degree-constrained spanning tree
- Minimum degree spanning tree
- Maximum leaf spanning tree
- Shortest total path length spanning tree
- Bounded diameter spanning tree
- Capacitated spanning tree
- Geometric capacitated spanning tree
- Optimum communication spanning tree
- Isomorphic spanning tree
- Kth best spanning tree
- Bounded component spanning forest
- Multiple choice branching
- Steiner tree [4]
- Geometric Steiner tree
- Cable Trench Problem
- Minimum Touching Tree/Minimum Length Corridor
[edit] Cuts and connectivity
- Graph partitioning
- Acyclic partition
- Maximum cut [4]
- Minimum cut into bounded sets
- Biconnectivity augmentation
- Strong connectivity augmentation
- Network reliability
- Network survivability
- Multiway Cut
- Minimum k-cut
- k-vital edges
[edit] Routing problems
- Bottleneck traveling salesman
- Chinese postman for mixed graphs
- Euclidean traveling salesman
- K most vital arcs
- Kth shortest path
- Metric traveling salesman
- Longest circuit
- Longest path problem
- Prize Collecting Traveling Salesman
- Rural Postman
- Shortest path in general networks
- Shortest weight-constrained path
- Stacker-crane
- Time constrained traveling salesman feasibility
- Traveling salesman problem
- Vehicle routing problem
[edit] Flow problems
- Minimum edge-cost flow
- Integral flow with multipliers
- Path constrained network flow
- Integral flow with homologous arcs
- Integral flow with bundles
- Undirected flow with lower bounds
- Directed two-commodity integral flow
- Undirected two-commodity integral flow
- Disjoint connecting paths
- Maximum length-bounded disjoint paths
- Maximum fixed-length disjoint paths
- Unsplittable multicommodity flow
[edit] Miscellaneous
- Quadratic assignment problem
- Minimizing dummy activities in PERT networks
- Constrained triangulation
- Intersection graph for segments on a grid
- Edge embedding on a grid
- Geometric connected dominating set
- Minimum broadcast time
- Min-max multicenter
- Min-sum multicenter
- Uncapacitated Facility Location
- Metric k-center
[edit] Graph Drawing
[edit] Sets and partitions
[edit] Covering, hitting, and splitting
- 3-dimensional matching [4][69]
- Exact cover [4][70]
- Set packing [4][71]
- Set splitting[72]
- Set cover [4][73]
- Minimum test set[74]
- Set basis[75]
- Hitting set [4][76]
- Intersection pattern[77]
- Comparative containment[78]
- 3-matroid intersection[79]
[edit] Weighted set problems
- Partition [4]
- Subset sum
- Subset product
- 3-partition
- Numerical 3-dimensional matching
- Numerical matching with target sums
- Expected component sum
- Minimum sum of squares
- Kth largest subset
- Kth largest m-tuple
[edit] Set partitions
[edit] Storage and retrieval
[edit] Data storage
- Bin packing
- Dynamic storage allocation
- Pruned trie space minimization
- Expected retrieval cost
- Rooted tree storage assignment
- Multiple copy file allocation
- Capacity assignment
[edit] Compression and representation
- Shortest common supersequence
- Shortest common superstring
- Longest common subsequence problem for the case of arbitrary (i.e., not a priori fixed) number of input sequences even in the case of the binary alphabet
- Bounded post correspondence problem
- Hitting string
- Sparse matrix compression
- Consecutive ones submatrix
- Consecutive ones matrix partition
- Consecutive ones matrix augmentation
- Consecutive block minimization
- Consecutive sets
- 2-dimensional consecutive sets
- String-to-string correction
- Grouping by swapping
- External macro data compression
- Internal macro data compression
- Regular expression substitution
- Rectilinear picture compression
- Optimal vector quantization codebook
- Minimal grammar-based compression
- Adaptive Block-size Compression
[edit] Database problems
- Minimum cardinality key
- Additional key
- Prime attribute name
- Boyce-Codd normal form violation
- Conjunctive query foldability
- Boolean conjunctive query
- Tableau equivalence
- Serializability of database histories
- Safety of database transaction systems
- Consistency of database frequency tables
- Safety of file protection systems
[edit] Sequencing and scheduling
[edit] Sequencing on one processor
- Job sequencing [4]
- Sequencing with release times and deadlines
- Sequencing to minimize Tardy tasks
- Sequencing to minimize Tardy weight
- Sequencing to minimize weighted completion time
- Sequencing to minimize weighted tardiness
- Sequencing with deadlines and set-up times
- Sequencing to minimize maximum cumulative cost
[edit] Multiprocessor scheduling
- Multiprocessor scheduling
- Precedence constrained scheduling
- Resource constrained scheduling
- Scheduling with individual deadlines
- Preemptive scheduling
- Scheduling to minimize weighted completion time
[edit] Shop scheduling
- Open-shop scheduling
- Flow Shop Scheduling Problem
- No-wait flow-shop scheduling
- Two-processor flow-shop with bounded buffer
- Job-shop scheduling
[edit] Miscellaneous
[edit] Mathematical programming
- Integer programming
- 0-1 integer programming [4]
- Quadratic programming (NP-hard in some cases, P if convex)
- Cost-parametric linear programming
- Feasible basis extension
- Minimum weight solution to linear equations
- Open hemisphere
- K-relevancy
- Traveling salesman polytope non-adjacency
- Knapsack [4]
- Integer knapsack
- Continuous multiple choice knapsack
- Partially ordered knapsack
- Generalized assignment problem
- Comparative vector inequalities
- Sparse approximation
[edit] Algebra and number theory
[edit] Divisibility problems
- Quadratic congruences
- Simultaneous incongruences
- Simultaneous divisibility of linear polynomials
- Comparative divisibility
- Exponential expression divisibility
- Non-divisibility of a product polynomial
- Non-trivial greatest common divisor
[edit] Solvability of equations
- Quadratic diophantine equations
- Algebraic equations over GF[2]
- Root of modulus 1
- Number of roots for a product polynomial
- Periodic solution recurrence relation
- Non-linear univariate polynomials over GF[2n], n the length of the input.
[edit] Miscellaneous
- Permanent evaluation
- Cosine product integration
- Equilibrium point
- Unification with commutative operators
- Unification for finitely presented algebras
- Integer expression membership
- Minimal addition chain
[edit] Games and puzzles
- Alternating hitting set
- Alternating maximum weighted matching
- Annihilation
- Battleship
- Clickomania (SameGame)
- Cross Sums
- Crossword puzzle construction
- Fillomino[citation needed]
- FreeCell
- Heyawake[80]
- Instant Insanity
- Kakuro
- Light Up
- LITS
- Mastermind
- Masyu
- Minesweeper Consistency Problem[81]
- Nurikabe
- Paint by numbers (Nonogram)
- Rabin games
- Sift
- Slither Link
- Square-tiling
- Sudoku
- Tetris
- Variable partition truth assignment
- Verbal arithmetic
[edit] Logic
[edit] Propositional logic
- Boolean satisfiability [4][82]
- 3-Satisfiability [4][83]
- Not-all-equal 3SAT[84]
- One-in-three 3SAT [85]
- Maximum 3-Satisfiability[86]
- Generalized satisfiability[87]
- Non-tautology[88]
- Minimum equivalent disjunctive normal form for a given truth table[89]
- Truth-functionally complete connectives[90]
- Planar-3SAT
- Monotone-3SAT
[edit] Miscellaneous
- Modal logic S5-Satisfiability
- Negation-free logic
- Conjunctive satisfiability with functions and inequalities
- Minimum axiom set
- First order subsumption
- Second order instantiation
[edit] Automata and language theory
[edit] Automata theory
- Reduction of incompletely specified automata[91]
- Minimum inferred finite state automaton[92]
[edit] Formal languages
- Minimum inferred regular expression[93]
- Reynolds covering for context-free grammars[94]
- Non-LR(k) context-free grammar[95]
- Context-free programmed language membership[96]
- Quasi-real-time language membership[97]
[edit] Program optimization
[edit] Code generation
- Register sufficiency
- Feasible register assignment
- Register sufficiency for loops
- Code generation on a one-register machine
- Code generation with unlimited registers
- Code generation for parallel assignments
- Code generation with address expressions
- Code generation with unfixed variable locations
- Ensemble computation
- Microcode bit optimization
[edit] Programs and schemes
- Inequivalence of programs with arrays
- Inequivalence of programs with assignments
- Inequivalence of finite memory programs
- Inequivalence of loop programs without nesting
- Inequivalence of simple functions
- Strong inequivalence of Ianov schemes
- Strong inequivalence for monadic recursion
- Non-containment for free B-schemes
- Non-freedom for loop-free program schemes
- Programs with formally recursive procedures
[edit] Miscellaneous
- Cyclic ordering
- Non-liveness of free choice Petri nets
- Reachability for 1-conservative Petri nets
- Finite function generation
- Permutation generation
- Decoding of linear codes
- Shapley-Shubik voting power
- Clustering
- Randomization test for matched pairs
- Maximum likelihood ranking
- Matrix domination
- Matrix cover
- Simply deviated disjunction
- Decision tree
- Minimum weight and/or graph solution
- Fault detection in logic circuits
- Fault detection in directed graphs
- Fault detection with test points
[edit] See also
[edit] Notes
- ^ Minimum Weight Triangulation is NP-Hard, 22nd SCG (2006)
- ^ H. Breu and David G. Kirkpatrick. "Unit Disk Graph Recognition is NP-hard." Comput. Geom. Theory Appl., 9(1-2):3--24, 1998
- ^ "Assembly Into Two Connected Parts Is NP-Complete", Inf. Proc. Letters 55 (1995), 159-165.
- ^ a b c d e f g h i j k l m n o p q r s t u Karp (1972)
- ^ Garey–Johnson: GT1
- ^ Garey–Johnson: GT2
- ^ Garey–Johnson: GT3
- ^ Garey–Johnson: GT4
- ^ Garey–Johnson: GT15
- ^ Garey–Johnson: GT5
- ^ Garey–Johnson: GT6
- ^ Garey–Johnson: GT7
- ^ Garey–Johnson: GT8
- ^ Garey–Johnson: GT9
- ^ Minimum Independent Dominating Set
- ^ Garey–Johnson: GT10
- ^ Garey–Johnson: GT11
- ^ Garey–Johnson: GT12
- ^ Garey–Johnson: GT13
- ^ Garey–Johnson: GT14
- ^ Garey–Johnson: GT16
- ^ Garey–Johnson: GT17
- ^ Garey–Johnson: GT18
- ^ Garey–Johnson: GT19
- ^ Garey–Johnson: GT20
- ^ Garey–Johnson: GT23
- ^ Garey–Johnson: GT24
- ^ Garey–Johnson: GT25
- ^ Garey–Johnson: GT26
- ^ Garey–Johnson: GT27
- ^ Garey–Johnson: GT28
- ^ Garey–Johnson: GT29
- ^ Garey–Johnson: GT30
- ^ Garey–Johnson: GT31
- ^ Garey–Johnson: GT32
- ^ Garey–Johnson: GT33
- ^ Garey–Johnson: GT34
- ^ Garey–Johnson: GT35
- ^ Garey–Johnson: GT36
- ^ Garey–Johnson: GT37
- ^ Garey–Johnson: GT38
- ^ Garey–Johnson: GT39
- ^ Garey–Johnson: GT40
- ^ Garey–Johnson: GT41
- ^ Garey–Johnson: GT42
- ^ Garey–Johnson: GT43
- ^ Garey–Johnson: GT44
- ^ Garey–Johnson: GT45
- ^ Garey–Johnson: GT46
- ^ Garey–Johnson: GT47
- ^ Garey–Johnson: GT48
- ^ Garey–Johnson: GT49
- ^ Garey–Johnson: GT50
- ^ Garey–Johnson: GT51
- ^ Garey–Johnson: GT52
- ^ Garey–Johnson: GT53
- ^ Garey–Johnson: GT54
- ^ Garey–Johnson: GT55
- ^ Garey–Johnson: GT56
- ^ Garey–Johnson: GT57
- ^ Garey–Johnson: GT58
- ^ Garey–Johnson: GT59
- ^ Garey–Johnson: GT60
- ^ Garey–Johnson: GT61
- ^ Garey–Johnson: GT62
- ^ Garey–Johnson: GT63
- ^ Garey–Johnson: GT64
- ^ Garey–Johnson: GT65
- ^ Garey–Johnson: SP1
- ^ Garey–Johnson: SP2
- ^ Garey–Johnson: SP3
- ^ Garey–Johnson: SP4
- ^ Garey–Johnson: SP5
- ^ Garey–Johnson: SP6
- ^ Garey–Johnson: SP7
- ^ Garey–Johnson: SP8
- ^ Garey–Johnson: SP9
- ^ Garey–Johnson: SP10
- ^ Garey–Johnson: SP11
- ^ M. Holzer, O. Ruepp (2007)
- ^ Kaye (2000)
- ^ Garey–Johnson: LO1
- ^ Garey–Johnson: LO2
- ^ Garey–Johnson: LO3
- ^ Garey–Johnson: LO4
- ^ Garey–Johnson: LO5
- ^ Garey–Johnson: LO6
- ^ Garey–Johnson: LO8
- ^ Garey–Johnson: LO9
- ^ Garey–Johnson: LO10
- ^ Garey–Johnson: AL7
- ^ Garey–Johnson: AL8
- ^ Garey–Johnson: AL10
- ^ Garey–Johnson: AL11
- ^ Garey–Johnson: AL15
- ^ Garey–Johnson: AL17
- ^ Garey–Johnson: AL18
[edit] References
- Garey, M.R.; Johnson, D.S. (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness. New York: W.H. Freeman. ISBN 0-7167-1045-5. This book is a classic, developing the theory, then cataloguing many NP-Complete problems.
- Cook, S.A. (1971). "The complexity of theorem proving procedures". Proceedings, Third Annual ACM Symposium on the Theory of Computing, ACM, New York: 151–158. doi:10.1145/800157.805047.
- Karp, Richard M. (1972), "Reducibility among combinatorial problems", in Miller, Raymond E.; Thatcher, James W., Complexity of Computer Computations, Plenum, pp. 85–103
- Dunne, P.E. "An annotated list of selected NP-complete problems". COMP202, Dept. of Computer Science, University of Liverpool. http://www.csc.liv.ac.uk/~ped/teachadmin/COMP202/annotated_np.html. Retrieved on 2008-06-21.
- Crescenzi, P.; Kann, V.; Halldórsson, M.; Karpinski, M.; Woeginger, G. "A compendium of NP optimization problems". KTH NADA, Stockholm. http://www.nada.kth.se/~viggo/problemlist/compendium.html. Retrieved on 2008-06-21.
- Dahlke, K. "NP-complete problems". Math Reference Project. http://www.mathreference.com/lan-cx-np,intro.html. Retrieved on 2008-06-21.
- Friedman, E (2002). "Pearl puzzles are NP-complete". Stetson University, DeLand, Florida. http://www.stetson.edu/~efriedma/papers/pearl/pearl.html. Retrieved on 2008-06-21.
- Holzer, Markus; Ruepp, Oliver (2007). "The Troubles of Interior Design–A Complexity Analysis of the Game Heyawake". Proceedings, 4th International Conference on Fun with Algorithms, LNCS 4475: 198–212, Springer, Berlin/Heidelberg. doi:10.1007/978-3-540-72914-3_18.
- Kaye, Richard (2000). "Minesweeper is NP-complete". Mathematical Intelligencer 22 (2): 9-15. Further information available online at Richard Kaye's Minesweeper pages.

