專利名稱:高效量子線路仿真方法與系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本專利涉及量子計(jì)算機(jī)中量子線路的仿真問題。
背景技術(shù):
量子線路是指量子計(jì)算機(jī)中各種基本邏輯門的組合與給定的輸入量子態(tài)時(shí)的線路情況的總稱。量子線路可分為理想的量子線路于有噪音的線路,其中理想的量子線路的輸入量子態(tài)可以由一個(gè)復(fù)數(shù)的列向量來表示,理想的量子線路中的基本的邏輯門可由復(fù)數(shù)正交矩陣表示。由于對(duì)于確定的理想量子線路存在一系列有序確定的矩陣向量運(yùn)算表示量子線路中量子態(tài)隨時(shí)間的變化,理想的量子線路的量子態(tài)隨時(shí)間變化的情況可通過矩陣運(yùn)算來模擬。通常的模擬方法包括將同一時(shí)刻量子線路中的基本邏輯門的表示矩陣通過克洛列克積相乘,然后用乘的結(jié)果作用于表示此時(shí)刻量子線路中量子態(tài)的列向量。此方法的缺陷在于當(dāng)量子線路中的量子元的個(gè)數(shù)增長時(shí),基本邏輯門的表示矩陣通過克洛列克積相乘后得到的矩陣的階數(shù)以指數(shù)形式增長導(dǎo)致大規(guī)模的矩陣運(yùn)算,使運(yùn)算緩慢效率低下。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種高效量子線路仿真方法與系統(tǒng)。該方法包括利用克洛列克積的一種高效的計(jì)算方式對(duì)大規(guī)模量子線路進(jìn)行高效的仿真,同時(shí)通過估計(jì)量子控制門中目標(biāo)量子元的位置并提取量子控制門中目標(biāo)量子元對(duì)量子控制門進(jìn)行高效的仿真。從而極大提高量子線路的設(shè)計(jì)效率。
實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案是這樣的一種對(duì)大規(guī)模量子線路進(jìn)行高效仿真的方法,該方法包括1.一種利用了克洛列克積的一種高效的計(jì)算方式對(duì)大規(guī)模量子線路進(jìn)行高效仿真的方法,該方法至少包括以下步驟A.輸入量子態(tài)的表示列向量根據(jù)最后一個(gè)邏輯門的列數(shù)進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)邏輯門的列數(shù);B.矩陣化后的矩陣左乘最后一個(gè)邏輯門;C.將左乘的結(jié)果列向量化;D.將列向量化的結(jié)果根據(jù)最后一個(gè)邏輯門的列數(shù)進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)邏輯門的列數(shù);E.將矩陣化后的矩陣分為行數(shù)與原來相同列數(shù)等于倒數(shù)第二個(gè)邏輯門的列數(shù)的矩陣,將分好的矩陣都右乘倒數(shù)第二個(gè)邏輯門的轉(zhuǎn)置;F.將右乘的結(jié)果列向量化;G.將列向量化的結(jié)果根據(jù)最后一個(gè)邏輯門的列數(shù)乘以倒數(shù)第二個(gè)邏輯門的列數(shù)的結(jié)果進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)邏輯門的列數(shù)乘以倒數(shù)第二個(gè)邏輯門的列數(shù);H.將矩陣化后的矩陣分為行數(shù)與原來相同列數(shù)等于倒數(shù)第三個(gè)邏輯門的列數(shù)的矩陣,將分好的矩陣都右乘倒數(shù)第三個(gè)邏輯門的轉(zhuǎn)置;I.將右乘的結(jié)果列向量化;J.將剩下的每一個(gè)邏輯門按G,H,I的方法進(jìn)行操作,使矩陣化后的矩陣的行數(shù)等于前面所有邏輯門的列數(shù)的連乘,使分好的矩陣行數(shù)與原來相同列數(shù)等于進(jìn)行操作的邏輯門的列數(shù)。
2.當(dāng)一個(gè)量子元不被邏輯門作用時(shí),將該量子元作為被單位矩陣所代表的邏輯門作用。
3.當(dāng)一個(gè)量子元被單位矩陣作用時(shí),將該單位矩陣的列數(shù)作為當(dāng)前邏輯門的列數(shù),將下一個(gè)邏輯門作用于量子態(tài)。
設(shè)量子線路的輸入量子態(tài)為x,k各量子元對(duì)應(yīng)的k個(gè)表示矩陣是A1A2:::Ak.線路的輸出為(A1NA2N:::NAk)x(其中N表示克洛列克積).設(shè)r1;r2;:::;rk為邏輯門A1;A2;:::Ak的維數(shù)。
定義列向量化為將s£t維矩陣X=x11x12:::x1tx21x22:::x2t::::::::::::xs1xs2:::xst---(1)]]>化為n維列向量X1=(x11;x21;:::;xs1;x12;x22;:::;xs2;:::;x1t;x2t;:::;xst)TT表示矩陣轉(zhuǎn)置。
定義t行矩陣化為將列向量X1=(x11;x21;:::;xs1;x12;x22;:::;xs2;:::;x1t;x2t;:::;xst)T化為有s行的矩陣
X=x11x12:::x1tx21x22:::x2t::::::::::::xs1xs2:::xst---(2)]]>算法如下1.做輸入量子態(tài)x的rk行矩陣化。將結(jié)果記為Xk。
2.做 (*為普通矩陣乘法)。
3.將 的結(jié)果列向量化。將結(jié)果記為xk。
4.做量子態(tài)xk的rk行矩陣化。將結(jié)果記為 5.將 分割為 個(gè)小的矩陣,分別記為 。其中每一個(gè)小的矩陣有rk行 列。第一個(gè)小的矩陣是矩陣 的開始的 列。第二個(gè)小的矩陣是矩陣 的第二個(gè) 列。依次。直到最后一個(gè)小的矩陣是矩陣 的最后的 列。將每一個(gè)小的矩陣右乘 的轉(zhuǎn)置。
6.將第5步的結(jié)果列向量化。將結(jié)果記為 7.做量子態(tài) 的 行矩陣化。將結(jié)果記為 8.將 分割為 個(gè)小的矩陣。將每一個(gè)小的矩陣右乘 的轉(zhuǎn)置。
9.將第5步的結(jié)果列向量化。將結(jié)果記為 10.重復(fù)第6,7,8步。做量子態(tài)xi的 行矩陣化。將 分割為 個(gè)小的矩陣。
11.當(dāng)i=2,不再分割X1,直接將其右乘A1的轉(zhuǎn)置。將右乘的結(jié)果列向量。當(dāng)一個(gè)量子元不被邏輯門作用時(shí),將該量子元作為被單位矩陣所代表的邏輯門作用,單位矩陣的行數(shù)與列數(shù)都為2。
當(dāng)一個(gè)量子元被單位矩陣所代表的邏輯門作用時(shí),在計(jì)算這個(gè)量子元時(shí)跳過第6,7,8步,在計(jì)算下一個(gè)量子元時(shí),將上一個(gè)量子元的邏輯門的維數(shù)作為2。
4. 一種對(duì)量子控制門進(jìn)行仿真的方法,該方法包括將控制門中所有控制位的量子元的值置為一,將控制門中所有目標(biāo)位的量子元的值置為零或一,將輸出量子態(tài)中值發(fā)生變動(dòng)的位作為量子控制門的目標(biāo)量子元的位置;
將控制門中所有目標(biāo)量子元的位置的值按照目標(biāo)位的先后順序提出,將作用于目標(biāo)位的邏輯門作用于提出的目標(biāo)量子元的值。
還包括A,將提出的目標(biāo)量子元的表示列向量根據(jù)最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù)進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù);B.將矩陣化后的矩陣左乘最后一個(gè)作用于目標(biāo)位的邏輯門;C.將左乘的結(jié)果列向量化;D.將列向量化的結(jié)果根據(jù)最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù)進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù);E.將矩陣化后的矩陣分為行數(shù)與原來相同列數(shù)等于倒數(shù)第二個(gè)作用于目標(biāo)位的邏輯門的列數(shù)的矩陣;F.將分好的矩陣都右乘倒數(shù)第二個(gè)作用于目標(biāo)位的邏輯門的轉(zhuǎn)置;G.將右乘的結(jié)果列向量化;H.將列向量化的結(jié)果根據(jù)最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù)乘以倒數(shù)第二個(gè)作用于目標(biāo)位的邏輯門的列數(shù)的結(jié)果進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù)乘以倒數(shù)第二個(gè)作用于目標(biāo)位的邏輯門的列數(shù);I.將矩陣化后的矩陣分為行數(shù)與原來相同列數(shù)等于倒數(shù)第三個(gè)作用于目標(biāo)位的邏輯門的列數(shù)的矩陣;J.將分好的矩陣都右乘倒數(shù)第三個(gè)作用于目標(biāo)位的邏輯門的轉(zhuǎn)置;K.將右乘的結(jié)果列向量化;L.將剩下的每一個(gè)作用于目標(biāo)位的邏輯門按此方法進(jìn)行操作,使矩陣化后的矩陣的行數(shù)等于前面所有作用于目標(biāo)位的邏輯門的列數(shù)的連乘,使分好的矩陣行數(shù)與原來相同列數(shù)等于進(jìn)行操作的作用于目標(biāo)位的邏輯門的列數(shù)。
將控制門中所有控制位的量子元的值置為一,將控制門中所有目標(biāo)位的量子元的值置為零或一,將輸出量子態(tài)中值發(fā)生變動(dòng)的位作為量子控制門的目標(biāo)量子元的位置。
設(shè)量子線路中有n個(gè)量子元,控制門中有k個(gè)目標(biāo)量子元,n-k個(gè)控制量子元,k個(gè)目標(biāo)量子元分別為i1;i2;:::;ik,則量子控制門的目標(biāo)量子元的位置為2ik2n_ik;(2ik-1)2n -ik
將量子控制門的輸入量子態(tài)的列向量表示中的目標(biāo)量子元的位置上的元素提出組成新的列向量y,設(shè)R1;R2;:::;Rk為作用于目標(biāo)位的邏輯門U1;U2;:::Uk的維數(shù),利用上述的第1-10步的方法計(jì)算以y作為輸入量子態(tài),U1;U2;:::Uk作為對(duì)應(yīng)邏輯門的量子線路的輸出量子態(tài)。將輸出量子態(tài)代回目標(biāo)量子元的位置,得到量子控制門的總的輸出量子態(tài)。
圖1為Hadmard門,輸入量子態(tài)x為x=[1;0;0;0;0;0;0;0]T(T為矩陣的轉(zhuǎn)置)圖2為C-NOT門,輸入量子態(tài)x為x=
T(T為矩陣的轉(zhuǎn)置)具體實(shí)施方式
例一,說明如何利用克洛列克積的高效計(jì)算仿真量子線路。對(duì)于圖一的量子線路,量子計(jì)算方面的專業(yè)人員可知圖中H為Hadmard門,輸入量子態(tài)x為x=[1;0;0;0;0;0;0;0]T(T為矩陣的轉(zhuǎn)置),做輸入量子態(tài)x的2行矩陣化,其結(jié)果X3為X3=10000000,---(3)]]>做 將 的結(jié)果列向量化。將結(jié)果記為x3。做量子態(tài)x3的2行矩陣化。將結(jié)果記為X2。
將X2分割為2個(gè)小的矩陣,分別記為X11;X21。
X21000,---(6)]]>
將X11右乘HT,X21右乘HT。將X11與X21列向量化,得x2。x2=
T。
做量子態(tài)x2的4行矩陣化。將結(jié)果記為X1。
X1=0:500:500:500:50---(7)]]>將X1右乘HT的結(jié)果向量化,最終結(jié)果為[8-0:5;8-0:5;8-0:5;8-0:5;8-0:5;8-0:5;8-0:5;8-0:5]T。例二,說明對(duì)量子控制門進(jìn)行仿真的方法。對(duì)于圖2的量子線路,量子計(jì)算方面的專業(yè)人員可知圖中為C-NOT門,輸入量子態(tài)x為x=
T(T為矩陣的轉(zhuǎn)置),量子控制門的目標(biāo)量子元的位置為3與4,將目標(biāo)量子元的位置3與4中元素提出形成列向量[1;0]T,將NOT門作用于[1;0]T,得結(jié)果為
T,將結(jié)果帶回原位置的總的結(jié)果為
T。
權(quán)利要求
1.一種利用了克洛列克積的一種高效的計(jì)算方式對(duì)大規(guī)模量子線路進(jìn)行高效仿真的方法,該方法包括A.輸入量子態(tài)的表示列向量根據(jù)最后一個(gè)邏輯門的列數(shù)進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)邏輯門的列數(shù);B.矩陣化后的矩陣左乘最后一個(gè)邏輯門;C.將左乘的結(jié)果列向量化;D.將列向量化的結(jié)果根據(jù)最后一個(gè)邏輯門的列數(shù)進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)邏輯門的列數(shù);E.將矩陣化后的矩陣分為行數(shù)與原來相同列數(shù)等于倒數(shù)第二個(gè)邏輯門的列數(shù)的矩陣,將分好的矩陣都右乘倒數(shù)第二個(gè)邏輯門的轉(zhuǎn)置;F.將右乘的結(jié)果列向量化;G.將列向量化的結(jié)果根據(jù)最后一個(gè)邏輯門的列數(shù)乘以倒數(shù)第二個(gè)邏輯門的列數(shù)的結(jié)果進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)邏輯門的列數(shù)乘以倒數(shù)第二個(gè)邏輯門的列數(shù);H.將矩陣化后的矩陣分為行數(shù)與原來相同列數(shù)等于倒數(shù)第三個(gè)邏輯門的列數(shù)的矩陣,將分好的矩陣都右乘倒數(shù)第三個(gè)邏輯門的轉(zhuǎn)置;I.將右乘的結(jié)果列向量化;J.將剩下的每一個(gè)邏輯門按G,H,I的方法進(jìn)行操作,使矩陣化后的矩陣的行數(shù)等于前面所有邏輯門的列數(shù)的連乘,使分好的矩陣行數(shù)與原來相同列數(shù)等于進(jìn)行操作的邏輯門的列數(shù)。
2.按照權(quán)利要求1的方法,還包括當(dāng)一個(gè)量子元不被邏輯門作用時(shí),將該量子元作為被單位矩陣所代表的邏輯門作用。
3.按照權(quán)利要求2的方法,還包括當(dāng)一個(gè)量子元被單位矩陣作用時(shí),將該單位矩陣的列數(shù)作為當(dāng)前邏輯門的列數(shù),將下一個(gè)邏輯門作用于量子態(tài)。
4.一種對(duì)量子控制門進(jìn)行仿真的方法,該方法包括將控制門中所有控制位的量子元的值置為一,將控制門中所有目標(biāo)位的量子元的值置為零或一,將輸出量子態(tài)中值發(fā)生變動(dòng)的位作為量子控制門的目標(biāo)量子元的位置;將控制門中所有目標(biāo)量子元的位置的值按照目標(biāo)位的先后順序提出,將作用于目標(biāo)位的邏輯門作用于提出的目標(biāo)量子元的值。
5.按照權(quán)利要求4的方法,還包括A.將提出的目標(biāo)量子元的表示列向量根據(jù)最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù)進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù);B.將矩陣化后的矩陣左乘最后一個(gè)作用于目標(biāo)位的邏輯門;C.將左乘的結(jié)果列向量化;D.將列向量化的結(jié)果根據(jù)最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù)進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù);E.將矩陣化后的矩陣分為行數(shù)與原來相同列數(shù)等于倒數(shù)第二個(gè)作用于目標(biāo)位的邏輯門的列數(shù)的矩陣;F.將分好的矩陣都右乘倒數(shù)第二個(gè)作用于目標(biāo)位的邏輯門的轉(zhuǎn)置;G.將右乘的結(jié)果列向量化;H.將列向量化的結(jié)果根據(jù)最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù)乘以倒數(shù)第二個(gè)作用于目標(biāo)位的邏輯門的列數(shù)的結(jié)果進(jìn)行矩陣化,使矩陣化后的矩陣的行數(shù)等于最后一個(gè)作用于目標(biāo)位的邏輯門的列數(shù)乘以倒數(shù)第二個(gè)作用于目標(biāo)位的邏輯門的列數(shù);I.將矩陣化后的矩陣分為行數(shù)與原來相同列數(shù)等于倒數(shù)第三個(gè)作用于目標(biāo)位的邏輯門的列數(shù)的矩陣;J.將分好的矩陣都右乘倒數(shù)第三個(gè)作用于目標(biāo)位的邏輯門的轉(zhuǎn)置;K.將右乘的結(jié)果列向量化;L.將剩下的每一個(gè)作用于目標(biāo)位的邏輯門按此方法進(jìn)行操作,使矩陣化后的矩陣的行數(shù)等于前面所有作用于目標(biāo)位的邏輯門的列數(shù)的連乘,使分好的矩陣行數(shù)與原來相同列數(shù)等于進(jìn)行操作的作用于目標(biāo)位的邏輯門的列數(shù)。
全文摘要
公開一種算法,用于量子線路的仿真。該算法利用了克洛列克積的一種高效的計(jì)算方式對(duì)大規(guī)模量子線路進(jìn)行高效的仿真。該算法同時(shí)通過估計(jì)量子控制門中目標(biāo)量子元的位置并提取量子控制門中目標(biāo)量子元對(duì)量子控制門進(jìn)行高效的仿真。
文檔編號(hào)G06F17/50GK1959708SQ20051003092
公開日2007年5月9日 申請(qǐng)日期2005年11月1日 優(yōu)先權(quán)日2005年11月1日
發(fā)明者沈詩昊 申請(qǐng)人:沈詩昊