一种量子电路声明式构建方法、装置、设备及介质

摘要: 本发明涉及量子计算,尤其涉及一种量子电路声明式构建方法、装置、设备及介质。背景技术:1、随着量子计算硬件进入含噪声中等规模量子时代,构建高效、易用且具备良好抽象...
一种量子电路声明式构建方法、装置、设备及介质

本发明涉及量子计算,尤其涉及一种量子电路声明式构建方法、装置、设备及介质。

背景技术:

1、随着量子计算硬件进入含噪声中等规模量子时代,构建高效、易用且具备良好抽象能力的量子软件栈成为推动量子计算实用化的关键环节。

2、相关技术中的量子编程框架和软件开发工具包(如qiskit、cirq、pennylane等),提供了量子电路构建的基本功能,一般采用命令式或过程式的编程范式,需要人工逐个调用各个量子门函数来构建电路,构建方式比较直观,但是技术性较强,对于用户和一般技术人员而言,使用门槛较高,量子电路构建效率较低。

3、当前,亟需一种能有效提高量子电路构建效率的方式。

技术实现思路

1、本发明提供一种量子电路声明式构建方法、装置、设备及介质,用以解决相关技术中一般采用命令式或过程式的编程范式来构建量子电路,构建效率较低的缺陷,实现量子电路声明式构建,提高量子电路构建效率。

2、第一方面,本发明提供一种量子电路声明式构建,应用于虚拟机,所述方法包括:

3、解析用户输入的声明信息,以得到所述声明信息中的寄存器信息、线路索引、门函数名称和门连接信息;

4、根据所述寄存器信息构造量子寄存器,所述量子寄存器中包括n个量子比特和底层量子计算库的态向量句柄;其中,n为大于1的整数;

5、基于所述量子寄存器中的量子比特总数确定所述线路索引未超范围,则根据所述线路索引在所述量子寄存器中确定对应的目标量子线路;其中,所述目标量子线路的构造接口仅对所述量子寄存器可见;

6、根据所述态向量句柄确定待操作的目标内存区域,以及根据所述门函数名称和所述门连接信息确定相应的目标门函数;其中,所述目标门函数用于接收量子线路对象并返回量子线路对象;

7、调用所述目标门函数对所述目标内存区域中所述目标量子线路对应的存储数据执行量子门操作,以生成相应的量子电路。

8、可选的,所述门函数名称中包括至少一个门函数的名称,当所述门连接信息中包括门函数组合关系和门函数调用顺序时,所述根据所述门函数名称和所述门连接信息确定相应的目标门函数,包括:

9、根据所述门函数名称确定至少一个第一门函数;以及,根据所述门函数组合关系对待组合的至少一个第一门函数进行组合,以生成第二门函数;

10、将每个所述第一门函数和所述第二门函数整体作为所述目标门函数。

11、可选的,所述调用所述目标门函数对所述目标内存区域中所述目标量子线路对应的存储数据执行量子门操作,以生成相应的量子电路,包括:

12、按照所述门函数调用顺序调用所述目标门函数,以使所述目标门函数对所述目标内存区域中所述目标量子线路对应的存储数据执行量子门操作,以生成所述量子电路。

13、可选的,在所述生成相应的量子电路之后,所述方法还包括:

14、接收用户输入的概率查询指令,所述概率查询指令中携带线路索引;

15、根据所述概率查询指令中的线路索引,在所述量子寄存器中确定待查询量子线路;

16、在不改变量子态的情况下,计算并输出所述待查询量子线路对应的测量结果概率。

17、可选的,所述量子线路为通过基础类型附加元数据的方式表示;所述基础类型包括单元类型和资源类型,所述元数据用于描述附加于所述基础类型上的量子对象属性。

18、可选的,在所述生成相应的量子电路之后,所述方法还包括:

19、接收用户输入的量子测量指令,所述量子测量指令中携带线路索引;

20、根据所述量子测量指令中的线路索引,在所述量子寄存器中确定待测量的量子线路;

21、调用量子测量函数对所述待测量的量子线路执行基于概率幅的测量操作,并得到所述量子测量函数返回的测量结果,所述测量结果为坍缩后的经典比特值;

22、将所述测量结果作为值压入所述虚拟机的操作数栈,以使后续经典指令基于所述测量结果执行条件分支。

23、可选的,在所述生成相应的量子电路之后,所述方法还包括:

24、当检测到所述量子寄存器或者所述目标量子线路为不可达对象时,获取所述不可达对象中存储的所述态向量句柄以及清除钩子函数;

25、调用所述清除钩子函数,将所述态向量句柄传入所述底层量子计算库的销毁接口,以释放所述态向量句柄对应的量子态向量内存,并在所述清除钩子函数调用完成后,释放所述不可达对象占用的内存。

26、第二方面,本发明提供一种量子电路声明式构建装置,应用于虚拟机,所述装置包括:

27、解析单元,用于解析用户输入的声明信息,以得到所述声明信息中的寄存器信息、线路索引、门函数名称和门连接信息;

28、构造单元,用于根据所述寄存器信息构造量子寄存器,所述量子寄存器中包括n个量子比特和底层量子计算库的态向量句柄;

29、第一确定单元,用于基于所述量子寄存器中的量子比特总数判断所述线路索引未超范围,则根据所述线路索引在所述量子寄存器中确定对应的目标量子线路;其中,所述目标量子线路的构造接口仅对所述量子寄存器可见;

30、第二确定单元,用于根据所述态向量句柄确定待操作的目标内存区域;

31、第三确定单元,用于根据所述门函数名称和所述门连接信息确定相应的目标门函数;其中,所述目标门函数用于接收量子线路对象并返回量子线路对象;

32、操作单元,用于调用所述目标门函数对所述目标内存区域中所述目标量子线路对应的存储数据执行量子门操作,以生成相应的量子电路。

33、可选的,所述门函数名称中包括至少一个门函数的名称,当所述门连接信息中包括门函数组合关系和门函数调用顺序时,第三确定单元,还用于:

34、根据所述门函数名称确定至少一个第一门函数;以及,根据所述门函数组合关系对待组合的至少一个第一门函数进行组合,以生成第二门函数;

35、将每个所述第一门函数和所述第二门函数整体作为所述目标门函数。

36、可选的,操作单元,还用于:

37、按照所述门函数调用顺序调用所述目标门函数,以使所述目标门函数对所述目标内存区域中所述目标量子线路对应的存储数据执行量子门操作,以生成所述量子电路。

38、可选的,所述装置还包括:

39、概率查询单元,用于在所述生成相应的量子电路之后,接收用户输入的概率查询指令,所述概率查询指令中携带线路索引;根据所述概率查询指令中的线路索引,在所述量子寄存器中确定待查询量子线路;在不改变量子态的情况下,计算并输出所述待查询量子线路对应的测量结果概率。

40、可选的,所述量子线路为通过基础类型附加元数据的方式表示;所述基础类型包括单元类型和资源类型,所述元数据用于描述附加于所述基础类型上的量子对象属性。

41、可选的,所述装置还包括:

42、测量单元,用于在所述生成相应的量子电路之后,接收用户输入的量子测量指令,所述量子测量指令中携带线路索引;根据所述量子测量指令中的线路索引,在所述量子寄存器中确定待测量的量子线路;调用量子测量函数对所述待测量的量子线路执行基于概率幅的测量操作,并得到所述量子测量函数返回的测量结果,所述测量结果为坍缩后的经典比特值;将所述测量结果作为值压入所述虚拟机的操作数栈,以使后续经典指令基于所述测量结果执行条件分支。

43、可选的,所述装置还包括:

44、内存释放单元,用于在所述生成相应的量子电路之后,当检测到所述量子寄存器或者所述目标量子线路为不可达对象时,获取所述不可达对象中存储的所述态向量句柄以及清除钩子函数;调用所述清除钩子函数,将所述态向量句柄传入所述底层量子计算库的销毁接口,以释放所述态向量句柄对应的量子态向量内存,并在所述清除钩子函数调用完成后,释放所述不可达对象占用的内存。

45、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的量子电路声明式构建方法。

46、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的量子电路声明式构建方法。

47、本发明提供的量子电路声明式构建方法、装置、设备及介质,可以解析用户输入的声明信息,以得到声明信息中的寄存器信息、线路索引、门函数名称和门连接信息,根据寄存器信息构造量子寄存器,量子寄存器中包括n个量子比特和底层量子计算库的态向量句柄;其中,n为大于1的整数。基于量子寄存器中的量子比特总数确定线路索引未超范围,则根据线路索引在量子寄存器中确定对应的目标量子线路,根据态向量句柄确定待操作的目标内存区域,以及根据门函数名称和门连接信息确定相应的目标门函数,调用目标门函数对目标内存区域中目标量子线路对应的存储数据执行量子门操作,以生成相应的量子电路。本发明可以基于用户的声明信息实现对量子电路的构建,有效提升量子电路构建效率。

48、本发明还能取得以下技术效果:

49、(1)降低描述复杂度。grover搜索的代码量相比qiskit减少约40%,电路以结构化的函数组合表达;

50、(2)保证资源可追溯。线路对象只能由寄存器生成,杜绝了量子态的无来源访问;

51、(3)提升可复用性。门函数可命名、可组合、可复用(如entangle门可在超密编码中直接import复用)。