【问题标题】:Software simulation of a quantum computer量子计算机的软件模拟
【发布时间】:2011-06-03 11:15:03
【问题描述】:

当我们在等待我们的量子计算机时,是否可以编写一个软件模拟?我怀疑答案是否定的,但希望为什么不这样做的原因能够揭开谜团。

【问题讨论】:

标签: simulation quantum-computing


【解决方案1】:

有很多语言、框架和模拟器。 一些在低级别模拟量子方程,其他的只是门。

  • Microsoft Quantum 开发工具包 (Q#)
  • Microsoft LIQUi>IBM Quantum Experience
  • Rigetti 森林
  • 项目Q
  • QuTiP
  • OpenFermion
  • Qbsolv
  • ScaffCC
  • 量子计算游乐场(谷歌)
  • 雷神BBN
  • 怪癖
  • 森林

很高兴知道您对它们的功能和易用性的看法。

https://quantumcomputingreport.com/resources/tools/ https://github.com/topics/quantum-computing?o=desc&s=stars

【讨论】:

【解决方案2】:

它们确实存在。 Here's 基于浏览器的浏览器。 Here's 一个用 C++ 编写的。 Here's 一个用 Java 编写的。但是,正如 CodesInChaos 所述,量子计算机同时在所有概率幅度上运行。所以想象一个 3 qubit 的量子寄存器,它所处的典型状态如下所示:

a1|000> + a2|001> + a3|010> + a4|011> + a5|100> + a6|101> + a7|110>+ a8|111>

它是所有可能组合的叠加。更糟糕的是,这些概率幅度是复数。所以一个 n-qubit 寄存器需要 2^(2*n) 个实数。所以对于一个 32 量子位的寄存器,这是 2^(2*32) = 18446744073709551616 个实数。

正如 CodesInChaos 所说,用于转换这些状态的酉矩阵是该数的平方。他们的应用程序是一个点积……至少可以说,它们的计算成本很高。

【讨论】:

    【解决方案3】:

    作为Wikipedia 状态:

    原则上,经典计算机可以(使用指数资源)模拟量子算法,因为量子计算不违反 Church-Turing 命题。

    【讨论】:

      【解决方案4】:

      量子计算的经典模拟难以进行的另一个原因:您需要几乎完美(即尽可能完美)的随机数生成器来模拟测量。

      【讨论】:

        【解决方案5】:

        量子计算的经典模拟难以进行的另一个原因:要跟踪,您可能想在 n 量子比特门 (n>1) 的每个动作之后知道传出的量子比特是否纠缠。这必须经典计算,但已知是 NP-hard。

        请看这里:https://stackoverflow.com/a/23327816/363429

        【讨论】:

          【解决方案6】:

          我的答案是肯定的:

          你可以通过模拟量子机算法来模拟量子机的行为

          D-Wave quantum machine 使用称为quantum annealing 的技术。这个算法可以和simulated annealing算法相比较。

          参考资料:

          1.Quantum annealing

          2.Simulated annealing

          3.Optimization by simulated annealing: Quantitative studies

          【讨论】:

            【解决方案7】:

            Quipper 是用于量子计算的全面模拟 EDSL,在 Haskell 中实现 我有模拟 Deutsch、Deutsch–Jozsa、Simon's、Shor's 算法等几种 QC 算法的行为的经验,而且非常简单。

            【讨论】:

              【解决方案8】:

              实现它并不难。问题是计算和内存复杂度与您要模拟的量子比特数呈指数关系。

              基本上,一台量子计算机一次在所有可能的 n 位状态上运行。而那些增长像 2^n。

              运算符的大小增长得更快,因为它是一个矩阵。所以它像 (2^n)^2 = 2^(2*n) = 4^n

              所以我希望一台好的计算机能够模拟高达约 20 位的量子计算机,但它会相当慢。

              【讨论】:

                【解决方案9】:

                几年前,我在 Perl 会议上参加了一次演讲,Damian Conway(我相信)当时正在推测其中的一些内容。过了一会儿,有一个 Perl 模块可以做这些事情。在 CPAN 中搜索 Quantum::Superpositions。

                【讨论】:

                  猜你喜欢
                  • 2017-02-07
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-04-05
                  • 2020-12-24
                  • 2018-08-29
                  • 2012-02-21
                  • 2013-02-11
                  • 2011-10-18
                  相关资源
                  最近更新 更多