[此答案是针对2010年10月29日修订版6之前的版本的。]
我认为这个问题现在或多或少都可以解决,但仍然存在技术问题。即,如何形式化“仅通过查看这样的结构来枚举每个单个解决方案是微不足道的”。一个也许幼稚形式化(但我唯一能想出的时刻)如下:让表示解集表现小号(φ )的φ。目前,我对R没有其他限制| R (φ )| ≤ p ø 升ý (Ñ )其中φR(φ)S(φ)φR|R(φ)|≤poly(n)φ是变量的CNF 。然后,我们希望这是一个算法甲使得甲([R (φ ))= 小号(φ )和甲输入- [R (φ ))在时间用完p ø 升Ý (Ñ ,|小号|)。nAA(R(φ))=S(φ)AR(φ))poly(n,|S|)
在这种形式化下,唯一困难的情况是是超多项式但是次指数的情况。其余情况下由下面的表示处理ř和算法甲:如果| S | ≤ p ø 升ý (Ñ ),然后让- [R (φ )= (0 ,小号)。如果| S | ≥ 2 Ω (Ñ )然后让- [R (φ )= (SRA|S|≤poly(n)R(φ)=(0,S)|S|≥2Ω(n)。 甲(0 ,小号)简单地输出小号,和甲(1 ,φ )简单地计算小号从由蛮力 φ。由于 | S | = 2 Ω (Ñ )在后一种情况下,这仍然在时间用完 Ö (|小号|)。R(φ)=(1,φ)A(0,S)SA(1,φ)Sφ|S|=2Ω(n)O(|S|)
但是,在这种形式下,困难的情况通常是不可能的。如果这样的和甲存在,这将意味着p每的-time有界Kolmogorov复杂小号由限定p Ó 升ý (Ñ ),这是荒谬的(因为几乎所有集小号具有最大p -time有界的Kolmogorov复杂度,即| S |。(这里p是A的运行时间,它是| S |的函数。)RApSpoly(n)Sp|S|pA|S|
(注意,如果我们还要求时刻运行p ø 升Ý (Ñ ,| φ |),那么问题的答案是没有在一般情况下,假定P ≠ P [R ø 米我小号è ù P:如果φ有一个唯一的解,则A (R (φ ))将求解φ并在时间p o l y (n )内运行。Rpoly(n,|φ|)P≠PromiseUPφA(R(φ))φpoly(n)