Haskell 适合量子计算吗?
Posted
技术标签:
【中文标题】Haskell 适合量子计算吗?【英文标题】:Is Haskell suitable for quantum computing? 【发布时间】:2013-08-30 05:11:28 【问题描述】:我刚刚阅读了一篇关于量子物理学的文章。一件有趣的事情是,在 Haskell 程序员看来,这两个领域之间有一些相似之处。
首先,量子世界中的测量似乎类似于 Haskell 中的惰性求值:如果你不测量,你就不知道猫是活的还是死的。不求值,不知道值是定义还是undefined
。
其次,在量子方面,我们有EPR paradox,这可以通过与速度高于光速的相互作用来解释,或者相当于一台时间机器。在 Haskell 中,正如我们在 Assembly: Circular Programming with Recursive do -Monad.Reader issue 6 中看到的那样,我们可以通过使用递归 do
来访问来自未来的值。
最后,在量子中,我们必须区分熵永不减少的可观察世界和时间在两个方向上等价的“纯”量子世界。在 Haskell 中,我们有 IO()
世界,它描述了程序实际所做的事情,以及永远不会有副作用的纯函数世界,并且值从不依赖于评估顺序。
所以我猜上述事实表明这两个领域之间存在一些相互联系。这会产生更有趣的后果吗?例如,虽然我谈到了 EPR 悖论,但我不知道如何创建一个 Haskell 程序来模拟这种情况:一个函数创建两个值,稍后对其中一个的求值会影响另一个(我认为这些值必须有IO()
类型,但我不知道如何将它们放在一起)。
【问题讨论】:
计算机语言不仅仅包含一个理论概念。即使两个概念(或看起来)相似,也不一定与一个是否以任何可用的方式适合另一个有关。 使用“时间机器”这个短语表明你还没有完全理解 EPR 悖论。有关非常清晰的解释,请参阅 Mermin 的文章:theorie.physik.uni-konstanz.de/juan/pub/…。 所有这些类比都是......好吧,启发式的,老实说,在大多数情况下都是错误的。但这仍然是一个好问题。 @DominicSteinitz 不,我读过的一本书提出了“时间机器”的解释。作者建议测量的效果实际上是回溯到两篇相关文章分开的时间。 在不使用量子物理学的情况下,“相互作用比光快”意味着“对于某些观察者来说,结果发生在它的原因之前”并且意味着“时间机器”。因此,如果“交互速度比光快”可以解释,那么“时间机器”也可以。 【参考方案1】:Haskell 被用作量子编程语言已有一段时间了。
主要参考点是 Haskell 中的 Quipper DSL。
Quipper paper New Scientist article on Quipper还有更多有趣的东西 - http://www.kurzweilai.net/quipper-language-makes-quantum-computers-easier-to-program
【讨论】:
另见 Amr Sabry 的建模 Haskell 中的量子计算 - cs.indiana.edu/~sabry/papers/quantum.pdf 和 Jerzy Karczmarczuk 的 量子力学结构和解释 - karczmarczuk.users.greyc.fr/arpap/hasiqm.pdf。两者都出现在 2003 年的 Haskell 研讨会上。 谢谢,您能多解释一下出现在您最终参考链接中的简单teleport
程序吗?看起来很有趣。以上是关于Haskell 适合量子计算吗?的主要内容,如果未能解决你的问题,请参考以下文章