是否可以(通过使用斜线提供一个示例)通过使用并行算法来降低问题的计算复杂性,该算法不需要相对于输入大小的多个处理器?
是否可以(通过使用斜线提供一个示例)通过使用并行算法来降低问题的计算复杂性,该算法不需要相对于输入大小的多个处理器?
Answers:
如果您的意思是O(1)处理器,则不能,无法降低计算复杂度。
简单地排列每个处理器完成的工作,然后在一个处理器上完成。如果您担心同步,那么一个处理器可以轻松地模拟它。
如果将任务分配给(其中p是一个常数)处理器。
那么复杂度可以是,其中c = 1 / p。
但是,复杂性不会改变。
“您不能使用1个处理器进行计算,但是可以使用2个处理器进行计算。”
假设两个处理器都是TM或功能较弱的模型,这是不可能的。从Wikipedia到多带式机器:
从直觉上讲,此模型似乎比单带模型要强大得多,但是任何一台多带磁带机,无论k有多大,都可以用单带磁带机模拟,只用两倍的计算时间来模拟(Papadimitriou 1994,Thrm 2.1)。
同样对于多头机器,来自Walter J. Savitch和Paul MBVitányi的“带头多头翻唱机的线性时间模拟-头向跳动”:
本文的主要结果表明,给定一种图灵机,每台磁带有几个读写头,并且具有附加的移动移位操作“将给定磁头移动到其他给定磁头的位置”,就可以有效地构造一个图灵机。多带图灵机,每条带一个读写头,可在线性时间内对其进行仿真;也就是说,如果原始机器在时间T(n)中运行,那么对于某个常数c,模拟机器将在时间cT(n)中运行。
可能是您正在谈论的是“并行或”(给定两个函数返回一个布尔值,告诉它们中的一个是否返回true,因为它们中的任何一个(但不是全部,都可能无法终止))它使用1个处理器,但可以使用2个处理器进行计算。
但是,这很大程度上取决于您将使用哪种计算模型,是否将流程指定为黑匣子或作为您可以自己解释的描述等。