高效的通用问题解决器?


12

定义一个“问题”是一个算法接受的自然数,并返回0或1返回1的至少一个上Ñ Ñ。任何这样的n称为A的“解决方案”A1nNnA

将“通用问题求解器”定义为接受问题并返回其解决方案之一的算法例如,U可以通过遍历所有自然数并在其上运行其输入直到获得1个结果(它只必须暂停有效输入)而起作用。UU1

我对探索通用问题解决程序的性能界限感兴趣

给定一个通用问题解决者,给A一个问题,表示t U A U接受输入A产生输出所花费的时间UAt(U,A)UA

当对于任何通用问题求解器V,我们都有一个通用问题求解器称为“有效”UV

t(U,A)<t(V,A)+tV

这里取决于V,但不取决于AtVVA

是否存在有效的通用问题解决者?

编辑:我意识到可以将“问题”和“通用问题解决器”的定义更改为稍微更优雅且本质上等效的东西。“问题”是一种没有输入返回0或1(会暂停)的算法。“通用问题求解器”是一种接受问题并返回其结果的算法。它或多或少是通用图灵机

可以将旧定义简化为新定义,因为给一个旧意义上的问题,我们就可以构造B一个新意义上的问题,只需将平凡的旧感通用问题求解器应用于A(上面所述的求解器) )ABA

新定义可以简化为旧定义,因为给一个新意义上的问题,我们可以构造A一个旧意义上的问题,它只计算B并将输入与结果进行比较BAB

一个新感觉的通用问题求解器的简单例子是一个仅运行其输入的算法

Answers:


5

没有有效的通用问题解决器。凭直觉,对于任何可判定的决策问题,U应该具有(几乎)最佳运行时间;而加速定理说,存在可确定的决策问题,这些问题没有最优算法(即使在非常温和的意义上也是如此)。要对此进行形式化:

时间加速定理(例如参见[1])):对于每一个可计算的(和超线性)函数存在一个可判定的组š使得如果小号d Ť 中号È 然后小号d Ť 中号è ''满足'ñ < ñ gSSDTIME(t)SDTIME(t)tg(t(n))<t(n)

Ug(n)=22nASAiAi=A(i)U~(i)=U(Ai)AAiO(logi)BS22TIME(B)<TIME(U~)2TIME(B)<TIME({U(Ai)})

VAiB(i)A(i)B(i)

cAit(U,Ai)>t(V,Ai)+c

U

[1] Oded Goldreich,计算复杂性,概念透视,定理4.8。第4.2.1.2章也相关。


很好的解决方案,谢谢!
Vanessa 2012年

12

t(U,A)<sVt(V,A)+tVsV1

AsV


1
U

1
sVV

sVtVV

1
我不明白 顺便说一句,如果我添加条件V是可证明的通用问题解决者,则可以通过仅运行可以证明是通用问题解决者的算法来消除A依赖项
Vanessa
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.