List of NP-complete problems
This is a list of some of the more commonly known problems that are NP-complete when expressed as decision problems. As there are hundreds of such problems known, this list is in no way comprehensive. Many problems of this type can be found in Garey & Johnson (1979).
Graphs and hypergraphs
Graphs occur frequently in everyday applications. Examples include biological or social networks, which contain hundreds, thousands and even billions of nodes in some cases (e.g. Facebook or LinkedIn).
- 1-planarity[1]
- 3-dimensional matching[2][3]
- Bipartite dimension[4]
- Capacitated minimum spanning tree[5]
- Route inspection problem (also called Chinese postman problem) for mixed graphs (having both directed and undirected edges). The program is solvable in polynomial time if the graph has all undirected or all directed edges. Variants include the rural postman problem.[6]
- Clique problem[2][7]
- Complete coloring, a.k.a. achromatic number[8]
- Domatic number[9]
- Dominating set, a.k.a. domination number[10]
-
- 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 and the maximum leaf spanning tree problem.[11]
- Bandwidth problem[12]
- Clique cover problem[2][13]
- Rank coloring a.k.a. cycle rank
- Degree-constrained spanning tree[14]
- Exact cover problem. Remains NP-complete for 3-sets. Solvable in polynomial time for 2-sets (this is amatching).[2][15]
- Feedback vertex set[2][16]
- Feedback arc set[2][17]
- Graph homomorphism problem[18]
- Graph coloring[2][19]
- Graph partition into subgraphs of specific types (triangles, isomorphic subgraphs, Hamiltonian subgraphs,forests, perfect matchings) are known NP-complete. Partition into cliques is the same problem as coloringthe complement of the given graph. A related problem is to find a partition that is optimal terms of the number of edges between parts.[20]
- Hamiltonian completion[21]
- Hamiltonian path problem, directed and undirected.[2][22]
- Longest path problem[23]
- Maximum bipartite subgraph or (especially with weighted edges) maximum cut.[2][24]
- Maximum independent set[25]
- Maximum Induced path[26]
- Graph intersection number[27]
- Metric dimension of a graph[28]
- Minimum k-cut
- Minimum spanning tree, or Steiner tree, for a subset of the vertices of a graph.[2] (The minimum spanning tree for an entire graph is solvable in polynomial time.)
- Pathwidth[29]
- Set cover (also called minimum cover problem) This is equivalent, by transposing the incidence matrix, to the hitting set problem.[2][30]
- Set splitting problem [31]
- Shortest total path length spanning tree[32]
- Slope number two testing[33]
- Treewidth[29]
- Vertex cover[2][34]
Mathematical programming
- 3-partition problem[35]
- Bin packing problem[36]
- Knapsack problem, quadratic knapsack problem, and several variants[2][37]
- Variations on the Traveling salesman problem. The problem for graphs is NP-complete if the edge lengths are assumed integers. The problem for points on the plane is NP-complete with the discretized Euclidean metric and rectilinear metric. The problem is known to be NP-hard with the (non-discretized) Euclidean metric.[38]
- Bottleneck traveling salesman[39]
- Integer programming. The variant where variables are required to be 0 or 1, called zero-one linear programming, and several other variants are also NP-complete[2][40]
- Latin squares (The problem of determining if a partially filled square can be completed to form one)
- Numerical 3-dimensional matching[41]
- Partition problem[2][42]
- Quadratic assignment problem[43]
- Quadratic programming (NP-hard in some cases, P if convex)
- Subset sum problem[44]
Formal languages and string processing
- Closest string[45]
- Longest common subsequence problem[46]
- The bounded variant of the Post correspondence problem[47]
- Shortest common supersequence[48]
- String-to-string correction problem[49]
Games and puzzles
- Battleship
- Bejeweled[50]
- Bulls and Cows, marketed as Master Mind: certain optimisation problems but not the game itself.
- Candy Crush Saga[50][51]
- Donkey Kong[52]
- Eternity II
- (Generalized) FreeCell[53]
- Fillomino[54]
- Hashiwokakero[55]
- Heyawake[56]
- (Generalized) Instant Insanity[57]
- Kakuro (Cross Sums)
- Kuromasu (also known as Kurodoko)[58]
- Legend of Zelda[52]
- Lemmings (with a polynomial time limit)[59]
- Light Up[60]
- Masyu[61]
- Metroid[52]
- Minesweeper Consistency Problem[62] (but see Scott, Stege, & van Rooij[63])
- Nimber (or Grundy number) of a directed graph.[64]
- Nonograms
- Nurikabe
- Pokémon[52]
- SameGame
- Slither Link on a variety of grids[65][66][67]
- (Generalized) Sudoku[65][68]
- Super Mario Bros[52]
- Problems related to Tetris[69]
- Verbal arithmetic
Other
- Art gallery problem and its variations.
- Berth allocation problem[70]
- Betweenness
- Assembling an optimal Bitcoin block.[71]
- Boolean satisfiability problem (SAT).[2][72] There are many variations that are also NP-complete. An important variant is where each clause has exactly three literals (3SAT), since it is used in the proof of many other NP-completeness results.[73]
- Conjunctive Boolean query[74]
- Cyclic ordering
- Circuit satisfiability problem
- Uncapacitated Facility Location
- Flow Shop Scheduling Problem
- Generalized assignment problem
- Upward planarity testing[33]
- Hospitals-and-residents problem with couples
- Some problems related to Job-shop scheduling
- Monochromatic triangle[75]
- Minimum maximal independent set a.k.a. minimum independent dominating set[76]
-
- NP-complete special cases include the minimum maximal matching problem,[77] which is essentially equal to the edge dominating set problem (see above).
- Maximum common subgraph isomorphism problem[78]
- Minimum degree spanning tree
- Minimum k-spanning tree
- Metric k-center
- Maximum 2-Satisfiability[79]
- Modal logic S5-Satisfiability
- Some problems related to Multiprocessor scheduling
- Maximum volume submatrix – Problem of selecting the best conditioned subset of a larger m x n matrix. This class of problem is associated with Rank revealing QR factorizations and D optimal experimental design.[80]
- Minimal addition chains for sequences.[81] The complexity of minimal addition chains for individual numbers is unknown.[82]
- Non-linear univariate polynomials over GF[2n], n the length of the input. Indeed, over any GF[qn].
- Open-shop scheduling
- Pathwidth,[29] or, equivalently, interval thickness, and vertex separation number[83]
- Pancake sorting distance problem for strings[84]
- k-Chinese postman
- Subgraph isomorphism problem[85]
- Variations of the Steiner tree problem. Specifically, with the discretized Euclidean metric, rectilinear metric. The problem is known to be NP-hard with the (non-discretized) Euclidean metric.[86]
- Set packing[2][87]
- Serializability of database histories[88]
- Scheduling to minimize weighted completion time
- Sparse approximation
- Block Sorting[89] (Sorting by Block Moves)
- Second order instantiation
- Treewidth[29]
- Testing whether a tree may be represented as Euclidean minimum spanning tree
- Three-dimensional Ising model[90]
- Vehicle routing problem
See also
List of NP-complete problems的更多相关文章
- 算导Ch34. NP Complete
1.图灵停机问题:无论在多长时间内都无法被任何一台计算机解决 问题描述:问题为H,H的输入数据为P(P是一段程序(程序也是一串字符串数据)),判定P在输入w下是否能够最终停止 H(P(w))=0 若P ...
- 简析P和NP问题的概念
简析P和NP问题的概念 本文系作者学习笔记,内容均来源于网络,如有侵权,请联系删除 P类问题:所有能用多项式时间算法计算得到结果的问题,称为多项式问题,也就是P(polynomial). 多项式时间举 ...
- (数学)P、NP、NPC、NP hard问题
概念定义: P问题:能在多项式时间内解决的问题: NP问题:(Nondeterministic Polynomial time Problem)不能在多项式时间内解决或不确定能不能在多项式时间内解决, ...
- P、NP、NPC、NPH问题的区别和联系
时间复杂度 时间复杂度描述了当输入规模变大时,程序运行时间的变化程度,通常使用\(O\)来表示.比如单层循环的时间复杂度为\(O(n)\),也就是说程序运行的时间随着输入规模的增大线性增长,两层循环的 ...
- P/NP问题
目录 P NP NPC NPH 写在开头 1.多项式 如公式:y = axn-bxn-1+c.Ο(log2n).Ο(n). Ο(nlog2n).Ο(n2)和Ο(n3)称为多项式时间.Ο(2n)和Ο(n ...
- Oracle常见的几种等待事件
1. CPU time CPU time其实不是真正的等待事件.是衡量CPU是否瓶颈的一个重要指标.一般来讲,一个良好的系统,CPU TIME 应该排在TOP 5 TIME Event的最前面. 当然 ...
- 边工作边刷题:70天一遍leetcode: day 89
Word Break I/II 现在看都是小case题了,一遍过了.注意这题不是np complete,dp解的time complexity可以是O(n^2) or O(nm) (取决于inner ...
- 人工智能头条(公开课笔记)+AI科技大本营——一拨微信公众号文章
不错的 Tutorial: 从零到一学习计算机视觉:朋友圈爆款背后的计算机视觉技术与应用 | 公开课笔记 分享人 | 叶聪(腾讯云 AI 和大数据中心高级研发工程师) 整 理 | Leo 出 ...
- 201871030108-冯永萍 实验二 个人项目— D{0-1}背包问题项目报告
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...
随机推荐
- 《The Mythical Man-Month(人月神话)》读后感(1)
临近考试周,这里我通过平时阅读的<人月神话>十九个章节和知乎.简书等网页中网友们对<人月神话>的读后感,对书中各个章节进行简单的总结,以下均为个人手打观点的思考与整合,仅供大家 ...
- Daily Scrum (2015/10/31)
这几天我们组的进度有点慢,剩下这一周的我们必须要加油认真对待. 周末这两天我们是这样安排的: 成员 今日任务 时间 明日任务 符美潇 数据库部分代码的编写 1h 每周小组例会 潘礼鹏 团队博客作业 ...
- 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-中坚阶段
2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-中坚阶段 如今的编写,进入了一段时间的中坚阶段,小伙伴的思路虽然很一致,但是总是存在着一定问题,这就造成了我们中坚阶 ...
- Java第二天——标识符命名规则、Java的知识、快捷键的使用、Scanner获取值的常用方法
1.标识符命名规则 字母.下划线.数字.美元符号($)由这四个部分组成. 标识符=首字母+其他 首字母:字母.下划线.美元符号($) 其他:字母.下划线.数字.美元符号($) 注意: 1.首字母不能为 ...
- python learning1.py
# 廖雪峰的官方网站 python教材 1~4章 # 格式控制符语法 print('Hello, %s' % 'world') print('hello, %s, you have %d dollar ...
- 团队作业2 <嗨,你的快递!>需求分析与原型设计
哦,不,是你的快速(*_*) 第一部分 需求分析 1.1 用户调研 1.1.1调研对象:由于我们的系统是校园快递代取业务,面向的是大学生活,所以本次调研范围都是在校大学生(除了师大学生,也包括了外校的 ...
- 26_多线程_第26天(Thread、线程创建、线程池)_讲义
今日内容介绍 1.多线程 2.线程池 01进程概念 A:进程概念 a:进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能 ...
- Java面试&编写程序:使子线程循环10次,紧接着主线程循环100次,来回50次
package com.cwcec.test; public class TraditionalThreadCommunication { /** * @param args */ public st ...
- 深入浅析JavaScript的API设计原则(转载)
一.接口的流畅性 好的接口是流畅易懂的,他主要体现如下几个方面: 1.简单 操作某个元素的css属性,下面是原生的方法: ? 1 document.querySelectorAll('#id').st ...
- 蜗牛慢慢爬 LeetCode 6. ZigZag Conversion [Difficulty: Medium]
题目 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows li ...