去年,谷歌首次在实验中证明了量子计算机对于传统架构计算机的优越性。也引起了大众对量子计算机的关注。但是量子计算机是否真的可以替代传统计算机吗?这要从量子计算机的原理说起。
传统计算机的二进制数据表示是确定的。比如:三极管在数字电路里就只有两种状态——是否导通。但是量子计算机却不是可以确定在哪种状态。量子可以有两种状态:上旋和下旋。但是在未被观察之前,量子可以同时处于两种状态。
biliibili视频:量子计算机是如何工作的所以两种位(Qubit)表示为 α|0> + β|1>,其中α和β表示的是振幅(amplitude)。其中,|0>和|1>可以用向量表示:
|0>和|1>的向量表示量子计算的具体物理原理请移步:《量子计算机是如何工作的》
这时我们知道了一位量子位需要两个振幅来表示未被观测前的状态。由此推导2位量子位表示为 C0|00> + C1|01> + C2|10> + C3|11>,n位量子位需要2的n次方个振幅来表示。
而对量子位进行门操作(类比于传统计算机中数字电路的门操作),是通过改变这两个振幅来实现的。下面就是量子计算机的门操作列表( 不全面):
门操作列表右边的矩阵是对量子位运算的基本单位。以非门(Pauli-X)举例:非门是对单个量子位进行操作的,具体是将α和β交换,变为β|0>+α|1>。
现在量子计算机还不成熟,大多数关于量子计算机的算法是通过传统计算机模拟出来的。QuEST就是一个支持多线程,分布式运算和GPU加速的量子计算模拟库。在《Quest and High performance simulation of Quantum Computers》论文中写了QuEST的优势与不足。有兴趣的可以看看。
了解单个门运算是如何进行的。那么多个门运算是怎样的呢?
两个门运算的并行运算:
规则 例子两个门的串行运算:
规则 例子现在大概了解了量子计算原理,但是如果要使用量子计算帮助你完成某个算法的话,你需要设计出计算完之后,量子位状态时确定的,比如为|0>或者|1>(即α为0或β为0)才可以测量,也才有意义。
所以根据《量子计算机是如何工作的》中教授的说法,量子计算机只是在某些需要并行的算法上会比传统计算机更快,比如在破解密码上。但是如果你只是需要上网、写文章等,传统计算机更有优势。所以量子计算机不会在未来成为传统计算机的替代品,而是作为一种计算辅助。
如果有不正确的地方,欢迎指正和讨论!
网友评论