基于张量网络的量子虚拟机
背景介绍
一个有N个量子比特的系统,其对应的希尔伯特空间维数是2N,当N增加时,量子态系数的个数随N指数增加,这一问题被称为指数墙问题。
对于该复杂系统的状态演化,传统的全振幅虚拟机将其看做一个有2N个元素的一维向量,每次进行量子逻辑门操作时,需要同时处理2N个量子态系数,时间复杂度和空间复杂度都很高,并且由于内存的限制,能模拟接近50个量子比特已是极限。
此前,我们还介绍过很多量子虚拟机,虽然底层的算法原理各不相同,但都是为了模拟复杂量子系统的演化。使用这类虚拟机解决“指数墙问题”优缺点都很明显(如每次只能模拟一个振幅的单振幅虚拟机以及模拟多个振幅的部分振幅虚拟机),他们的优点是能绕过指数墙问题且模拟性能尚可,对应的缺点是,对控制门不能友好的支持以及随着线路复杂度上升,模拟效率急剧下降。
为了解决上述问题,本源量子开发出基于张量网络的量子线路虚拟机。
算法原理
当作用在第n个量子比特的逻辑门算符作用到整个量子体系中时,仅需将算符与量子态张量形式的第n个指标进行收缩,示意图如下:
从公式中可以看到,将量子态分解成等式右边的表示形式,对于量子线路中部分量子逻辑门操作,可以将全局问题转化为局部的张量处理问题,从而有效地降低了时间复杂度和空间复杂度。
张量网络量子虚拟机的优势
1.轻松模拟高比特低纠缠的线路
对于大部分逻辑门操作来说,张量的数据处理是局部的,对于一些低纠缠的线路,即使待模拟量子系统的比特数增加,算法模拟中带来的性能损耗几乎可以忽略不计,这是传统全振幅虚拟机无法比拟的性能优势。
使量子电路的模拟更贴近真实的量子计算机环境,支持自定义的逻辑门类型、噪声模型以及噪声参数等,如比特翻转、相位反转以及振幅阻尼等。
如何使用
在我们的QPanda中,和其他虚拟机使用方法类似,我们封装了一个名为MPSQVM的虚拟机类组件,通过其内部的一系列接口即可实现对量子线路的模拟,具体可参考我们量子软件开发框架的在线文档:
http://suo.im/5MH9Bg
总结
通过张量网络,我们找到了另一种用于模拟量子态系统演化的方法,即基于张量网络的量子虚拟机。目前已在谷歌随机线路、大数分解Shor算法以及其他复杂量子算法上进行模拟,均展现出不俗的性能优势。
未来,我们也将不断更新迭代该虚拟机实现方案,比如借助GPU的计算性能,带来更高的模拟效率,敬请期待!
延伸阅读