我试图编写一个使用qiskit对qubit执行各种操作的程序,其中一种操作是执行以下操作:
“ Qubit观测是模拟的,其波函数崩溃建模如下:
r <= |a^2|, x = 0 (basisstate |0>
r > |a^2|, x = 1 (basisstate |1>
其中r是在[0,1)范围内的随机数,而a是应观察到的量子比特。”
我注意到qiskit中的measure()方法将使量子系统崩溃-这是我要防止的事情。如何将量子矢量(或量子位)投影到qiskit中的二进制矢量中(不折叠量子系统)?还是有一个量子编程SDK允许我这样做?提前致谢。
更新:24/9/2019
Mariia Mykhailova,谢谢您的信息。那正是我所需要的!
对于其他用户,Qiskit api已更新,请使用result.data()而不是result.get_data(circuit)。
最佳答案
如果要根据量子力学的假设对量子计算系统进行建模,则在不破坏系统状态的情况下观察量子位是不可能的。这是量子系统的基本原理之一,如果不牺牲模型的真实性,就无法解决它。
话虽如此,您可以通过直接访问波动函数并手动计算量子位崩塌到一个或另一个基本状态的概率来建模此类观测,而无需实际执行测量。这只是您无法在实际的量子设备上执行的操作!
我对Qiskit用于访问wavefunction的工具并不十分熟悉,this link似乎提供了一些起点。