更难的是:对已排序的牌组进行混洗还是对经过改组的牌组进行分类?


18

您有不同元素组成的数组。您可以访问比较器(一个黑盒函数接受两个元素ab并返回true iff a < b)和一个真正随机的位源(一个黑盒函数不接受任何参数并返回一个独立的均匀随机位)。请考虑以下两个任务:naba<b

  1. 该数组当前已排序。产生均匀(或近似均匀)的随机选择排列。
  2. 该数组由自然而然随机选择的一些排列组成。产生一个排序的数组。

我的问题是

哪个任务需要渐近的能量?

我无法更精确地定义问题,因为我对信息论,热力学或其他任何需要回答此问题的知识都不了解。但是,我认为这个问题可以定义得很清楚(希望有人在回答这个问题时能帮助我!)。

现在,按照算法,我的直觉是它们相等。请注意,每种排序都是相反的顺序,反之亦然。排序需要比较,而洗牌,因为它从选取的随机排列ñ 选择,需要登录n ñ 日志ñ随机位。改组和排序都需要大约n次交换。logn!nlognn!logn!nlognn

但是,我觉得应该采用兰道尔原理来回答,该原理说需要一点能量来“擦除”。直觉上,我认为这意味着对数组进行排序更加困难,因为它需要“擦除” 位信息,从低能量,高熵的无序基态到高度有序的状态。但另一方面,对于任何给定的计算,排序只是将一个排列转换为另一个排列。由于我是一个完全的非专家,所以我希望了解物理学的人可以帮助“解决”这个问题!nlogn

(该问题在math.se上没有得到任何答案,因此我将其重新张贴在这里。希望可以。)


我根本没有考虑过这一点,所以请告诫。如果我们从排序数组开始,则使用合并排序,但不是使用比较,而是使用随机位进行合并(因此,如果随机位为1,则不返回true,如果则返回true 。我们有两个大小为1的数组的基本情况将以相同的概率生成大小为2的两个可能的数组。我没有比这更多的了。a<b1
卢克·马西森

2
我认为,为了回答这个问题,您首先需要定义相对的运营成本;读取数据,写入数据以及生成/获取随机数需要多少费用?
mitchus

@mitchus:如果我们假设计算机“最佳效率”,我主要是对物理限制感到好奇。我的粗略理解是,“擦除”一些信息所需的能量存在一个物理下限,而其他操作所需的能量要少得多。因此,我想知道这种直觉是否正确且可形式化,足以得出答案。
usul 2013年

您删除一点是什么意思?覆盖吗?据我所知,计算机通常不会擦除任何东西(出于隐私原因除外),而只是通过取消分配相关的内存区域来“忘记”它。但也许我在这里没有正确
理解

2
@ Patrick87不幸的是,一个统一的能量模型与事实相去甚远,无法使用它。参见FudeusnéeBayer和Nebel(2009)根据能源消耗评估算法
拉斐尔

Answers:


6

根据Landauer的原理,如果要将键的统一随机排列取为一个已排序的键,并且不希望在计算机中保留任何揭示统一随机排列的内容,则需要擦除l o g n Ñ 日志2 Ñ位。这将消耗n ln n k T能量。另一方面,将排序后的阵列和n log 2 n个随机比特带到随机阵列的计算是可逆的,因此可以任意减小所消耗的能量。nlogn!nlog2n(nlnn)kTnlog2n

注意,这些只是理论上的下限。这些过程当前在实际数字计算机上消耗的能量与上述分析无关。


非常感谢!我可以问一个可能幼稚的跟进吗?假设我更改了问题的措词,以便对排序算法进行固定的项排列,并且必须对它们进行排序。现在,如果您赞成贝叶斯哲学并对此输入有统一的信念,那么答案似乎应该是相同的。但是根据一种输入没有随机性的哲学(尽管我不知道它是什么),该论点似乎失败了。我该如何解决悖论?再次感谢!!
usul 2013年

@usul:在那种情况下,您仍然擦除了这些位,因此该算法仍需要能量。只是在这种情况下,如果您知道输入是哪个固定置换,就可以使用更好的算法。(nlnn)kT
Peter Shor

3

都不行 通过跟踪输入,可以使任何电路都是可逆的,并且可逆计算的能量损耗可以任意减小


但是使其可逆可能会使其无效。最佳算法之间有什么关系。顺便说一句,我不认为他们可以比较。混洗固有地需要随机性(任何不同的随机性都会产生不同的输出)。排序可以是确定性的。“反向”排序将以确定性方式进行洗牌。
Ran G.

1
“有效”是指时间,空间或两者的某种组合?使计算可逆并不一定会增加渐近时间复杂度,并且每个计算都存在可逆版本,它们使用的空间不比原始[Vitányi05]大
rphv

1
只要保持输入周围,任何电路都可以是可逆的。如果您不希望保留可以重构原始排列的信息,则无法使排序电路具有可逆性。
彼得·索尔
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.