发明内容
本发明提供的一种量子线路的图形化显示方法,包括:
获取待处理的代码化量子线路;
获取所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门;
构建与各所述量子比特对应的量子比特时间线,并依次排列显示;
构建各所述量子逻辑门的标识符;
根据所述代码化量子线路的执行时序,将各所述量子比特对应的所有所述量子逻辑门的所述标识符依次插入对应的所述量子比特时间线。
优选地,还包括:
构建与各所述量子比特的对应的量子比特的标识符,并依次排列显示在各所述量子比特对应的所述量子比特时间线的同一端。
优选地,还包括:
获取所述代码化量子线路中包含的经典比特,及各所述经典比特对应的测量操作;
构建与各所述经典比特对应的经典比特时间线,并依次排列显示;
构建各所述测量操作的标识符;
根据所述测量操作的参数,将构建的各所述测量操作的所述标识符插入到对应的经典比特时间线和量子比特时间线,其中,所述测量操作的参数包括所述测量操作所作用的量子比特以及存储对应测量结果的经典比特。
优选地,还包括:
构建与各所述经典比特对应的经典比特的标识符,并依次排列显示在各所述经典比特对应的经典比特时间线的同一端。
优选地,所述获取所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门,包括:
获取所述代码化量子线路中的量子逻辑门序列,并确定所述量子逻辑门序列中包含的量子逻辑门对应作用的量子比特;
根据所述量子逻辑门序列中包含的量子逻辑门对应作用的量子比特,确定所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门。
优选地,所述获取所述代码化量子线路中的量子逻辑门序列,包括:
若所述代码化量子线路中包含处于转置共轭状态的子量子线路,则将所述转置共轭状态的子量子线路进行转置共轭处理,再获取转置共轭处理后的所述代码化量子线路中的量子逻辑门序列。
优选地,所述获取所述代码化量子线路中的量子逻辑门序列,包括:
若所述代码化量子线路中包含嵌套节点,则依次获取量子线路中位于嵌套节点之前的量子逻辑门序列、位于嵌套节点内的量子逻辑门序列、以及位于嵌套节点后的量子逻辑门序列。
优选地,所述根据所述代码化量子线路的执行时序,将各所述量子比特对应的所有所述量子逻辑门的所述标识符依次插入对应的所述量子比特线,包括:
对所述代码化量子线路进行执行时序划分,获得位于不同执行时序内的量子逻辑门;
将各同一执行时序内的量子逻辑门,分别插入对应的量子比特时间线。
优选地,对所述代码化量子线路的进行执行时序划分,包括:
获得所述代码化量子线路的信息;
根据当前的所述代码化量子线路的信息,将每个量子比特各自执行的第一位量子逻辑门中的单量子逻辑门的执行时序,划分为同一时序;
当所述第一位量子逻辑门中的两量子逻辑门对应的两个位数均为第一位时,将所述两量子逻辑门的执行时序,划分为所述同一时序;
当所述第一位量子逻辑门中的多量子逻辑门对应的多个位数均为第一位时,将所述多量子逻辑门的执行时序,划分为所述同一时序;
删除所述量子线路信息包含的、所述同一时序划分完成的量子逻辑门信息,继续执行所述根据当前的所述代码化量子线路的信息,将每个量子比特各自执行的第一位量子逻辑门中的单量子逻辑门的执行时序,划分为同一时序的步骤。
本发明还提供了一种量子线路的图形化显示系统,包括:
第一获取模块,用于获取待处理的代码化量子线路;
第二获取模块,用于获取所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门;
第一构建模块,用于构建与各所述量子比特对应的量子比特时间线,并依次排列显示;
第二构建模块,用于构建各所述量子逻辑门的标识符;
第一插入模块,用于根据所述代码化量子线路的执行时序,将各所述量子比特对应的所有所述量子逻辑门的所述标识符依次插入对应的所述量子比特时间线。
本发明又提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述量子程序的图形化显示方法方法。
本发明再提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述量子程序的图形化显示方法。
相比于现有技术中量子线路以程序代码形式显示,表达方式比较抽象,不便于理解和分析量子线路的问题,本发明对获取待处理的代码化量子线路,通过从代码化量子线路中获取量子比特和各量子比特对应的量子逻辑门,再构建与各量子比特对应的量子比特时间线、以及各量子逻辑门的标识符,并按照代码化量子线路的执行时序将构建的与每个量子逻辑门对应的标识符插入到构建的对应量子比特时间线中显示,可以达到更加直观、形象的展示量子线路,这种代码化量子线路的图形化显示方式更加便于理解和分析量子线路。
具体实施方式
下面结合附图和具体实施例对本发明进一步进行描述。
参见图1,图1为本发明实施例提供的一种量子线路显示方法的流程示意图,它包括如下步骤:
S101、获取待处理的代码化量子线路。
具体的,可以根据量子程序中开始迭代器的位置和结束迭代器的位置,确定量子程序中对应的代码化量子线路的起始位置,获取待处理的代码化量子线路,为代码化量子线路的图形化显示提供信息基础。
为便于理解,结合具体示例说明,例如,量子程序中的代码化量子线路为如下1#代码化量子线路:
示例一:
1#代码化量子线路为:
QCircuit cir;
cir<<H(q[0])<<H(q[1])<<RY(q[2],PI/2)<<H(q[4])
<<RX(q[0],PI/4)<<X(q[1])<<CNOT(q[4],q[3])
<<H(q[1])<<CNOT(q[2],q[3])<<H(q[4])
<<H(q[2])<<CNOT(q[3],q[4])
<<RZ(q[3],PI/2)<<Y(q[4])
<<RX(q[4],PI/5).
其中:
H代表阿达马Hadamard门,X代表泡利-X门(其对应的矩阵为泡利矩阵σ x),Y代表泡利-Y门(其对应的矩阵为泡利矩阵σy),Z代表泡利-Z门(其对应的矩阵为泡利矩阵σz),RX代表任意旋转泡利-X门,RY代表任意旋转泡利 -Y门,RZ代表任意旋转泡利-Z门,CNOT代表控制非门(Control-NOT);
q[0]、q[1]、q[2]、q[3]、q[4]是指比特位从0至4的量子比特;
CNOT(q[4],q[3])则表示在q[4]和q[3]上同时有一个控制非门操作,且q[4] 为控制比特,q[3]为受控比特;H(q[0])表示在q[0]上有一个Hadamard门操作; Y(q[4])则表示在q[4]上有一个泡利-Y门操作;RY(q[2],PI/2)则表示在q[2]有一个任意旋转泡利-Y门,旋转角度为π/2。
S102、获取所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门。
具体的,例如,针对上述1#代码化量子线路,可以采用遍历的方式,获取到上述1#代码化量子线路包含的量子比特为:q[0]、q[1]、q[2]、q[3]、q[4],且能获取到各量子比特对应的量子逻辑门分别为:
q[0]对应H(q[0])、RX(q[0],PI/4);
q[1]对应H(q[1])、X(q[1])、H(q[1]);
q[2]对应RY(q[2],PI/2)、CNOT(q[2],q[3])、H(q[2]);
q[3]对应CNOT(q[4],q[3])、CNOT(q[2],q[3])、CNOT(q[3],q[4])、RZ(q[3],PI /2);
q[4]对应H(q[4])、CNOT(q[4],q[3])、H(q[4])、CNOT(q[3],q[4])、Y(q[4])、 RX(q[4],PI/5)。
本步骤一种优选地实施方式:
获取所述代码化量子线路中的量子逻辑门序列,并确定所述量子逻辑门序列中包含的量子逻辑门对应作用的量子比特;然后根据所述量子逻辑门序列中包含的量子逻辑门对应作用的量子比特,确定所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门。
需要说明的是,本步骤中的量子逻辑门序列是指代码化量子线路中各量子逻辑门依次排列形成的量子逻辑门序列。
具体地,结合示例进行说明,例如,获取上述示例一中1#代码化量子线路中的量子逻辑门序列为:
H(q[0])、H(q[1])、RY(q[2],PI/2)、H(q[4])、RX(q[0],PI/4)、X(q[1])、 CNOT(q[4],q[3])、H(q[1])、CNOT(q[2],q[3])、H(q[4])、H(q[2])、CNOT(q[3],q[4])、 RZ(q[3],PI/2)、Y(q[4])、RX(q[4],PI/5);
并确定:H(q[0])作用在q[0]上,H(q[1])作用在q[1]上,RY(q[2],PI/2)作用在q[2]上,…,CNOT(q[4],q[3])同时作用在q[4]和q[3],上以此类推……。
根据上述结果,即可确定上述代码化量子线路中包含的量子比特,以及各量子比特对应的量子逻辑门。
鉴于,通常的代码化量子线路中可能包含转置共轭状态的子量子线路,也可能包含不同类型的节点,如量子逻辑门节点、嵌套节点中的至少一种,基于这些情况,所述获取所述代码化量子线路中的量子逻辑门序列,包括:
若所述代码化量子线路中包含处于转置共轭状态的子量子线路,则将所述转置共轭状态的子量子线路进行转置共轭处理,再获取转置共轭处理后的代码化量子线路中的量子逻辑门序列。
若所述代码化量子线路中包含嵌套节点,则依次获取代码化量子线路中位于嵌套节点之前的量子逻辑门序列、位于嵌套节点内的量子逻辑门序列、以及位于嵌套节点后的量子逻辑门序列。
需要说明的是,若代码化量子线路中在嵌套节点外包含转置共轭状态的子量子线路,则将对应的子量子线路进行转置共轭处理,再获取代码化量子线路中的量子逻辑门序列;若代码化量子线路中在嵌套节点内包含转置共轭状态的子量子线路,则将对应嵌套节点内处于转置共轭状态的子量子线路进行转置共轭处理,再获取经转置共轭处理后代码化量子线路中位于嵌套节点之前的量子逻辑门序列、位于嵌套节点内的量子逻辑门序列、以及位于嵌套节点后的量子逻辑门序列。本实施例中,子量子线路是指代码化量子线路中的一部分逻辑门序列,例如上述代码化量子线路中嵌套节点内的逻辑门序列。
具体地,以下结合示例进行说明。
示例二:
包含处于转置共轭状态的子量子线路的2#代码化量子线路为:
auto gate=S(q[2]);
gate.setDagger(true);
QProgprg;
prg<<CNOT(q[6],q[7])
<<CU(1,2,3,4,q[5],q[0])<<(H(q[1]))<<gate<<H(q[3])<<Y(q[3])
<<RY(q[3],PI/6)<<CNOT(q[6],q[2])
<<(CR(q[0],q[5],PI/2))<<(S(q[7]))<<S(q[1])<<RZ(q[1],PI/2)<<Y(q[2])<<SWAP(q[7],q[1])
<<(MeasureAll(q,c)).
其中,gate.setDagger(true)表示S(q[2])处于转置共轭状态。
则获得的包含的量子逻辑门序列为:CNOT(q[6],q[7])、CU(1,2,3,4,q[5],q[0])、H(q[1])、S(q[2]).dag、H(q[3])、Y(q[3])、RY(q[3],PI/6)、CNOT(q[6],q[2])、CR(q[0],q[5],PI/2)、S(q[7])、S(q[1])、RZ(q[1],PI/2)、Y(q[2])、SWAP(q[7],q[1]);其中,量子逻辑门S(q[2]).dag对应的操作矩阵是S(q[2])对应的操作矩阵的转置共轭矩阵。需要说明的是,子量子线路中的量子逻辑门的数量不受限制,本实施例为便于说明,只列举其中一种形式。
各量子逻辑门在序列中的顺序为对应量子逻辑门节点在该代码化量子线路中出现的顺序。
示例三:
包含嵌套节点的3#代码化量子线路为:
auto gate=S(q[2]);
gate.setDagger(true);
QCircuit circuit;
circuit<<X(q[1])<<RZ(q[1],PI/1)<<gate<<Y(q[2])<<SWAP(q[2],q[5]);
circuit.setDagger(true);
QProgprg;
prg<<CNOT(q[6],q[7])
<<CU(1,2,3,4,q[5],q[0])<<(H(q[1]))<<gate<<H(q[3])<<Y(q[3])<< circuit
<<RY(q[3],PI/6)<<CNOT(q[6],q[2])
<<(CR(q[0],q[5],PI/2))<<(S(q[7]))<<S(q[1])<<RZ(q[1],PI/2)<<Y(q[2])<<SWAP(q[7],q[1])
<<(MeasureAll(q,c));
对该嵌套节点内子量子线路进行转置共轭处理后,获得的嵌套节点内的逻辑门序列为:SWAP(q[2],q[5]).dag、Y(q[2]).dag、S(q[2])、RZ(q[1],PI/1). dag、X(q[1]).dag;其中,SWAP代表交换门,S代表相位门。
最终,获得的包含量子逻辑门序列则为:CNOT(q[6],q[7])、CU(1,2,3,4,q[5], q[0])、H(q[1])、S(q[2]).dag、H(q[3])、Y(q[3])、SWAP(q[2],q[5]).dag、 Y(q[2]).dag、S(q[2])、RZ(q[1],PI/1).dag、X(q[1]).dag、RY(q[3],PI/6)、 CNOT(q[6],q[2])、CR(q[0],q[5],PI/2)、S(q[7])、S(q[1])、RZ(q[1],PI/2)、 Y(q[2])、SWAP(q[7],q[1])。
量子逻辑门在该序列中的顺序根据该嵌套节点外的量子逻辑门序列的顺序和将对该嵌套节点circuit内的子量子线路进行转置共轭处理后的顺序确定。
S103、构建与各所述量子比特对应的量子比特时间线,并依次排列显示。
具体的,一个量子比特对应一条量子比特时间线,对于上述1#代码化量子线路中量子比特q[0]、q[1]、q[2]、q[3]、q[4],构建的量子比特时间线如图2 所示,一条单横线表示一条量子比特时间线,多条量子比特时间线之间相互平行依次排列显示。
优选地,基于获取所述代码化量子线路中包含的量子比特,还构建与各所述量子比特的对应的量子比特的标识符,并依次排列显示在各所述量子比特对应的所述量子比特时间线的同一端。例如,上述1#代码化量子线路中包含的量子比特为q[0]、q[1]、q[2]、q[3]、q[4],则构建对应的标识符分别代表q[0]、 q[1]、q[2]、q[3]、q[4]并依次排列显示在各所述量子比特对应的所述量子比特时间线的同一端,本实施例中,采用标识符q_0、q_1、q_2、q_3、q_4分别代表量子比特q[0]、q[1]、q[2]、q[3]、q[4],如图2所示,沿着纵向排布的标识符q_0、q_1、q_2、q_3、q_4分别对应比特位从0至4的量子比特的量子比特时间线。
S104、构建各所述量子逻辑门的标识符。
本步骤构建的各所述量子逻辑门的标识符直观、形象地代表了代码化量子线路中的量子逻辑门操作。
作为一种具体的实施方式,本实施例中采用英文字母作为各所述量子逻辑门的标识符,例如:H代表H阿达马Hadamard门;NOT加竖线代表控制非门,其中竖线指向控制比特;X代表泡利-X门;Y代表泡利-Y门;Z代表泡利-Z门; RX代表任意旋转泡利-X门;RY代表任意旋转泡利-Y门;RZ代表任意旋转泡利-Z门;SWAP代表交换门;S代表相位门。
S105、根据所述代码化量子线路的执行时序,将各所述量子比特对应的所有所述量子逻辑门的所述标识符依次插入对应的所述量子比特时间线。
所述代码化量子线路的执行时序,即量子芯片中的各量子比特执行量子逻辑门的顺序。需要说明的是,量子芯片支持:不同量子比特可以同时执行不同的量子逻辑门,进而实现量子程序进行并行计算,但是需要注意的是,一个量子比特同时只能进行一个量子逻辑门执行操作。按照量子芯片中的各量子比特执行量子逻辑门的顺序,将各量子比特对应的所有量子逻辑门的标识符依次插入各量子比特对应的量子比特时间线,能够将原来繁冗、复杂并且抽象的代码化量子线路转换为更加直观、形象的图形,这种代码化量子线路的图形化显示方式更加便于理解和分析量子线路。
为更直观、形象的显示代码化量子线路中各量子比特在不同时刻执行量子逻辑门的情况,优选地,所述根据所述代码化量子线路的执行时序,将各所述量子比特对应的所有所述量子逻辑门的所述标识符依次插入对应的所述量子比特线,包括:
对所述代码化量子线路进行执行时序划分,获得位于不同执行时序内的量子逻辑门;
将各同一执行时序内的量子逻辑门,分别插入对应的量子比特时间线。
通过执行时序划分,获得了与各量子比特对应的位于不同执行时序的量子逻辑门,然后将位于同一执行时序内的量子逻辑门所对应的标识符插入在对应的量子比特时间线中,且同一执行时序内的量子逻辑门所对应的标识符插入到各量子比特时间线中的位置相互对应,从而更能直观、形象的展示在同一执行时序内各量子比特分别执行了哪些量子逻辑门,以及在不同执行时序各量子比特分别执行了哪些量子逻辑门。
作为一种优选地具体实施方式,对所述代码化量子线路的进行执行时序划分,包括:
获得所述代码化量子线路的信息;
根据当前的所述代码化量子线路的信息,将每个量子比特各自执行的第一位量子逻辑门中的单量子逻辑门的执行时序,划分为同一时序;
当所述第一位量子逻辑门中的两量子逻辑门对应的两个位数均为第一位时,将所述两量子逻辑门的执行时序,划分为所述同一时序;否则,将所述两量子逻辑门的执行时序,划分为所述同一时序的下一时序;
当所述第一位量子逻辑门中的多量子逻辑门对应的多个位数均为第一位时,将所述多量子逻辑门的执行时序,划分为所述同一时序;
删除所述代码化量子线路的信息包含的、所述同一时序划分完成的量子逻辑门信息,继续执行所述根据当前的所述代码化量子线路的信息,将每个量子比特各自执行的第一位量子逻辑门中的单量子逻辑门的执行时序,划分为同一时序的步骤。
需要说明的是,多量子逻辑门对应的多个位数是指,对于多量子逻辑门操作的每一个量子比特而言,都对应有一个位数,表示该多量子逻辑门属于其执行的第几个量子逻辑门。
需要说明的是,删除时序划分完成的量子逻辑门信息,是指删除代码化量子线路信息中的该量子逻辑门信息,为了方便时序划分之用,并不是删除代码化量子线路中的量子逻辑门,合并后的代码化量子线路结构并无变化。
示例性的,对于上述1#代码化量子线路中的量子逻辑门序列:
H(q[0])、H(q[1])、RY(q[2])、H(q[4])、RX(q[0])、X(q[1])、CNOT(q[4],q[3])、 H(q[1])、CNOT(q[2],q[3])、H(q[4])、H(q[2])、CNOT(q[3],q[4])、RZ(q[3])、Y(q[4])、 RX(q[4])。
每个量子比特执行量子逻辑门的执行时序为:
q[0]依次执行H(q[0])、RX(q[0]);
q[1]依次执行H(q[1])、X(q[1])、H(q[1]);
q[2]依次执行RY(q[2])、CNOT(q[2],q[3])和H(q[2]);
q[3]依次执行CNOT(q[4],q[3])、CNOT(q[2],q[3])、CNOT(q[3],q[4])和 RZ(q[3]);
q[4]依次执行H(q[4])、CNOT(q[4],q[3])、H(q[4])、CNOT(q[3],q[4])、Y(q[4])和RX(q[4])。
其中,两量子逻辑门CNOT(q[4],q[3]),属于q[3]执行的第一个量子逻辑门、 q4执行的第二个量子逻辑门,则该CNOT门对应的两个位数为q[3]对应的1和 q[4]对应的2。同理,CNOT(q[2],q[3])对应的位数为2、2,CNOT(q[1],q[0]) 对应的位数为4、4,CNOT(q[3],q[4])对应的位数为3、4。
对每个量子比特而言,各自执行的第一个(第一位)量子逻辑门分别为H、 H、RY、CNOT、H。其中,对于单量子逻辑门操作H(q[0])、H(q[1])、RY(q[2])、 H(q[4]),互不影响,可以划分进同一个时序,作为第一个时序内同时执行的量子逻辑门;但,对于q[3]执行的两量子逻辑门CNOT,该CNOT门同时操作的量子比特还有q[4],而相对于q[4],该CNOT门属于其第二位执行的量子逻辑门,q[4]需要在执行H门完成后才能执行,若将该CNOT门划分入第一个时序,则q[4]会同时执行H门和CNOT门,产生冲突,因此,可以将该CNOT门顺延放入下一个时序内执行。
同理,各量子比特执行的第二个量子逻辑门包括RX、X和2个CNOT门,其中,q[3]、q[4]同时执行同一个CNOT门即CNOT(q[4],q[3]),q[2]执行一个CNOT 门即CNOT(q[2],q[3])。由于q[2]执行的CNOT门同时还操作q[3],而q[3]在执行完CNOT(q[4],q[3])后才能执行CNOT(q[2],q[3]),因此,将RX(q[0])、X(q[1])、 CNOT(q[4],q[3])放入同一时序,作为第二个时序内同时执行的量子逻辑门, CNOT(q[2],q[3])顺延划分入下一个时序内执行。以此类推,可划分包括H(q[1])、 CNOT(q[2],q[3])、H(q[4])的第三个时序、包括H(q[2])、CNOT(q[3],q[4])的第四个时序及包括RZ(q[3])、Y(q[4])的第五个时序,包括RX(q[4])的第六个时序。
最终,对所述代码化量子线路进行执行时序划分,获得位于不同执行时序内的量子逻辑门,其结果如图3所示,其中,图3中相邻的两条虚线内的量子逻辑门表示在同一执行时序。
基于上述结果,将各同一执行时序内的各量子逻辑门对应的量子逻辑门的标识符,分别插入对应的量子比特时间线,得到的显示图形如图4所示。
图4中所示的单词NOT及其连接的竖线,即表示两量子逻辑门CNOT门,单词NOT所处横线对应的量子比特表示CNOT门操作的受控比特,竖线连接的另一横线对应的量子比特表示CNOT门操作的控制比特。例如CNOT(q[2],q[3]), q_2为控制比特,q_3为操作受控比特,CNOT门同时对该两个量子比特进行操作,反过来说,q_2执行CNOT门,q_3也同时执行该CNOT门。
作为一种具体的实施方式,为了更全面的显示代码化量子线路中各量子逻辑门的参数信息,所述量子逻辑门的所述标识符还包括量子逻辑门类型和操作参数信息,例如,对应任意旋转泡利-X门,其对应的标识符包括字母RX和该量子逻辑门的旋转角度。
作为一种具体的实施方式,所述量子逻辑门的所述标识符包括量子逻辑门类型、操作参数信息和由字符拼接组成的字符画,量子逻辑门类型、操作参数信息位于字符画内。
例如,所述由字符拼接组成的字符画为由字符拼接组成的矩形框,矩形框的上部采用字符“┌”、“─”、“┐”拼接组成,矩形框的中部采用字符“|”、“|”拼接组成,矩形框的下部采用字符“└”、“─”、“┘”拼接组成,对应的量子逻辑门类型、操作参数信息位于对应的矩形框内。在本实施例中,所述量子比特时间线也采用字符拼接组成,例如采用字符“─”拼接组成。优选地,为缩短篇幅、优化显示,对于同一时序相邻量子比特时间线路的两个矩形框,将该两个矩形框相邻近的两条边上的字符采用并线处理,并线处理后得到一条共用的边。
为避免显示时乱码,所述量子比特时间线、所述标识符采用同一种编码格式,例如utf-8编码格式。
在量子程序中,与代码化量子线路有关的通常还包括测量操作和经典比特,为了更加完整、并且直观形象的展示量子线路,如图5所示,本实施例,还包括如下改进:
获取所述代码化量子线路中包含的经典比特,及各所述经典比特对应的测量操作;
构建与各所述经典比特对应的经典比特时间线,并依次排列显示;
构建各所述测量操作的标识符;
根据所述测量操作的参数,将构建的各所述测量操作的所述标识符插入到对应的经典比特时间线和量子比特时间线,其中,所述测量操作的参数包括所述测量操作所作用的量子比特以及存储对应测量结果的经典比特。
并且,与构建量子比特的标识符相对应,本实施例还构建与各所述经典比特对应的经典比特的标识符,并依次排列显示在各所述经典比特对应的经典比特时间线的同一端。
在一种具体实施方式中:
一个经典比特对应一条经典比特时间线(图5中用单横线表示,具体应用时也可以采用双横线表示,以与量子比特时间线区分),本实施例中构建的经典比特时间线在所有量子比特时间线的下方依次排列显示,并与量子比特时间线之间相互平行。
图5中,与构建的量子比特的标识符相对应的,沿着纵向排布的c_0、c_1、 c_2、c_3、c_4分别对应比特位从0至4的经典比特的经典比特时间线。
每个测量操作在代码化量子线路中有其对应的程序代码表示,该测量操作的程序代码包含了所操作的量子比特位以及保存存储对应测量结果的经典比特位等参数信息,例如:代码化量子线路中的程序代码MeasureAll(q,c)表示在对应量子比特上全部执行测量操作,然后保存测量值到对应经典比特;程序代码 Measure(q[7],c[0])表示在q[7]执行测量操作,然后保存测量值到第0经典比特。在本实施例中,对代码化量子线路中的每个测量操作用一个标识符表示,将与每个测量操作对应的标识符,插入到对应的量子比特时间线和经典比特时间线中,如图5所示,字母M所在的横线表示对对应的量子比特执行测量操作,字母M所在的竖线表示将测量结果保存到竖线指示到的经典比特上。
作为一种具体的实施方式,测量操作的标识符也可以包括测量操作表示符和由字符拼接组成的字符画,测量操作表示符位于字符画内。例如,所述由字符拼接组成的字符画为由字符拼接组成的矩形框,矩形框的上部采用字符“┌”、“─”、“┐”拼接组成,矩形框的中部采用字符“|”、“|”拼接组成,矩形框的下部采用字符“└”、“─”、“┘”拼接组成,对应的测量操作表示符位于对应的矩形框内,如图5中测量操作的表示方式,字母M位于由字符拼接组成的字符画为由字符拼接组成的矩形框内。在本实施例中,所述经典比特时间线也采用字符拼接组成,例如采用字符“─”拼接组成。为避免显示乱码,经典比特时间线、测量操作的标识符采用同一种编码格式,例如utf-8编码格式。
代码化量子线路主要包括量子比特、代码化量子线路的执行时序、以及各种量子逻辑门,本实施例通过构建与各量子比特相对应的,与各量子逻辑门相对应的量子逻辑门的标识符,与代码化量子线路的执行时序相对应的量子比特时间线,将抽象、复杂、繁冗的代码化量子线路转换为形象、直观的图形进行展示,提高了可读性,便于对代码化量子线路的分析和理解。其中,量子比特时间线,可看成是时间线(将量子比特时间线靠近量子比特标识符的一段作为量子线路执行的起始点),亦即量子比特在该时间线上随着时间推移被插入到量子比特时间线相应位置的量子逻辑门操作而导致量子比特的状态发生变化。
参见图6,图6为本发明实施例提供的一种量子线路的图形化显示系统的结构示意图,与图1所示的流程相对应,可以包括:
第一获取模块,用于获取待处理的代码化量子线路;
第二获取模块,用于获取所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门;
第一构建模块,用于构建与各所述量子比特对应的量子比特时间线,并依次排列显示;
第二构建模块,用于构建各所述量子逻辑门的标识符;
第一插入模块,用于根据所述代码化量子线路的执行时序,将各所述量子比特对应的所有所述量子逻辑门的所述标识符依次插入对应的所述量子比特时间线。
具体的,第一获取模块,还用于构建与各所述量子比特的对应的量子比特的标识符,并依次排列显示在各所述量子比特对应的所述量子比特时间线的同一端。
优选地,所述第二获取模块,用于获取所述代码化量子线路中的量子逻辑门序列,并确定所述量子逻辑门序列中包含的量子逻辑门对应作用的量子比特;
然后根据所述量子逻辑门序列中包含的量子逻辑门对应作用的量子比特,确定所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门。
优选地,所述第一插入模块,用于对所述代码化量子线路进行执行时序划分,获得位于不同执行时序内的量子逻辑门;
然后将各同一执行时序内的量子逻辑门,分别插入对应的量子比特时间线。
优选地,还包括:
第三获取模块,用于获取所述代码化量子线路中包含的经典比特,及各所述经典比特对应的测量操作;
第三构建模块,用于构建与各所述经典比特对应的经典比特时间线,并依次排列显示;
第四构建模块,用于构建各所述测量操作的标识符;
第二插入模块,用于根据所述测量操作的参数,将构建的各所述测量操作的所述标识符插入到对应的经典比特时间线和量子比特时间线,其中,所述测量操作的参数包括所述测量操作所作用的量子比特以及存储对应测量结果的经典比特。
本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S 101、获取待处理的代码化量子线路;
S102、获取所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门;
S103、构建与各所述量子比特对应的量子比特时间线,并依次排列显示;
S104、构建各所述量子逻辑门的标识符;
S105、根据所述代码化量子线路的执行时序,将各所述量子比特对应的所有所述量子逻辑门的所述标识符依次插入对应的所述量子比特时间线。
体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(RandomAccess Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明实施例还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S101、获取待处理的代码化量子线路;
S102、获取所述代码化量子线路中包含的量子比特,及各所述量子比特对应的量子逻辑门;
S103、构建与各所述量子比特对应的量子比特时间线,并依次排列显示;
S104、构建各所述量子逻辑门的标识符;
S105、根据所述代码化量子线路的执行时序,将各所述量子比特对应的所有所述量子逻辑门的所述标识符依次插入对应的所述量子比特时间线。
针对繁冗、复杂并且抽象的代码化量子线路,本实施例对获取待处理的代码化量子线路,通过从代码化量子线路中获取量子比特和各量子比特对应的量子逻辑门,再构建与各量子比特对应的量子比特时间线、以及各量子逻辑门的标识符,并按照代码化量子线路的执行时序将构建的与每个量子逻辑门对应的标识符插入到构建的对应量子比特时间线中显示,可以达到更加直观、形象的展示量子线路,这种代码化量子线路的图形化显示方式更加便于理解和分析量子线路。