JP4758965B2 - ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体 - Google Patents
ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP4758965B2 JP4758965B2 JP2007220086A JP2007220086A JP4758965B2 JP 4758965 B2 JP4758965 B2 JP 4758965B2 JP 2007220086 A JP2007220086 A JP 2007220086A JP 2007220086 A JP2007220086 A JP 2007220086A JP 4758965 B2 JP4758965 B2 JP 4758965B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- unit
- list
- block
- diagonal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
2n×2nのユニタリ行列を分解する手法として、KAK分解と呼ばれる行列分解の枠組みを用いる手法がある(例えば、特許文献1、非特許文献1等参照)。この手法では、2n×2nの特殊ユニタリ行列G∈SU(2n)を、行列K1,K2∈K(2n)と、2×2のユニタリ行列をブロックとするブロック対角行列Aとの積G=K1・A・K2に分解する(図23(a)参照)。なお、K(2n)は、2n-1×2n-1の特殊ユニタリ行列の集合SU(2n-1)と2n-1×2n-1の特殊ユニタリ行列の集合SU(2n-1)との直和からなる行列の集合である。
また、dn×dn(d≧2)のユニタリ行列を分解する手法として、コサインサイン(Cosine-Sine)分解を用いる手法がある(例えば、非特許文献3等参照)。
まず、本形態で使用する記号を以下のように定義する。
A*:行列Aの複素共役転置行列
I:単位行列
0:成分が0の行列
diag(a,b,c,d):対角成分がa,b,c,dの順に並んだ対角行列
∈:左辺が右辺の集合の元
‖・‖:・のノルム
K(dm):特殊ユニタリ行列の集合SU(p)と特殊ユニタリ行列の集合SU(q)との直和(ただし、p+q=dm)からなる行列の集合
floor(α):α以下の最大の整数
ceil(α):α以上の最小の整数
B[α,β]:行列Bのα行−β列の要素
次に、本形態の原理について説明する。
本形態は、KAK分解の性質を利用して行列分解過程を実行する形態である。
=ψ(G*) ・G((1)の関係より)
=ψ(M*・K*) ・K・M
=ψ(M*)・ψ(K*) ・K・M
=M・K*・K・M((1)の関係より)
=M2(Kがユニタリ行列でありK*・Kが単位行列となるため)
すなわち、d≧3であっても、行列GからG=K・M,X=M2を満たす行列Xを求めることは容易である。この点、従来手法1と相違する。また、この行列Xをブロック対角化する行列Pを生成し(対角化行列生成過程)、当該行列Pの複素共役転置行列P*を生成し(第2複素共役転置行列生成過程)、ブロック対角行列B=P*・X・Pを求める(第2行列積演算過程)ことも容易である。また、行列Pはユニタリ行列となりP・P*=Iを満たし、B=P*・X・P=P*・M2・P=(P*・M・P)(P*・M・P)=Y2となるから、ブロック対角行列Bからブロック対角行列Yへは規則的に変換できる(ブロック対角行列変換過程)。さらに、求められたブロック対角行列Yと行列Pと複素共役転置行列P*とからM=P・Y・P*の演算によって行列Mを生成し(第3行列積演算過程)、当該行列Mの複素共役転置行列M*を生成し(第3複素共役転置行列生成過程)、行列Gと複素共役転置行列M*とからK=G・M*の演算によって行列Kを生成することも容易である(第4行列積演算過程)。さらに、K1=K・Pの演算を行って行列K1を生成することも容易である(第5行列積演算過程)。
図5は、第1実施形態におけるユニタリ行列分解装置100の構成を例示したブロック図である。
CPU110は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置140のユニタリ行列分解プログラム領域141に格納されているユニタリ行列分解プログラムを、RAM150のユニタリ行列分解プログラム領域151に書き込む。同様にCPU110は、補助記憶装置140のデータ領域142に格納されている分解対象のユニタリ行列等のデータを、RAM150のデータ領域152に書き込む。そして、このユニタリ行列分解プログラムやデータが書き込まれたRAM150上のアドレスがCPU110のレジスタ113に格納される。CPU110の制御部111は、レジスタ113に格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM150上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部112に順次実行させ、その演算結果をレジスタ113に格納していく。
次に本形態におけるユニタリ行列分解装置100の処理について説明する。
図7は、行列分解過程/ステップS5(処理1)の詳細を説明するためのフローチャートである。
図8は、対角化行列生成過程/ステップS14の詳細を例示するためのフローチャートである。また、図9は図8におけるステップS32の詳細を、図10は図8におけるステップS33の詳細をそれぞれ説明するためのフローチャートである。
リストE1=[[虚の固有値,対応する固有ベクトル],・・・]
リストE2=[[実の固有値,対応する固有ベクトル],・・・]
となるリストE1,E2を一時記憶部190に格納する(ステップS31)。
V1[2ck‐1]=uk+ρ・uk
V1[2ck]=uk‐ρ・uk
を計算し、これらをリストV1の要素として一時記憶部190に格納する(ステップS43)。その後、この例の第1の要素生成部412は、リストE1に、まだ調べていない正の固有値が存在するか否かを判断し(ステップS44)、存在すればステップS41以降の処理に戻り、存在しなければステップS32(図9)の処理を終了する。なお、この例の処理の場合、V1は複素共役な固有値のペアに対応するベクトルのペアを[u1+ρ・u1,u1‐ρ・u1, u2+ρ・u2,u2‐ρ・u2,・・・]と配列したリストとなる。なお、図9の例では、ステップS42において、リストE1からまだ調べていない正の固有値(符号が正の固有値)を1つ選び、対応する固有ベクトルukを抽出することとし、ステップS44において、ストE1に、まだ調べていない正の固有値が存在するか否かを判断することとしたが、ステップS42において、リストE1からまだ調べていない負の固有値(符号が負の固有値)を1つ選び、対応する固有ベクトルukを抽出することとし、ステップS44において、リストE1に、まだ調べていない負の固有値が存在するか否かを判断することとしてもよい。要は、複素共役な固有値のペアに対応する固有ベクトルukを用いればよい。
図11は、ブロック対角行列変換過程/ステップS16(処理3)の詳細を説明するためのフローチャートである。
図12は、ステップS18(処理4)の詳細を説明するためのフローチャートである。
次に、d=3,n=2の場合の本形態の実施例を説明する。
(1,-1,1,-1,1,-1,1,-1,1)
となる。
B=diag(-1,-1,-1,-1,1,1,1,1)
となる。これをステップS16で行列Yに書き換えると、
次に、本発明の第2実施形態について説明する。
第1実施形態と同じであるため説明を省略する。
本形態のユニタリ行列分解装置もCPUにユニタリ行列分解プログラムが読み込まれることによって構成されるものである。
次に本形態におけるユニタリ行列分解装置200の処理について説明する。
図19は、本形態の行列分解過程/ステップS104の詳細(処理11)の詳細を説明するためのフローチャートである。
図20は、図19のステップS111の詳細を説明するためのフローチャートである。
ブロックG12: q×(dn-q)
ブロックG21:(dn-q)×q
ブロックG22:(dn-q)×(dn-q)
のサイズで4分割し、ブロックG11, G12, G21, G22を出力する(ステップS122)。
Claims (6)
- プログラムがコンピュータに読み込まれることでそれぞれ構成される記憶部と処理設定部と行列分解部と行列リスト更新部と制御部とを有するユニタリ行列分解装置で実行され、量子コンピュータ上の演算を表すサイズがdn×dn(d≧3,n≧2)の特殊ユニタリ行列SU(dn)を、量子コンピュータのための量子回路に対応する疎行列の積に分解するユニタリ行列分解方法であって、
入力された特殊ユニタリ行列G’∈SU(dn)を行列リストの要素として上記記憶部に格納する行列格納過程と、
上記処理設定部が、上記記憶部に格納された行列リストの要素からサイズがdm×dm(n≧m≧2)の行列を読み出し、それを行列Gとする処理設定過程と、
上記行列分解部が、m/2以下の最大の整数又はm/2以上の最小の整数をtとし、d t /2以上の最小の整数をc 1 とし、d t /2以下の最大の整数をc 2 とし、pをp=c1・dm-tとし、qをq=c2・dm-tとし、p×pの特殊ユニタリ行列の集合SU(p)とq×qの特殊ユニタリ行列の集合SU(q)との直和からなる行列の集合をK(dm)とした場合における、上記処理設定過程で読み出された上記行列Gから、G=K 1 ・A 1 ・K 2 を満たす行列K1,K2∈K(dm)と、dr×dr(r≧1)のユニタリ行列をブロックとするブロック対角行列A1とを計算する行列分解過程と、
上記行列リスト更新部が、上記行列分解過程で計算された上記行列K1の部分行列K11∈SU(p),K12∈SU(q)と、上記行列分解過程で計算された上記行列K2の部分行列K21∈SU(p),K22∈SU(q)と、上記行列分解過程で計算された上記ブロック対角行列A1のdr×drの対角ブロックのユニタリ行列である部分行列とを、上記行列リストの要素として上記記憶部に格納し、これらの部分行列に対応する上記処理設定過程で読み出された上記行列Gを上記記憶部に格納された上記行列リストの要素から排除する行列リスト更新過程と、
上記制御部が、上記処理設定過程と上記行列分離過程と上記行列リスト更新過程とを、上記記憶部に格納された行列リストの要素としてサイズがd×dよりも大きな行列が存在する限り繰り返し実行させる制御過程と、
を有し、
上記行列分解過程は、
上記行列分解部の第1行列積演算部が、上記処理設定過程で読み出された上記行列Gとその複素共役転置行列G*とを用い、σを1と-1とが対角成分に交互に並ぶdt×dtの対角行列σ=diag(1,-1,1,-1,...)とし、S=dm-tとし、IをS×Sの単位行列として、単位行列Iと対角行列σとのテンソル積を計算することにより行列ρを計算し、行列X=ρ・G*・ρ・Gを生成する第1行列積演算過程と、
上記行列分解部の対角化行列生成部が、上記第1行列積演算過程で生成された上記行列Xを用い、上記行列Xをブロック対角化する行列Pを生成する対角化行列生成過程と、
上記行列分解部の第2行列積演算部が、上記第1行列積演算過程で生成された上記行列Xと上記対角化行列生成過程で生成された上記行列Pとその複素共役転置行列P*とを用い、B=P*・X・Pの演算によってブロック対角行列Bを生成する第2行列積演算過程と、
上記行列分解部のブロック対角行列変換部が、上記第2行列積演算過程で生成された上記ブロック対角行列Bの対角要素が1でない場合に、当該要素を[1,1]成分とする上記ブロック対角行列Bの4×4部分行列
上記行列分解部の第3行列積演算部が、上記ブロック対角行列変換過程で計算されたブロック対角行列Yと上記対角化行列生成過程で生成された上記行列Pと上記複素共役転置行列P*とを用い、M=P・Y・P*の演算を行って行列Mを生成する第3行列積演算過程と、
上記行列分解部の第4行列積演算部が、上記処理設定過程で読み出された上記行列Gとその複素共役転置行列M*とを用い、K=G・M*の演算を行って行列Kを生成する第4行列積演算過程と、
上記行列分解部の第5行列積演算部が、上記第4行列積演算過程で生成された上記行列Kと上記対角化行列生成過程で生成された上記行列Pとを用い、K1=K・Pの演算を行って上記行列K1を生成する第5行列積演算過程と、
上記行列分解部の行列分割部が、上記対角化行列生成過程で生成された上記行列Pの複素共役転置行列P * を行列K 2 とし、上記行列YをA 1 として、上記行列K 1 と上記行列K 2 と上記行列A 1 とを出力する行列分割過程と、を有し、
上記対角化行列生成過程は、
上記対角化行列生成部の固有値・固有ベクトル算出部が、上記第1行列積演算過程で生成された上記行列Xの固有値と固有ベクトルとを算出する固有値・固有ベクトル算出過程と、
上記対角化行列生成部の第1リスト要素生成部が、上記固有値・固有ベクトル算出過程で算出された上記固有値と固有ベクトルのうち、対応する固有値が虚数である固有ベクトルuk(kは自然数)に対し、ベクトルuk+ρ・uk及びuk-ρ・ukを生成し、当該ベクトルu k +ρ・u k を奇数要素に、u k −ρ・u k を偶数要素に格納したリストV 1 を生成する第1リスト要素生成過程と、
上記対角化行列生成部の第2リスト要素生成部が、上記固有値・固有ベクトル算出過程で算出された上記固有値と固有ベクトルのうち、対応する固有値が実数である固有ベクトルukのうち、uk+ρ・uk=ukを満たす固有ベクトルukをリストW1の要素として格納し、uk-ρ・uk=-ukを満たす固有ベクトルukに対するベクトル-ukをリストW2の要素として格納し、対応する固有値が実数である固有ベクトルukについて (uk+ρ・uk)/‖uk+ρ・uk‖(‖α‖はαのノルムを示す)をリストW1及びW2の要素として格納したリストを生成する第2リスト要素生成過程と、
dが奇数である場合には、上記対角化行列生成部の行列配列部が、上記第1リスト要素生成過程で生成された上記リストV1又は上記第2リスト要素生成過程で生成された上記リストW2に属するdt-1個の要素と上記第2リスト要素生成過程で生成された上記リストW1の1個の要素とからなるdt列のベクトル列を、上記リストV1、リストW1及びリストW2の各要素をそれぞれ重複させることなく用いて上記リストV1及びリストW2のすべての要素を使い切るまで生成し、生成された各dt列のベクトル列とリストW2の残りの要素とを列方向に並べた行列を上記行列Pとして生成し、生成された上記行列Pを出力し、dが偶数である場合には、上記対角化行列生成部の行列配列部が、上記第1リスト要素生成過程で生成された上記リストV1、上記第2リスト要素生成過程で生成された上記リストW1及びリストW2の各要素をそれぞれ重複させることなく列方向に並べた行列を上記対角化行列生成過程で生成される上記行列Pとして生成する行列配列過程と、を有し、
上記行列リスト更新過程は、
上記行列リスト更新部の第1ベクトル生成部が、上記第1行列積演算過程で計算された行列上記ρの対角成分からなるベクトルの-1の要素を0に置換したベクトルτ1を生成する第1ベクトル生成過程と、
上記行列リスト更新部の第2ベクトル生成部が、上記第1行列積演算過程で計算された上記行列ρの対角成分からなるベクトルの1の要素を0に置換したベクトルτ2を生成する第2ベクトル生成過程と、
上記行列リスト更新部の第1抽出行列生成部が、上記第1ベクトル生成過程で生成された上記ベクトルτ 1 を用いて、行列T1=τ1・τ1 T(αTは転置ベクトル)を生成する第1抽出行列生成過程と、
上記行列リスト更新部の第2抽出行列生成部が、上記第2ベクトル生成過程で生成されたベクトルτ 2 を用いて、行列T2=τ2・τ2 Tを生成する第2抽出行列生成過程と、
上記行列リスト更新部の第1部分行列抽出部が、上記行列分割過程で出力された上記行列K1から、上記第1抽出行列生成過程で生成された上記行列T1の行列成分が1である行−列の要素のみを取り出した上記部分行列K11を生成する第1部分行列抽出過程と、
上記行列リスト更新部の第2部分行列抽出部が、上記行列分割過程で出力された上記行列K1から、上記第2抽出行列生成過程で生成された上記行列T2の行列成分が1である行−列の要素のみを取り出した上記部分行列K12を生成する第2部分行列抽出過程と、
上記行列リスト更新部の第3部分行列抽出部が、上記行列分割過程で出力された上記行列K2から、上記第1抽出行列生成過程で生成された上記行列T1の行列成分が1である行−列の要素のみを取り出した上記部分行列K21を生成する第3部分行列抽出過程と、
上記行列リスト更新部の第4部分行列抽出部が、上記行列分割過程で出力された上記行列K2から、上記第2抽出行列生成過程で生成された上記行列T2の行列成分が1である行−列の要素のみを取り出した上記部分行列K22を生成する第4部分行列抽出過程と、を有する、
ことを特徴とするユニタリ行列分解方法。 - プログラムがコンピュータに読み込まれることでそれぞれ構成される記憶部と処理設定部と行列分解部と行列リスト更新部と制御部とを有するユニタリ行列分解装置で実行され、量子コンピュータ上の演算を表すサイズがdn×dn(d≧3,n≧2)の特殊ユニタリ行列SU(dn)を、量子コンピュータのための量子回路に対応する疎行列の積に分解するユニタリ行列分解方法であって、
入力された特殊ユニタリ行列G’∈SU(dn)を行列リストの要素として上記記憶部に格納する行列格納過程と、
上記処理設定部が、上記記憶部に格納された行列リストの要素からサイズがdm×dm(n≧m≧2)の行列を読み出し、それを行列Gとする処理設定過程と、
上記行列分解部が、m/2以下の最大の整数又はm/2以上の最小の整数をtとし、d t /2以上の最小の整数をc 1 とし、d t /2以下の最大の整数をc 2 とし、pをp=c1・dm-tとし、qをq=c2・dm-tとし、p×pの特殊ユニタリ行列の集合SU(p)とq×qの特殊ユニタリ行列の集合SU(q)との直和からなる行列の集合をK(dm)とした場合における、上記処理設定過程で読み出された上記行列Gから、G=K 1 ・A 1 ・K 2 を満たす行列K1,K2∈K(dm)と、dr×dr(r≧1)のユニタリ行列をブロックとするブロック対角行列A1とを計算する行列分解過程と、
上記行列リスト更新部が、上記行列分解過程で計算された上記行列K1の部分行列K11∈SU(p),K12∈SU(q)と、上記行列分解過程で計算された上記行列K2の部分行列K21∈SU(p),K22∈SU(q)と、上記行列分解過程で計算された上記ブロック対角行列A1のdr×drの対角ブロックのユニタリ行列である部分行列とを、上記行列リストの要素として上記記憶部に格納し、これらの部分行列に対応する上記処理設定過程で読み出された上記行列Gを上記記憶部に格納された上記行列リストの要素から排除する行列リスト更新過程と、
上記制御部が、上記処理設定過程と上記行列分離過程と上記行列リスト更新過程とを、上記行列リストの要素としてサイズがd×dよりも大きな行列が存在する限り繰り返し実行させる制御過程と、
を有し、
上記行列分解過程は、
上記行列分解部のコサインサイン分解部が、上記処理設定過程で読み出されたdm×dmの上記行列Gを、q×qのブロックG11と、q×pのブロックG12と、p×qのブロックG21と、p×pのブロックG22とに分割して各ブロックについて行列分解を行い、上記行列Gから4つの対角行列D11,D12,D21,D22と正方行列K 11 , K 12 , K 21 , K 22 とを抽出するコサインサイン分解過程と、
上記行列分解部のブロック抽出部が、上記コサインサイン分解過程で抽出された上記4つの対角行列D11,D12,D21,D22の各j行j列目の対角成分D11[j,j],D12[j,j],D21[j,j],D22[j,j]を要素とする2×2の行列Rjを生成し、当該行列Rjを出力するブロック抽出過程と、
dが偶数である場合には、上記行列分解部のブロック対角化部が、重複しないようにd/2個選択された上記ブロック抽出過程で生成された上記行列Rjをブロックとしたd×dのブロック対角行列と、2×2の単位行列と、をブロックとするブロック対角行列A1を生成し、dが奇数である場合には、上記ブロック対角化部が、ηをdt/2以下の最大の整数とした場合における上記ブロック抽出過程で生成されたη個の上記行列Riと1つの1とを対角成分に配置したdt×dtのユニタリ行列をブロックとするブロック対角行列A1を生成するブロック対角化過程と、
を有し、
上記コサインサイン分解過程は、
上記コサインサイン分解部のブロック分割部が、上記処理設定過程で読み出された上記行列Gから
上記コサインサイン分解部の特異値分割部が、上記ブロック分割過程で生成された上記ブロックG 11 の特異値分解を行うことでG 11 =K 11 ・D 11 ・K 21 を満たす上記正方行列K 11 , K 21 とd 1 , d 2 , …, d q (1>d 1 ≧d 2 ≧d 3 ≧…≧d q >0)を対角成分とする上記対角行列D 11 =diag (d 1 , d 2 , …, d q )とを生成し、さらに上記対角行列D 11 を用いて上記対角行列D 22 =D 11 を生成する特異値分割過程と、
上記コサインサイン分解部のアークコサイン部が、上記特異値分割過程で生成された上記対角行列D 11 の各対角成分d 1 , d 2 , …, d q に対する角度φ k = arccos d k (0≦φ k <π, k =1,2,…,q) を計算するアークコサイン過程と、
上記コサインサイン分解部の第1ブロック算出部が、上記アークコサイン過程で計算された上記角度φ k (k = 1, 2,…, q)より、上記対角行列D 12 = diag(sinφ 1 , sinφ 2 , …, sinφ q )を算出し、さらに上記対角行列D 12 を用いて上記対角行列D 21 =-D 12 を計算する第1ブロック算出過程と、
上記コサインサイン分解部の第2ブロック算出部が、上記第1ブロック算出過程で計算された上記対角行列D 12 , D 21 の複素共役転置行列D 12 * , D 21 * と、上記ブロック分割過程で生成された上記ブロックG 12 , G 21 と、上記特異値分割過程で生成された上記正方行列K 11 の複素共役転置行列K 11 * とから、K 22 =D 12 * ・K 11 * ・G 12 及びK 12 =G 21 ・D 21 * によって上記正方行列K 22 , K 12 を算出する第2ブロック算出過程と、を有する、
ことを特徴とするユニタリ行列分解方法。 - プログラムがコンピュータに読み込まれることでそれぞれ構成される記憶部と処理設定部と行列分解部と行列リスト更新部と制御部とを有し、量子コンピュータ上の演算を表すサイズがdn×dn(d≧3,n≧2)の特殊ユニタリ行列SU(dn)を、量子コンピュータのための量子回路に対応する疎行列の積に分解するユニタリ行列分解装置であって、
上記記憶部は、入力された特殊ユニタリ行列G’∈SU(dn)を行列リストの要素として格納するように構成され、
上記処理設定部は、上記記憶部に格納された行列リストの要素からサイズがdm×dm(n≧m≧2)の行列を読み出し、それを行列Gとするように構成され、
上記行列分解部は、m/2以下の最大の整数又はm/2以上の最小の整数をtとし、d t /2以上の最小の整数をc 1 とし、d t /2以下の最大の整数をc 2 とし、pをp=c1・dm-t<(d-1)・dm-1を満たす整数とし、qをq=c2・dm-t≦p, 2・q≦dmを満たす整数とし、p×pの特殊ユニタリ行列の集合SU(p)とq×qの特殊ユニタリ行列の集合SU(q)との直和からなる行列の集合をK(dm)とした場合における、上記処理設定部で読み出された上記行列Gから、G=K 1 ・A 1 ・K 2 を満たす行列K1,K2∈K(dm)と、dr×dr(r≧1)のユニタリ行列をブロックとするブロック対角行列A1とを計算するように構成され、
上記行列リスト更新部は、上記行列分解部で計算された上記行列K1の部分行列K11∈SU(p),K12∈SU(q)と、上記行列分解部で計算された上記行列K2の部分行列K21∈SU(p),K22∈SU(q)と、上記行列分解部で計算された上記ブロック対角行列A1の対角ブロックのdr×drのユニタリ行列である部分行列とを、上記行列リストの要素として上記記憶部に格納し、これらの部分行列に対応する上記処理設定過程で読み出された上記行列Gを上記記憶部に格納された上記行列リストの要素から排除するように構成され、
上記制御部は、上記処理設定部の処理と上記行列分離部の処理と上記行列リスト更新部の処理とを、上記記憶部に格納された行列リストの要素としてサイズがd×dよりも大きな行列が存在する限り繰り返し実行させる制御を行うように構成され、
上記行列分解部は、
上記処理設定部で読み出された上記行列Gとその複素共役転置行列G * とを用い、σを1と-1とが対角成分に交互に並ぶd t ×d t の対角行列σ=diag(1,-1,1,-1,...)とし、S=d m-t とし、IをS×Sの単位行列として、単位行列Iと対角行列σとのテンソル積を計算することにより行列ρを計算し、行列X=ρ・G * ・ρ・Gを生成する第1行列積演算部と、
上記第1行列積演算部で生成された上記行列Xを用い、上記行列Xをブロック対角化する行列Pを生成する対角化行列生成部と、
上記第1行列積演算部で生成された上記行列Xと上記対角化行列生成部で生成された上記行列Pとその複素共役転置行列P * とを用い、B=P * ・X・Pの演算によってブロック対角行列Bを生成する第2行列積演算部と、
上記第2行列積演算部で生成された上記ブロック対角行列Bの対角要素が1でない場合に、当該要素を[1,1]成分とする上記ブロック対角行列Bの4×4部分行列
上記ブロック対角行列変換部で計算されたブロック対角行列Yと上記対角化行列生成部で生成された上記行列Pと上記複素共役転置行列P * とを用い、M=P・Y・P * の演算を行って行列Mを生成する第3行列積演算部と、
上記処理設定部で読み出された上記行列Gとその複素共役転置行列M * とを用い、K=G・M * の演算を行って行列Kを生成する第4行列積演算部と、
上記第4行列積演算部で生成された上記行列Kと上記対角化行列生成部で生成された上記行列Pとを用い、K 1 =K・Pの演算を行って上記行列K 1 を生成する第5行列積演算部と、
上記対角化行列生成部で生成された上記行列Pの複素共役転置行列P * を行列K 2 とし、上記行列YをA 1 として、上記行列K 1 と上記行列K 2 と上記行列A 1 とを出力する行列分割部と、を有し、
上記対角化行列生成部は、
上記第1行列積演算部で生成された上記行列Xの固有値と固有ベクトルとを算出する固有値・固有ベクトル算出部と、
上記固有値・固有ベクトル算出部で算出された上記固有値と固有ベクトルのうち、対応する固有値が虚数である固有ベクトルu k (kは自然数)に対し、ベクトルu k +ρ・u k 及びu k -ρ・u k を生成し、当該ベクトルu k +ρ・u k を奇数要素に、u k −ρ・u k を偶数要素に格納したリストV 1 を生成する第1リスト要素生成部と、
上記固有値・固有ベクトル算出部で算出された上記固有値と固有ベクトルのうち、対応する固有値が実数である固有ベクトルu k のうち、u k +ρ・u k =u k を満たす固有ベクトルu k をリストW 1 の要素として格納し、u k -ρ・u k =-u k を満たす固有ベクトルu k に対するベクトル-u k をリストW 2 の要素として格納し、対応する固有値が実数である固有ベクトルu k について (u k +ρ・u k )/‖u k +ρ・u k ‖(‖α‖はαのノルムを示す)をリストW 1 及びW 2 の要素として格納したリストを生成する第2リスト要素生成部と、
dが奇数である場合には、上記第1リスト要素生成部で生成された上記リストV 1 又は上記第2リスト要素生成部で生成された上記リストW 2 に属するd t -1個の要素と上記第2リスト要素生成部で生成された上記リストW 1 の1個の要素とからなるd t 列のベクトル列を、上記リストV 1 、リストW 1 及びリストW 2 の各要素をそれぞれ重複させることなく用いて上記リストV 1 及びリストW 2 のすべての要素を使い切るまで生成し、生成された各d t 列のベクトル列とリストW 2 の残りの要素とを列方向に並べた行列を上記行列Pとして生成し、生成された上記行列Pを出力し、dが偶数である場合には、上記第1リスト要素生成部で生成された上記リストV 1 、上記第2リスト要素生成部で生成された上記リストW 1 及びリストW 2 の各要素をそれぞれ重複させることなく列方向に並べた行列を上記対角化行列生成部で生成される上記行列Pとして生成する行列配列部と、を有し、
上記行列リスト更新部は、
上記第1行列積演算部で計算された行列上記ρの対角成分からなるベクトルの-1の要素を0に置換したベクトルτ 1 を生成する第1ベクトル生成部と、
上記第1行列積演算部で計算された上記行列ρの対角成分からなるベクトルの1の要素を0に置換したベクトルτ 2 を生成する第2ベクトル生成部と、
上記第1ベクトル生成部で生成された上記ベクトルτ 1 を用いて、行列T 1 =τ 1 ・τ 1 T (α T は転置ベクトル)を生成する第1抽出行列生成部と、
上記第2ベクトル生成部で生成されたベクトルτ 2 を用いて、行列T 2 =τ 2 ・τ 2 T を生成する第2抽出行列生成部と、
上記行列分割部で出力された上記行列K 1 から、上記第1抽出行列生成部で生成された上記行列T 1 の行列成分が1である行−列の要素のみを取り出した上記部分行列K 11 を生成する第1部分行列抽出部と、
上記行列分割部で出力された上記行列K 1 から、上記第2抽出行列生成部で生成された上記行列T 2 の行列成分が1である行−列の要素のみを取り出した上記部分行列K 12 を生成する第2部分行列抽出部と、
上記行列分割部で出力された上記行列K 2 から、上記第1抽出行列生成部で生成された上記行列T 1 の行列成分が1である行−列の要素のみを取り出した上記部分行列K 21 を生成する第3部分行列抽出部と、
上記行列分割部で出力された上記行列K 2 から、上記第2抽出行列生成部で生成された上記行列T 2 の行列成分が1である行−列の要素のみを取り出した上記部分行列K 22 を生成する第4部分行列抽出部と、を有する、
ことを特徴とするユニタリ行列分解装置。 - プログラムがコンピュータに読み込まれることでそれぞれ構成される記憶部と処理設定部と行列分解部と行列リスト更新部と制御部とを有し、量子コンピュータ上の演算を表すサイズがd n ×d n (d≧3,n≧2)の特殊ユニタリ行列SU(d n )を、量子コンピュータのための量子回路に対応する疎行列の積に分解するユニタリ行列分解装置であって、
上記記憶部は、入力された特殊ユニタリ行列G’∈SU(d n )を行列リストの要素として格納するように構成され、
上記処理設定部は、上記記憶部に格納された行列リストの要素からサイズがd m ×d m (n≧m≧2)の行列を読み出し、それを行列Gとするように構成され、
上記行列分解部は、m/2以下の最大の整数又はm/2以上の最小の整数をtとし、d t /2以上の最小の整数をc 1 とし、d t /2以下の最大の整数をc 2 とし、pをp=c 1 ・d m-t とし、qをq=c 2 ・d m-t とし、p×pの特殊ユニタリ行列の集合SU(p)とq×qの特殊ユニタリ行列の集合SU(q)との直和からなる行列の集合をK(d m )とした場合における、上記処理設定部で読み出された上記行列Gから、G=K 1 ・A 1 ・K 2 を満たす行列K 1 ,K 2 ∈K(d m )と、d r ×d r (r≧1)のユニタリ行列をブロックとするブロック対角行列A 1 とを計算するように構成され、
上記行列リスト更新部は、上記行列分解部で計算された上記行列K 1 の部分行列K 11 ∈SU(p),K 12 ∈SU(q)と、上記行列分解部で計算された上記行列K 2 の部分行列K 21 ∈SU(p),K 22 ∈SU(q)と、上記行列分解部で計算された上記ブロック対角行列A 1 のd r ×d r の対角ブロックのユニタリ行列である部分行列とを、上記行列リストの要素として上記記憶部に格納し、これらの部分行列に対応する上記処理設定部で読み出された上記行列Gを上記記憶部に格納された上記行列リストの要素から排除するように構成され、
上記制御部が、上記処理設定部の処理と上記行列分離部の処理と上記行列リスト更新部の処理とを、上記行列リストの要素としてサイズがd×dよりも大きな行列が存在する限り繰り返し実行させる制御を行うように構成され、
上記行列分解部は、
上記処理設定部で読み出されたd m ×d m の上記行列Gを、q×qのブロックG 11 と、q×pのブロックG 12 と、p×qのブロックG 21 と、p×pのブロックG 22 とに分割して各ブロックについて行列分解を行い、上記行列Gから4つの対角行列D 11 ,D 12 ,D 21 ,D 22 と正方行列K 11 , K 12 , K 21 , K 22 とを抽出するコサインサイン分解部と、
上記コサインサイン分解部で抽出された上記4つの対角行列D 11 ,D 12 ,D 21 ,D 22 の各j行j列目の対角成分D 11 [j,j],D 12 [j,j],D 21 [j,j],D 22 [j,j]を要素とする2×2の行列R j を生成し、当該行列R j を出力するブロック抽出部と、
dが偶数である場合には、重複しないようにd/2個選択された上記ブロック抽出部で生成された上記行列R j をブロックとしたd×dのブロック対角行列と、2×2の単位行列と、をブロックとするブロック対角行列A 1 を生成し、dが奇数である場合には、ηをd t /2以下の最大の整数とした場合における上記ブロック抽出部で生成されたη個の上記行列R i と1つの1とを対角成分に配置したd t ×d t のユニタリ行列をブロックとするブロック対角行列A 1 を生成するブロック対角化部と、
を有し、
上記コサインサイン分解部は、
上記処理設定部で読み出された上記行列Gから
上記ブロック分割部で生成された上記ブロックG 11 の特異値分解を行うことでG 11 =K 11 ・D 11 ・K 21 を満たす上記正方行列K 11 , K 21 とd 1 , d 2 , …, d q (1>d 1 ≧d 2 ≧d 3 ≧…≧d q >0)を対角成分とする上記対角行列D 11 =diag (d 1 , d 2 , …, d q )とを生成し、さらに上記対角行列D 11 を用いて上記対角行列D 22 =D 11 を生成する特異値分割部と、
上記特異値分割部で生成された上記対角行列D 11 の各対角成分d 1 , d 2 , …, d q に対する角度φ k = arccos d k (0≦φ k <π, k =1,2,…,q) を計算するアークコサイン部と、
上記アークコサイン部で計算された上記角度φ k (k = 1, 2,…, q)より、上記対角行列D 12 = diag(sinφ 1 , sinφ 2 , …, sinφ q )を算出し、さらに上記対角行列D 12 を用いて上記対角行列D 21 =-D 12 を計算する第1ブロック算出部と、
上記第1ブロック算出部で計算された上記対角行列D 12 , D 21 の複素共役転置行列D 12 * , D 21 * と、上記ブロック分割部で生成された上記ブロックG 12 , G 21 と、上記特異値分割部で生成された上記正方行列K 11 の複素共役転置行列K 11 * とから、K 22 =D 12 * ・K 11 * ・G 12 及びK 12 =G 21 ・D 21 * によって上記正方行列K 22 , K 12 を算出する第2ブロック算出部と、を有する、
ことを特徴とするユニタリ行列分解装置。 - 請求項1又は2に記載のユニタリ行列分解方法の各過程をコンピュータに実行させるためのユニタリ行列分解プログラム。
- 請求項5に記載のユニタリ行列分解プログラムを格納したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007220086A JP4758965B2 (ja) | 2007-08-27 | 2007-08-27 | ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007220086A JP4758965B2 (ja) | 2007-08-27 | 2007-08-27 | ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009053933A JP2009053933A (ja) | 2009-03-12 |
JP4758965B2 true JP4758965B2 (ja) | 2011-08-31 |
Family
ID=40504962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007220086A Expired - Fee Related JP4758965B2 (ja) | 2007-08-27 | 2007-08-27 | ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4758965B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5325072B2 (ja) * | 2009-10-22 | 2013-10-23 | 日本電信電話株式会社 | 行列分解装置、行列分解方法及びプログラム |
US10545919B2 (en) | 2013-09-27 | 2020-01-28 | Google Llc | Decomposition techniques for multi-dimensional data |
WO2023148827A1 (ja) * | 2022-02-01 | 2023-08-10 | 日本電信電話株式会社 | 量子コンパイル装置、量子コンパイル方法、およびプログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4260680B2 (ja) * | 2004-05-20 | 2009-04-30 | 日本電信電話株式会社 | ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体 |
JP4260751B2 (ja) * | 2005-01-11 | 2009-04-30 | 日本電信電話株式会社 | ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体 |
-
2007
- 2007-08-27 JP JP2007220086A patent/JP4758965B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009053933A (ja) | 2009-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Glasser et al. | Neural-network quantum states, string-bond states, and chiral topological states | |
Cortese et al. | Loading classical data into a quantum computer | |
Canny et al. | A subdivision-based algorithm for the sparse resultant | |
US9477796B2 (en) | Methods for general stabilizer-based quantum computing simulation | |
JP2019079226A (ja) | 変換装置、判定装置、および計算装置 | |
CN114091363A (zh) | 基于量子算法的计算流体动力学模拟方法、装置及设备 | |
JP4521318B2 (ja) | 量子回路、量子誤り訂正装置および量子誤り訂正方法 | |
Groetzner et al. | A factorization method for completely positive matrices | |
CA3011415A1 (en) | Decoding-based method for quantum circuit optimization | |
Kerenidis et al. | Classical and quantum algorithms for orthogonal neural networks | |
Elvang et al. | All-multiplicity one-loop amplitudes in Born-Infeld electrodynamics from generalized unitarity | |
Tzeng | Split‐and‐Combine Singular Value Decomposition for Large‐Scale Matrix | |
JP4758965B2 (ja) | ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体 | |
US7249003B2 (en) | System for solving diagnosis and hitting set problems | |
JP4260751B2 (ja) | ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体 | |
Baker et al. | Direct solution of multiple excitations in a matrix product state with block Lanczos | |
Chaurra-Gutierrez et al. | QIST: One-dimensional quantum integer wavelet S-transform | |
Tateishi et al. | Continuous Analog of Accelerated OS‐EM Algorithm for Computed Tomography | |
Gelß et al. | Low-rank tensor decompositions of quantum circuits | |
US20040130956A1 (en) | Hardware quantum gate | |
Afibuzzaman et al. | Scalable nuclear density functional theory with Sky3D | |
Wang et al. | Bang-bang algorithms for quantum many-body ground states: A tensor network exploration | |
US20040059765A1 (en) | Method and relative quantum gate for running a grover's or a Deutsch-Jozsa's quantum algorithm | |
Gong et al. | Bridge the gap between fixed-length and variable-length evolutionary neural architecture search algorithms | |
Kornyak | An algorithm for decomposing representations of finite groups using invariant projections |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090729 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110325 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110329 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110509 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110524 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110603 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140610 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |