查看原文
其他

基于张量网络的量子虚拟机

OriginQ 本源量子 2021-02-13



背景介绍


一个有N个量子比特的系统,其对应的希尔伯特空间维数是2N,当N增加时,量子态系数的个数随N指数增加,这一问题被称为指数墙问题。

对于该复杂系统的状态演化,传统的全振幅虚拟机将其看做一个有2N个元素的一维向量,每次进行量子逻辑门操作时,需要同时处理2N个量子态系数,时间复杂度和空间复杂度都很高,并且由于内存的限制,能模拟接近50个量子比特已是极限。

此前,我们还介绍过很多量子虚拟机,虽然底层的算法原理各不相同,但都是为了模拟复杂量子系统的演化。使用这类虚拟机解决“指数墙问题”优缺点都很明显(如每次只能模拟一个振幅的单振幅虚拟机以及模拟多个振幅的部分振幅虚拟机),他们的优点是能绕过指数墙问题且模拟性能尚可,对应的缺点是,对控制门不能友好的支持以及随着线路复杂度上升,模拟效率急剧下降。

为了解决上述问题,本源量子开发出基于张量网络的量子线路虚拟机。



算法原理



回到指数墙问题,一个有N个量子比特的系统,其对应的希尔伯特空间维数是2N,在张量网络的算法理论中,可以把量子态的系数看成2N维张量(N阶张量,即有N个指标,每个指标的维数是2),算符,即量子逻辑门的系数为2N×2N维张量(2N阶张量,即有2N个指标,每个指标的维数是2),图形表示如下:

 

当作用在第n个量子比特的逻辑门算符作用到整个量子体系中时,仅需将算符与量子态张量形式的第n个指标进行收缩,示意图如下:

               

然而上述形式并不能解决指数墙问题,需要对其进行TensorTrain分解,其定义指的是,对于一个N阶张量,将其分解为多个二阶或三阶张量的缩并形式,定义公式和四阶张量示意图如下,图中{sn}表示物理指标,{an}表示几何或辅助指标,从左到右的过程称为TT分解,从右到左的过程称为TT积。

 

将上述公式中的张量T换成我们需要模拟的量子态,即可得到量子态的矩阵乘积态表示:

从公式中可以看到,将量子态分解成等式右边的表示形式,对于量子线路中部分量子逻辑门操作,可以将全局问题转化为局部的张量处理问题,从而有效地降低了时间复杂度和空间复杂度。



张量网络量子虚拟机的优势



1.轻松模拟高比特低纠缠的线路

对于大部分逻辑门操作来说,张量的数据处理是局部的,对于一些低纠缠的线路,即使待模拟量子系统的比特数增加,算法模拟中带来的性能损耗几乎可以忽略不计,这是传统全振幅虚拟机无法比拟的性能优势。

2. 支持多控制门
一些另辟蹊径的量子虚拟机,如单振幅以及部分振幅虚拟机,由于其算法的局限性,均不能支持多控门,但是基于张量网络中的张量缩并分解算法,带有多控制的量子逻辑门操作可以很轻松地应用到待模拟的量子线路上。
3. 支持含噪声的量子线路模拟

使量子电路的模拟更贴近真实的量子计算机环境,支持自定义的逻辑门类型、噪声模型以及噪声参数等,如比特翻转、相位反转以及振幅阻尼等。



如何使用



在我们的QPanda中,和其他虚拟机使用方法类似,我们封装了一个名为MPSQVM的虚拟机类组件,通过其内部的一系列接口即可实现对量子线路的模拟,具体可参考我们量子软件开发框架的在线文档:

http://suo.im/5MH9Bg



总结




通过张量网络,我们找到了另一种用于模拟量子态系统演化的方法,即基于张量网络的量子虚拟机。目前已在谷歌随机线路、大数分解Shor算法以及其他复杂量子算法上进行模拟,均展现出不俗的性能优势。

未来,我们也将不断更新迭代该虚拟机实现方案,比如借助GPU的计算性能,带来更高的模拟效率,敬请期待!


延伸阅读

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存