与列出所有解决方案有关的复杂性类?


15

我在Stack Overflow上阅读了一个问题,询问它是否是NP-很难在包含特定节点的图中列出所有简单循环,但我想到我想不出任何现有的复杂度类都非常适合谈论形式为“列出此问题的所有解决方案”的问题。从某种意义上说,NP类由一些问题组成,这些问题询问是否存在至少一个解决方案,FNP类要求产生一个单个的解决方案,而#P类则要求计算有多少个解决方案,但是这些都不涉及复杂性详尽列举所有可能的解决方案。

是否有用于描述给出一个多项式时间计算谓语形式”的问题复杂类和一个字符串,枚举所有针对是真受[插入一些适当的复杂性限制]?” 我知道,鉴于解决方案的数量可能比输入的大小成指数增长,但要限制这些限制可能很棘手,尽管这似乎并非不可克服。PXÿXÿPXÿX


有趣。在实践中,也许有太多相关问题的实例通常有成倍的解决方案(如果有)。通常,SAT和CLIQUE的实例具有很大的解决方案空间。

3
这是将其正式化的另一个ansatz。如果存在一个带有的X算法,则问题(对于X可枚举)是,因此返回第个解(即,第个与)订购。请注意,这与有时定义RE的方式相似。这规避了解决方案空间的大小,并着重于寻找下一个解决方案的难度。当然,总成本可以求和。X E A A x i i I y P x y PXË一种一种X一世一世一世ÿPXÿ
拉斐尔

3
(我从来没有见过它定义为一个,但你知道的概念与多项式延迟枚举?)

@Raphael这可能不是我们想要的。例如,如果的最佳算法必须遍历所有解,直到找到它们中的个并按时间,那么我们要寻找的复杂度是,但求和将建议复杂度。Θ ˚F | X |Θ ˚F | X |Θ ˚F | X | 2一种X一世一世ΘF|X|ΘF|X|ΘF|X|2
Lieuwe Vinkhuijzen

@RickyDemer那就是我在颤抖的样子,不是吗?很高兴知道已经建立了形式化。
拉斐尔

Answers:


10

您正在寻找的概念称为枚举复杂度,它是对枚举(列出)问题的所有解决方案(或语言/集合的成员)的计算复杂度的研究。枚举算法可以建模为两个步骤:预计算步骤和带延迟的枚举阶段。这两个步骤都有自己的时间和空间复杂性(也许也有熵)。按照复杂性的一般精神,通常需要在这些之间权衡取舍。

所述预计算步骤进行一些工作将第一溶液列举之前是必要的。这可能涉及找到解决方案本身或初始化一些大型数据结构,这将减少每个解决方案之间的总体延迟。

延迟是必要的,任意枚举解决方案之间的计算相关的资源成本。换句话说,延迟是产生所需要的空间和时间的量度后溶液ħ之一。每次求解花费O 1 时间的问题的问题被称为具有恒定的延迟。的一个要求ø p ø ý Ñ 的时间被认为具有多项式延迟。一世+1ŤH一世ŤHØ1ØpØÿñ

对于您在问题中特别提到的枚举问题,您应该在Johannes Schmidt的“枚举:算法和复杂性”的第2.1节中研究类及其相关的同级项(在底部链接)。Ëñü中号ñP


我们为什么要关心预计算时间和延迟?

延迟对于理解枚举问题的真正复杂性至关重要。枚举(最大为n)和{ xϕ x}的元素,其中ϕ x是一个布尔公式(即SAT)都花费指数时间。但是,通过枚举Σñ{XϕX}ϕXΣ只需要不断的延迟,因为您可以按某种顺序浏览各个元素。就我们所知,枚举3SAT实例的解决方案的延迟可能是指数级的。我们作为复杂性理论家的工作是要弄清为什么后一个问题从根本上比前一个问题更难(更复杂)。延迟在展示这种差异方面做得很好。

同样,我们还需要知道进行了多少预计算。我们可以通过预先计算所有解决方案并将它们存储在以后要枚举的列表中,将任何枚举问题的延迟减少到恒定的时间和空间。挑战在于在两种资源之间找到最佳平衡。

枚举元素的顺序也会影响复杂性。要以指定的排序顺序返回结果,可能需要我们在两个步骤中执行其他计算。当然也可以研究任何顺序都足够的情况(只要每个枚举元素都是唯一的)。

据我所知,这些类通常没有简洁的标签(类似于N P)。由于枚举复杂性类在3种或更多资源(预计算/总时间,空间,延迟和熵)附近变乱,因此我们不可能期望能够做到这一点。资源界限的组合太多了,无法发出特殊名称。这不会使这些课程变得不那么有趣,也不会阻止研究人员尝试尝试。PñP


资源资源

这项调查(确实是形式化尝试)应该可以帮助您入门。它也证明了一些基本的层次定理。

枚举:算法和复杂性 (Johannes Schmidt,2009年)

https://www.thi.uni-hannover.de/fileadmin/forschung/arbeiten/schmidt-da.pdf

有关枚举复杂性的结果的枚举,请查看由国广邦宏策划的这份汇编。由于按问题类型进行分类,因此您可以轻松找到大量专门用于枚举图形循环的论文。修改涉及的算法以仅考虑给定节点的循环应该很简单。

http://www-ikn.ist.hokudai.ac.jp/~wasa/enumeration_complexity.html


我是否正确地认为,要枚举最大长度为n元素并延迟O 1 ),将要求它们按格雷码顺序输出?还是通常在枚举复杂性方面假设写出一个解决方案需要O 1 时间,即使存储解决方案所需的空间大于该时间呢?ΣñØ1Ø1
j_random_hacker

1
@j_random_hacker我不认为您的想法是错误的,尽管对您问题的真正答案是“取决于情况”。这些论文的作者通常会指出他们使用的是哪种计算模型(常规磁带TM vs. RAM vs. Word RAM)。此选择将更改可以视为恒定时间的操作和不能更改的操作(例如增加数字或生成输出)。由于教堂图灵论题的扩展,一旦延迟成为多项式,就可以认为这种差异将消失。
mdxn 16'9
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.