Questions tagged «np-complete»

有关NP中最困难的问题的问题,即可以通过不确定的图灵机在多项式时间内解决的问题。

7
立法NP是否完整?
我想知道是否有任何工作将法律法规与复杂性联系起来。特别是,假设我们有决策问题“考虑到这本法律书和这组特殊情况,被告有罪吗?” 它属于哪个复杂度类? 有结果证明纸牌游戏《魔术:聚会》既是NP又是图灵完备的,所以对于法律代码不应该存在类似的结果吗?





4
是否存在NP问题,而不是P和NP Complete中没有?
NPNP\mathsf{NP}(不是PP\mathsf{P})是否存在NPNP\mathsf{NP}完全的已知问题?我的理解是,在这种情况下,目前没有已知的问题,但尚未排除它的可能性。 如果存在一个问题NPNP\mathsf{NP}(而不是PP\mathsf{P}),但不NP-completeNP-complete\mathsf{NP\text{-}complete},这会是该问题的实例和之间没有现有同构的结果集?如果这种情况下,我们怎么会知道ñ P问题不是“难”比我们目前确定为ñ P - ç Ø 米p 升é 牛逼é集?NP-completeNP-complete\mathsf{NP\text{-}complete}NPNP\mathsf{NP}NP-completeNP-complete\mathsf{NP\text{-}complete}


2
为什么C的void类型不同于Empty / Bottom类型?
维基百科以及我发现的其他来源都将C的void类型列为单位类型,而不是空类型。我觉得这很混乱,因为在我看来,它void更适合于空/底类型的定义。 void据我所知,没有价值观存在。 返回类型为void的函数指定该函数不返回任何内容,因此只能执行某些副作用。 类型的指针void*是所有其他指针类型的子类型。同样,void*在C中进行来回转换是隐式的。 我不确定最后一点是否可以作为void空类型的参数,void*或多或少是与无关的特例void。 另一方面,void它本身不是所有其他类型的子类型,据我所知,这是将类型作为底部类型的要求。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

6
从一组对中生成组合而无需重复元素
我有一对。每对都具有(x,y)的形式,使得x,y属于范围内的整数[0,n)。 因此,如果n为4,那么我有以下几对: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 我已经有一对了。现在,我必须使用n/2对构建一个组合,这样就不会重复任何整数(换句话说,每个整数在最终组合中至少出现一次)。以下是正确和不正确组合以更好地理解的示例 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] 一旦我有了配对,有人可以建议我一种生成所有可能组合的方法。


3
NP完全问题在NP中并非“显而易见”
在我读过的所有完整性证明中(我还记得),很多人总是很容易地证明中存在问题,并且表明这是 -困难是...困难的部分。什么 -完整的问题是这些,其多项式时间验证器是非常不平凡的?NPNP\textbf{NP}NPNP\textbf{NP}NPNP\textbf{NP}NPNP\textbf{NP}

1
regex golf NP-Complete吗?
如最近的XKCD摘录和最近的博客文章所示来自Peter Norvig(以及Slashdot故事中的后者),“ regex golf”(可能更好地称为正则表达式分离问题)是定义可能的最短正则表达式的谜题,该正则表达式接受集合A中的每个单词,而在其中不包含任何单词B集。Norvig的帖子中包含用于生成合理的简短候选者的算法,他指出他的方法涉及解决NP完全集覆盖问题,但他也要小心地指出,他的方法并未考虑所有可能的正则表达式,当然,他不一定是唯一的算法,因此不能保证他的解是最优的,而且其他确定的多项式时间算法也有可能找到等效或更好的解。 为了具体起见并避免解决优化问题,我认为正则表达式分隔的最自然表达是: 给定在某个字母两组(有限)字符串和,是否存在长度的正则表达式,该正则表达式接受每个字符串并拒绝每个字符串?一种AA乙BBΣΣ\Sigma≤ ķ≤k\leq k一种AA乙BB 是否知道有关此特定分离问题的复杂性?(请注意,由于我已将和指定为有限的字符串集,因此问题的自然大小概念是和中所有字符串的总长度;这会淹没任何贡献)。在我看来,它很可能是 NP完全的(实际上,我希望这种减少是某种掩护性问题),但是一些搜索并没有发现任何特别有用的东西。一种一种A乙乙B一种一种A乙乙Bķķk

2
凭经验判断问题是否可以完全解决
这个问题的灵感来自对StackOverflow的评论。 除了了解Garey Johnson这本书中的NP完全问题,以及其他许多问题之外;有一条经验法则可以知道问题是否看起来像是NP完整的问题吗? 我并不是在寻找严格的东西,而是在大多数情况下都能找到可行的东西。 当然,每次我们必须证明一个问题是NP完全问题,或者是NP完全问题的轻微变体时;但是在急于证明之前,对证明的肯定结果抱有一定的信心会很棒。

1
字符串中最长的重复(分散)子序列
非正式问题陈述: 给定一个字符串(例如,我们希望将一些字母成红色,将一些字母成蓝色(有些根本不),这样,从左到右仅读取红色字母会产生与仅读取蓝色字母相同的结果。ACCABBABACCABBABACCABBAB 在示例中,我们可以为它们着色:ACCABBABACCABBABA\color{blue}{C}\color{red}{CAB}B\color{blue}{AB} 因此,我们说是的重复子。它也是最长的重复子序列(易于检查)。A C C A B B A BCABCABCABACCABBABACCABBABACCABBAB 我们可以有效地计算最长的重复子序列吗? 正式问题: 确定字符串和某个是否难为NP,字符串中是否存在长度为的重复子序列?ķkkkkkk 如果是这样:哪个问题可以减少到这个问题? 如果不是:什么是有效算法?(显然,此算法可用于计算最长的重复子序列) 奖励问题: 如果字母的大小受常数限制,它们将始终是长度为的重复子序列吗?n/2−o(n)n/2−o(n)n/2 - o(n) (这对于二进制字母来说是正确的。) 编辑2:对于奖金问题的否定答案,众所周知的是大小至少为字母。实际上,对于大小为Σ的字母,存在具有最长重复子序列且长度仅为O(n·Σ^ {-1/2})的字符串。随机字符串足以证明这一点。结果已经存在,但我忽略了它。555ΣΣΣO(n⋅Σ−1/2)O(n·Σ−1/2)O(n · Σ^{-1/2}) 编辑: 注意: 有些人说“子序列”时,其意思是“子串”。我不。这不是找到子字符串两次的问题。

3
NP完整性教学-Turing减少vs Karp减少
我对如何最好地向计算机科学专业的学生教授NP完整性的问题感兴趣。特别是,我们应该使用Karp缩减还是Turing缩减来教授它? 我觉得NP完全性和约简的概念是每个计算机科学专业都应该学习的东西。但是,在教授NP完整性时,我注意到使用Karp约简法有一些缺点。 首先,对某些学生来说,减少Karp似乎不必要地令人困惑。减少的直观概念是“如果我有解决问题X的算法,那么我也可以使用它来解决问题Y”。这是非常直观的-但映射到Turing缩减比映射Karp缩减要好得多。结果,我看到试图证明NP完整性的学生因直觉而误入歧途,并形成了错误的证明。尝试教授这两种简化方法并强调Karp简化方法的这一方面有时会感觉有点像是不必要的形式主义,并且会占用不必要的课堂时间和学生的注意力,这似乎是无关紧要的技术细节;我们为什么要使用这种更严格的还原概念,这并不是不言而喻的。 我确实了解Karp缩减和Turing(Cook)缩减之间的区别,以及它们如何导致NP完整性的不同概念。我意识到,减少Karp可以使我们更好地区分复杂度等级之间的区别。因此,对于认真研究复杂性理论,减少Karp显然是正确的工具。但是对于仅学习此方法并且永远不会进入复杂性理论的计算机科学专业的学生来说,我不确定这种更好的区分是否对他们至关重要至关重要。 最后,作为一名学生,我记得遇到“重言式”之类的问题时感到困惑-例如,给定一个布尔公式,检查它是否是重言式。令人困惑的是,这个问题显然很难解决:任何多项式时间算法都意味着P=NPP=NPP=NP; 解决这个问题显然和解决重言式问题一样困难。但是,即使从直觉上讲重言式和可满足性一样难,重言式也不是NP难的。是的,我今天了解为什么会这样,但当时我记得对此感到困惑。(一旦我终于明白了,我的脑海便是:无论如何,我们为什么要区分NP-hard和co-NP-hard?这似乎是人为的,并且在实践中没有很好的动机。为什么我们专注于NP而不是从实际的角度来看,共NP硬度似乎与NP硬度在本质上具有相同的实际结果,所以为什么我们都对这种区别挂了钩?是的,我知道答案,但是作为一名学生,我记得这只是让这个科目变得更加神秘和缺乏动力。) 所以,我的问题是这个。当我们向学生教授NP完全性时,使用Karp归约法或Turing归约法更好吗?有没有人尝试使用图灵归约法来教授NP完全性的概念?如果是这样,情况如何?如果我们使用图灵归约法讲授概念,而跳过与Karp归约法相关的概念性问题,会有任何明显的陷阱或弊端吗? 相关:请参见此处和此处,其中提到我们在文献中使用Karp归约法的原因是因为它使我们能够区分NP硬度和共NP硬度。但是,似乎没有给出任何针对该能力是否对每个CS专业都应该学习的算法课程的学习目标至关重要的教学观点的答案。另请参见cstheory.SE上的此处,该讨论也有类似的讨论。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.