量子计算机的软件仿真

时间:2011-01-04 15:15:53

标签: simulation quantum-computing

在我们等待量子计算机的同时,是否可以编写一个软件模拟?我怀疑答案是否定的,但希望之所以不这样做,将会对这个谜团有所启发。

9 个答案:

答案 0 :(得分:13)

实施它并不难。问题是计算和存储器复杂度是你想要模拟的量子比特数的指数。

基本上,量子计算机同时对所有可能的n位状态进行操作。那些长得像2 ^ n。

运营商的规模增长得更快,因为它是一个矩阵。所以它增长得像(2 ^ n)^ 2 = 2 ^(2 * n)= 4 ^ n

所以我希望一台好的计算机可以模拟一台高达20位的量子计算机,但速度会相当慢。

答案 1 :(得分:8)

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

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所说,用于转换这些状态的酉矩阵就是这个数的平方。他们的应用是点产品......至少可以说,它们的计算成本很高。

答案 2 :(得分:5)

我的回答是肯定的:

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

D-Wave quantum machine使用名为quantum annealing的技术。该算法可以与simulated annealing算法进行比较。

参考文献:

1。Quantum annealing

2。Simulated annealing

3。Optimization by simulated annealing: Quantitative studies

答案 3 :(得分:2)

作为Wikipedia州:

  

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

答案 4 :(得分:1)

多年前,我参加了Perl会议上的一次演讲,其中Damian Conway(我相信)正在猜测其中一些。稍后有一个可用的Perl模块做了一些这样的事情。搜索CPAN for Quantum :: Superpositions。

答案 5 :(得分:1)

有一个非常大的语言,框架和模拟器列表。 有些模拟低水平的量子方程,其他只是模拟门。

  • Microsoft Quantum Development Kit(Q#)
  • Microsoft LIQUi> IBM Quantum Experience
  • Rigetti Forest
  • ProjectQ
  • QuTiP
  • OpenFermion
  • Qbsolv
  • ScaffCC
  • 量子计算游乐场(谷歌)
  • 雷神BBN
  • 夸克
  • 森林

了解您对其能力和使用方便性的看法会很棒。

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

量子计算的经典模拟很难的另一个原因是:在n-qubit门(n> 1)的每个动作之后跟踪你可能想要知道的是,输出量子位是否被纠缠。这必须经典地计算,但已知是NP难的。

见这里:https://stackoverflow.com/a/23327816/363429

答案 8 :(得分:0)

量子计算经典模拟的另一个原因很难:你需要几乎完美 - 即尽可能完美 - 随机数发生器来模拟测量。