JP4260751B2 - ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体 - Google Patents

ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体 Download PDF

Info

Publication number
JP4260751B2
JP4260751B2 JP2005004418A JP2005004418A JP4260751B2 JP 4260751 B2 JP4260751 B2 JP 4260751B2 JP 2005004418 A JP2005004418 A JP 2005004418A JP 2005004418 A JP2005004418 A JP 2005004418A JP 4260751 B2 JP4260751 B2 JP 4260751B2
Authority
JP
Japan
Prior art keywords
matrix
unitary
complex conjugate
block diagonal
eigenvector
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
Application number
JP2005004418A
Other languages
English (en)
Other versions
JP2006195587A (ja
Inventor
裕美 村上
浩 関川
泰人 河野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005004418A priority Critical patent/JP4260751B2/ja
Publication of JP2006195587A publication Critical patent/JP2006195587A/ja
Application granted granted Critical
Publication of JP4260751B2 publication Critical patent/JP4260751B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Description

本発明は、任意のユニタリ行列をそれよりもサイズの小さな行列に分解するユニタリ行列分解装置、ユニタリ行列分解方法、その機能をコンピュータで実現するためのユニタリ行列分解プログラム及びそれを格納した記録媒体に関する。
量子コンピュータにおける各操作はユニタリ行列によって表現されるが、このユニタリ行列によって表現される各操作を実際の量子回路で実現するためには、このユニタリ行列を実現可能な基本ゲート等に分解しなければならない。以下、従来のユニタリ行列の分解手法について説明する。
<カルタン(Cartan)分解を用いた行列の分解手法(非特許文献1参照)>
この手法では、リー群に属する2×2の特殊ユニタリ行列G∈SU(2)を入力として、KhanejaとGlaserによるカルタン分解を用いたユニタリ群の分解の枠組み(非特許文献2)に従ってユニタリ行列を分解する。すなわち、入力行列からG=exp(g)を満たすリー代数g∈su(2)を計算し、それからカルタン分解によってgをkとmという2つの行列に分解し(g=k+m)、さらにkとmの行列の指数関数K=exp(k),M=exp(m)を計算することによりG=K・Mへ分解する。そして、これを再帰的に繰り返すことによりサイズ(行数及び列数)の小さなユニタリ行列の積まで分解する。なお、分解された行列が入力行列Gよりもサイズの小さなユニタリ行列となるためには、KとMが所定の条件を満たさなければならない。この手法ではリー代数におけるカルタン分解を用いることにより、この条件を満たしたKとMへの分解を可能としている。
<Cosine-Sine分解(非特許文献3〜5参照)>
Cosine-Sine分解は、行列の特異値分解の一種である(非特許文献3)。これを応用して、ユニタリ行列を次元の小さな行列の積に分解する技術が提案されている(非特許文献4,5)。
まず、以下のように、入力行列Gを半分のサイズの4つのブロックに分解する。
なお、Gを2×2のユニタリ行列とすると、A,A,C,S,B,Bは、2j−1×2j−1のユニタリ行列となる。さらに、C,Sは下記の形の対角行列となる。
その後、同様の分解をA,A,B,Bに対して行い、以後、Aβ,Bβが2×2の行列になるまで再帰的に同様の分解を繰り返す。
8×8の行列Gを例としてこのCosine-Sine分解を行った場合、この行列Gは、図13のようなパターンの行列の積へと分解される。なお、この図において、白い正方形は入力行列に関係なく必ず0となる成分を表し、色付きの正方形は入力の行列に依存して何らかの値となる成分を表している。
村上裕美,河野泰人,関川浩,Cartan分解を用いた量子回路の生成,第10回量子情報技術研究会(QIT10),予稿集 pp.123-126, 2004. N. Khaneja and S. Glaser, Cartan decomposition of SU(2n), constructive controllability of spin systems and universal quantum computing, Chemical Physics, Vol. 267 (Issues 1-3), pp.11-23, 2001. C. Paige and M. Wei, History and generality of the CS decomposition, Linear Algebra and its Applications, pp.303-326, 1994. M. Mottonen, J. Vartiainen, Ville Bergholm, and M. Salomaa, Quantum circuits for general multi-qubit gates, quant-ph/0404089. R. Tucci,"A Rudimentary Quantum Compiler," [online],1998年5月7日,[2004年12月28日検索],インターネット<http://jp.arxiv.org/abs/quant-ph/9805015>
しかし、カルタン分解を用いた行列の分解手法の場合、行列の指数関数とその逆関数の計算が必要となり、計算コストが非常に大きいという問題点がある。
またこの手法の場合、分解過程においてG=K・Mの分解が成り立つためには、kとmが可換(k・m=m・k)であるという条件が満たされなければならない。しかし一般のユニタリ行列においてこの性質は成り立たない。そのため、任意のユニタリ行列の分解にこの手法を適用することはできない。
また、NMR(Nuclear Magnetic Resonance)量子計算機への実装を前提とした場合、その量子計算機の構成上の利点を十分に得ることができ、結果として量子計算機を高速動作させることができる構成(Khaneja−Glaser分解の定義に合う形)が存在する(M.Nakahara, Y. Kondo, K. Hata, and S. Tanimura, "Demonstrating quantum algorithm acceleration with NMR quantum computer," インターネット<http://jp.arxiv.org/abs/quant-ph/0405050>参照)。しかし、Cosine-Sine分解による分解結果をこのようなNMR量子計算機の実装に適した構成に置き換えるのは容易なことではない。
本発明はこのような点に鑑みてなされたものであり、任意のユニタリ行列をサイズの小さな行列に低い演算コストで分解できるユニタリ行列分解装置、ユニタリ行列分解方法、その機能をコンピュータに実行させるためのユニタリ行列分解プログラム及び記録媒体を提供することを目的とする。
また、本発明の他の目的は、分解結果をNMR量子計算機の実装に適した構成に容易に置き換え可能なユニタリ行列分解装置、ユニタリ行列分解方法、その機能をコンピュータに実行させるためのユニタリ行列分解プログラム及び記録媒体を提供することである。
本発明では上記課題を解決するために、まず、分解対象であるユニタリな行列Gに対し、G=K・M(ユニタリな行列K∈κ及び行列M∈μの積),X=Mを満たす行列Xを生成する。なお、κ,μは、以下の関係を満たす集合を意味する。
次に、この行列Xをブロック対角化する行列Pを生成し、当該行列Pの複素共役転置行列Pを生成する。そして、行列Xと行列Pと複素共役転置行列PとからB=P・X・Pの演算によってブロック対角行列Bを生成し、このブロック対角行列Bを行列Mのブロック対角行列Y(=P・M・P)に変換する。なお、ブロック対角行列とは、2×2の行列が対角成分に並び、他の要素が0となる正方行列を意味する。その後、ブロック対角行列Yと行列Pと複素共役転置行列PとからM=P・Y・Pの演算によって行列Mを生成し、当該行列Mの複素共役転置行列Mを生成し、行列Gと複素共役転置行列MとからK=G・Mの演算によって行列Kを生成する。以上の処理により、行列Gは、行列K、行列P、ブロック対角行列Y及び複素共役転置行列Pの積(G=K・P・Y・P)に分解される。
ここで、これらの各処理はリー群における演算のみで容易に実行することができる。すなわち、GからG=K・M,X=Mを満たす行列Xを求めることは容易である(後述)。また、この行列Xをブロック対角化する行列Pを生成し、当該行列Pの複素共役転置行列Pを生成し、ブロック対角行列B=P・X・Pを求めることも容易である。また、行列Pはユニタリ行列となりP・P=I(Iは単位行列)を満たし、B=P・X・P=P・M・P=(P・M・P)(P・M・P)=Yとなるから、ブロック対角行列Bからブロック対角行列Yへは規則的に変換できる。さらに、求められたブロック対角行列Yと行列Pと複素共役転置行列PとからM=P・Y・Pの演算によって行列Mを生成し、当該行列Mの複素共役転置行列Mを生成し、行列Gと複素共役転置行列MとからK=G・Mの演算によって行列Kを生成することも容易である。
また、以上の処理によって生成された行列Kと行列Pとの積K’=K・P及び複素共役転置行列Pは、行列Gよりもサイズの小さな行列へ分解できる。すなわち、一般にε,ζ∈κ或いはε,ζ∈μであればε・ζ∈κとなる関係が成り立つため(性質1)、X=M∈κの関係も成り立つ。また、X=P・B・Pが成り立つが、X∈κを満たす場合、非特許文献2にあるようにP∈κ,P∈κの関係が成り立つ。また、K∈κであるため、性質1よりK’=K・P∈κの関係も成り立つ。そして、非特許文献2にあるように、κの元である行列K’,Pは、それぞれの行列に依存しない0の要素と、それぞれの行列に依存する何らかの値の要素とが市松模様に配列された行列となる。そして、行列K’,Pからこの「行列に依存する何らかの値の要素」を規則的に抜き出すことにより容易にサイズの小さな行列へ分解できる。
さらに、行列MはユニタリでありM・M=Iを満たすため、上記の演算によって求められたK=G・MとMとの積はK・M=G・M・M=Gとなるが、これはKとMとが可換でなくても成り立つ。
またさらに、上記の処理によって生成されたブロック対角行列Yは、2×2の行列が対角上に配列された行列である。このような行列は、変換行列Wとその複素共役転置行列W*とを用いることにより、容易にNMR量子計算機への実装に適した構成に変換できる(後述)。
以上のように本発明では、リー群の演算のみによってユニタリ行列をサイズの小さな行列に分解できる。そのため、カルタン分解を用いた従来手法のように行列の指数関数やその逆関数の計算を必要としない。その結果、本発明では、カルタン分解を用いた従来手法に比べ低い演算コストでユニタリ行列を分解できる。
また、本発明は、KとMが可換でない行列Gにも適用できるため、任意のユニタリ行列の分解に適用することができる。
さらに、本発明では、ブロック対角行列Yを含む形で行列Gを分解することとしたため、分解結果の一部を容易にNMR量子計算機の実装に適した構成に置き換えることができる。
以下、本発明を実施するための最良の形態を説明する。
〔第1の実施形態〕
<使用する記号の定義>
まず、本形態で使用する記号を以下のように定義する。
i:虚数単位
A*:行列Aの複素共役転置行列
:s×sの単位行列
:s×sの全成分が0の行列
diag(a,b,c,d):対角成分がa,b,c,dの順に並んだ対角行列
∈:左辺が右辺の集合の元
‖・‖:・のノルム
<ハードウェア構成>
図1は、本形態におけるユニタリ行列分解装置100の構成を例示したブロック図である。
図1に例示するように、この例のユニタリ行列分解装置100は、CPU(Central Processing Unit)110、入力部120、出力部130、補助記憶装置140、RAM(Random Access Memory)150、ROM(Read Only Memory)160及びバス170を有している。
この例のCPU110は、制御部111、演算部112及びレジスタ113を有し、レジスタ113に読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部120は、データが入力される入力ポート、キーボード、マウス等であり、出力部130は、データを出力する出力ポート、ディスプレイ等である。補助記憶装置140は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、本形態のユニタリ行列の分解処理を実行するためのユニタリ行列分解プログラムを格納したユニタリ行列分解プログラム領域141及び分解対象となるユニタリ行列G等の各種データが格納されるデータ領域142を有している。また、RAM150は、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、ユニタリ行列分解プログラムが書き込まれるユニタリ行列分解プログラム領域151及び分解対象となるユニタリ行列G等の各種データが格納されるデータ領域152を有している。また、バス170は、CPU110、入力部120、出力部130、補助記憶装置140、RAM150及びROM160を通信可能に接続している。
<ソフトウェア構成>
図2は、図1のユニタリ行列分解プログラム領域141,151に格納されるユニタリ行列分解プログラム200の構成を例示した概念図である。
図2に例示するように、この例のユニタリ行列分解プログラム200は、G=K・M(ユニタリな行列K∈κ及び行列M∈μの積),X=Mを満たす行列Xを生成するための行列生成プログラム210と、行列Xをブロック対角化する行列Pを生成するための対角化行列生成プログラム220と、行列Pの複素共役転置行列Pを生成するための第1の複素共役転置行列生成プログラム231と、B=P・X・Pの演算によってブロック対角行列Bを生成するための第1の行列積演算プログラム232と、ブロック対角行列Bを行列Mのブロック対角行列Y(=P・M・P)に変換するための第1のブロック対角行列変換プログラム233と、M=P・Y・Pの演算によって行列Mを生成するための第2の行列積演算プログラム234と、行列Mの複素共役転置行列Mを生成するための第2の複素共役転置行列生成プログラム235と、K=G・Mの演算によって行列Kを生成するための第3の行列積演算プログラム236と、変換行列WについてY’=W・Y・Wの演算を行うための第2のブロック対角行列変換プログラム237と、K’=K・PやPをそれらよりもサイズの小さな行列に分解するための行列分解プログラム238と、ユニタリ行列分解処理を制御するための制御プログラム239とを有している。
また、この例の行列生成プログラム210は、行列Gの複素共役転置行列Gを生成するための第3の複素共役転置行列生成プログラム211と、X=σjz・G・σjz・Gの演算によって行列Xを生成するための第4の行列積演算プログラム212とを有している。
また、この例の対角化行列生成プログラム220は、行列Xの固有値と固有ベクトルとを算出するための固有値・固有ベクトル算出プログラム221と、対応する固有値が正の虚数である固有ベクトルu(kは自然数)に対し、固有ベクトルu+σjz・uを行列Pの奇数列目の要素として生成し、固有ベクトルu−σjz・uを行列Pの偶数列目の要素として生成するための第1の要素生成プログラム222と、対応する固有値が実数である固有ベクトルv(tは自然数)がσjz・v=v或いはσjz・v=−vを満たすか否かを判断し、σjz・v=vを満たす固有ベクトルvを行列Pの奇数列目の要素として出力し、σjz・v=−vを満たす固有ベクトルvを行列Pの偶数列目の要素として出力し、どちらにも属さない場合は、(v+σjz・v)/‖v+σjz・v‖(‖・‖はノルムを示す)で正規化したベクトルのうち、σjz・vt’=vt’(t’≠t)を満たす固有ベクトルvt’と線形独立なものを上記行列Pの奇数列目の要素として出力し、(v−σjz・v)/‖v−σjz・v‖で正規化したベクトルのうち、σjz・vt’=−vt’を満たす固有ベクトルvt’と線形独立なものを上記行列Pの奇数列目の要素として出力するための第2の要素生成プログラム223と、固有ベクトルu+σjz・uとσjz・v=vを満たす固有ベクトルvとを奇数列目の要素とし、固有ベクトルu−σjz・uとσjz・v=−vを満たす固有ベクトルvとを偶数列目の要素として行列Pを生成するための行列構成プログラム224とを有している。
なお、各プログラムを構成するモジュールの少なくとも一部を他のプログラムと共用することとしてもよい。
<ハードウェアとソフトウェアとの協働>
CPU110は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置140のユニタリ行列分解プログラム領域141に格納されているユニタリ行列分解プログラム200を、RAM150のユニタリ行列分解プログラム領域151に書き込む。同様にCPU110は、補助記憶装置140のデータ領域142に格納されている分解対象のユニタリ行列等のデータを、RAM150のデータ領域152に書き込む。そして、このユニタリ行列分解プログラム200やデータが書き込まれたRAM150上のアドレスがCPU110のレジスタ113に格納される。CPU110の制御部111は、レジスタ113に格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM150上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部112に順次実行させ、その演算結果をレジスタ113に格納していく。
図3は、このようにCPU110にユニタリ行列分解プログラム200が読み込まれることにより実現される機能構成を例示したブロック図である。なお、図3における矢印はデータの流れを示すが、制御部495に出入りするデータの流れに対応する矢印は省略してある。
ここでメモリ300は、レジスタ113、RAM150のデータ領域152、補助記憶装置140のデータ領域142等に相当する。また、行列生成部400、対角化行列生成部410、第1の複素共役転置行列生成部420、第1の行列積演算部430、第1のブロック対角行列変換部440、第2の行列積演算部450、第2の複素共役転置行列生成部460、第3の行列積演算部470、第2のブロック対角行列変換部480、行列分解部490及び制御部495は、それぞれ、行列生成プログラム210、対角化行列生成プログラム220、第1の複素共役転置行列生成プログラム231、第1の行列積演算プログラム232、第1のブロック対角行列変換プログラム233、第2の行列積演算プログラム234、第2の複素共役転置行列生成プログラム235、第3の行列積演算プログラム236、第2のブロック対角行列変換プログラム237、行列分解プログラム238及び制御プログラム239が、それぞれCPU110に読み込まれることにより構成されるものである。さらに、第3の複素共役転置行列生成部401、第4の行列積演算部402、固有値・固有ベクトル算出部411、第1の要素生成部412、第2の要素生成部413及び行列構成部414は、第3の複素共役転置行列生成プログラム211、第4の行列積演算プログラム212、固有値・固有ベクトル算出プログラム221、第1の要素生成プログラム222、第2の要素生成プログラム223及び行列構成プログラム224が、それぞれCPU110に読み込まれることにより構成されるものである。
<処理>
次に本形態におけるユニタリ行列分解装置100の処理について説明する。
図4は本形態におけるユニタリ行列分解装置100の処理の全体を説明するためのフローチャートである。まずこの処理の全体について説明する。なお、以下の各処理は、制御部495の制御のもと実行される。
まず前処理として、分解対象のユニタリ行列をリストLGの要素としてメモリ300に格納しておく(ステップS11)。次に、行列生成部400(図3)が、リストLGの先頭に一番近い4次元以上の行列を分解対象のユニタリな行列Gとしてメモリ300から読み出す(ステップS12)。なお、行列Gのサイズは2×2であるものとする。その後、この行列Gを以下に述べる処理によってY’及びG1〜G4の行列に分解し、これらをそれぞれリストLY及びLGの要素としてメモリに格納する(ステップS13)。
[ステップS13の詳細]
図5は図4におけるステップS13の詳細を説明するためのフローチャートである。以下、この図に沿って図4のステップS13の詳細を説明していく。
ステップS12でメモリ300から読み出されたユニタリな行列Gは行列生成部400に入力される。行列生成部400は、G=K・M(ユニタリな行列K∈κ及び行列M∈μの積),X=Mを満たす行列Xを生成し、この行列Xをメモリ300に出力して格納する(ステップS21)。この例の場合、まず、第3の複素共役転置行列生成部401に行列Gが入力される。そして、この第3の複素共役転置行列生成部401がその複素共役転置行列Gを生成し、この複素共役転置行列Gをメモリ300に出力して格納する。次に、第4の行列積演算部402がメモリ300から行列Gと複素共役転置行列Gとを読み出す。読み出された行列Gと複素共役転置行列Gとは第4の行列積演算部402に入力され、第4の行列積演算部402は
X=σjz・G・σjz・G ・・・(2)
の演算によって行列Xを生成し、この行列Xをメモリ300に出力して格納する。
なお、式(2)の演算結果がMとなるのは以下から明らかである。
X=σjz・G・σjz・G
=θ(G) ・G((1)の関係より)
=θ(M・K*) ・K・M
=θ(M)・θ(K*) ・K・M
=M・K*・K・M((1)の関係より)
=M(Kがユニタリ行列でありK*・Kが単位行列となるため)
ステップS21の処理が終了すると、次に対角化行列生成部410が、メモリ300から行列Xを読み出す。この行列Xは対角化行列生成部410に入力され、対角化行列生成部410は、この行列Xをブロック対角化する行列Pを生成し、生成した行列Pをメモリ300に出力して格納する(ステップS22)。
[ステップS22の詳細]
図6は図5におけるステップS22の詳細をそれぞれ説明するためのフローチャートである。また、図7は図6におけるステップS42の詳細を、図8は図6におけるステップS43の詳細をそれぞれ説明するためのフローチャートである。
まず、固有値・固有ベクトル算出部411に行列Xが入力され、その固有値と固有ベクトルとを算出し、
リストE1=[[虚の固有値,対応する固有ベクトル],・・・]
リストE2=[[実の固有値,対応する固有ベクトル],・・・]
となるリストE1,E2をメモリ300に出力して格納する(ステップS41)。なお、虚の固有値の数をimとし、実の固有値の数をreとする。
次に、第1の要素生成部412が、メモリ300からリストE1を読み出す。このリストE1は第1の要素生成部412に入力され、第1の要素生成部412は、リストE1中の正の固有ベクトルu(kは自然数)に対し、固有ベクトルu+σjz・uを行列Pの奇数列目の要素として生成し、固有ベクトルu−σjz・uを行列Pの偶数列目の要素として生成し、当該固有ベクトルu+σjz・u及びu−σjz・uをリストE3としてメモリ300に出力して格納する(ステップS42)。この例の場合(図7)、リストE1が入力された第1の要素生成部412は、まず、c=0とし(ステップS51)、cにc+1の演算結果を代入し(ステップS52)、リストE1からまだ調べていない正の固有値を1つ選び、対応する固有ベクトルuを抽出する(ステップS53)。そして、第1の要素生成部412は、この固有ベクトルuに対し、
E3[2c‐1]=u+σjz・u
E3[2c]=u‐σjz・u
を計算し、これらをリストE3の要素としてメモリ300に格納する(ステップS54)。その後、この例の第1の要素生成部412は、メモリ300のリストE1に、まだ調べていない正の固有値が存在するか否かを判断し、存在すればステップS52以降の処理に戻り、存在しなければステップS42(図6)の処理を終了する。なお、この例の処理の場合、E3は複素共役な固有値のペアに対応する固有ベクトルのペアを[u+σjz・u,u‐σjz・u][u+σjz・u,u‐σjz・u]・・・と配列したリストとなる。
ステップS42の処理が終了すると、次に第2の要素生成部413が、メモリ300からリストE2を読み出す。このリストE2は第2の要素生成部413に入力され、第2の要素生成部413は、リストE2中の固有ベクトルv(tは自然数)に対し、この固有ベクトルvがσjz・v=v或いはσjz・v=−vを満たすか否かを判断し、σjz・v=vを満たす固有ベクトルvを行列Pの奇数列目の要素とし、σjz・v=−vを満たす固有ベクトルvを行列Pの偶数列目の要素とし、これらをリストE4としてメモリ300に出力して格納する(ステップS43)。この例の場合、この例の場合(図8)、リストE2が入力された第2の要素生成部413は、まず、c=1,c=1とし(ステップS61)、リストE2からまだ調べていない固有ベクトルを1つ選びvとする(ステップS62)。次に、第2の要素生成部413は、このvがσjz・v=vを満たすか否かを判断し(ステップS63)、満たす場合にE4[2c−1]=vをリストE4の要素としてメモリ300に格納し、c=c+1の演算を行い(ステップS64)、満たさない場合にこのvがσjz・v=−vを満たすか否かを判断する(ステップS65)。そして第2の要素生成部413は、σjz・v=−vを満たす場合にのみ、E4[2c]=vをリストE4の要素としてメモリ300に格納し、c=c+1の演算を行う(ステップS66)。また、σjz・v=v及びσjz・v=−vのどちらにも属さない場合、第2の要素生成部413は、(v+σjz・v)/‖v+σjz・v‖を計算し、これをリストE4の要素E4[2c−1]としてメモリ300に格納し、c=c+1の演算を行う(ステップS67)。また、この場合、第2の要素生成部413は、(v−σjz・v)/‖v−σjz・v‖を計算し、これをリストE4の要素E4[2c]としてメモリ300に格納し、c=c+1の演算を行う(ステップS68)。次に、第2の要素生成部413は、メモリ300のリストE4から線形従属な要素を削除する(ステップS69)。
その後、第2の要素生成部413は、メモリ300のリストE3に、まだ調べていない固有ベクトルが存在するか否かを判断し(ステップS70)、存在すればステップS62以降の処理に戻り、存在しなければステップS43(図6)の処理を終了する。
ステップS43の処理が終了すると、行列構成部414は、メモリ300からリストE3,E4を読み出し、リストE3,E4に含まれる固有ベクトルを先頭から順に取り出してそれらを列とした行列P=(V,V,…,Vim,W,W,…,Wre)を生成し(V,V,…,VimはリストE3の要素。W,W,…,WreはリストE4の要素。)、メモリ300に格納する(ステップS44)。これは、固有ベクトルu+σjz・uとσjz・v=vを満たす固有ベクトルvとを奇数列目の要素とし、固有ベクトルu−σjz・uとσjz・v=−vを満たす固有ベクトルvとを偶数列目の要素として行列Pを生成することに相当する([ステップS22の詳細]の説明終了)。
ステップS22の処理が終了すると(図5に戻る)、次に第1の複素共役転置行列生成部420がメモリ300から行列Pを読み出す。読み出された行列Pは第1の複素共役転置行列生成部420に入力され、第1の複素共役転置行列生成部420は、この行列Pの複素共役転置行列Pを生成し、生成した複素共役転置行列Pをメモリ300に出力して格納する(ステップS23)。
次に、第1の行列積演算部430が、メモリ300から行列X、行列P及び複素共役転置行列Pを読み出す。これらは第1の行列積演算部430に入力され、第1の行列積演算部430は、B=P・X・Pの演算によってブロック対角行列Bを生成し、このブロック対角行列Bをメモリ300に出力して格納する(ステップS24)。
このメモリ300に格納されたブロック対角行列Bは、第1のブロック対角行列変換部440によって読み取られる。読み出されたブロック対角行列Bは第1のブロック対角行列変換部440に入力され、第1のブロック対角行列変換部440は、これを行列Mのブロック対角行列Y(=P・M・P)に変換し、これをメモリ300に出力して格納する(ステップS25)。なお、ブロック対角行列Bからブロック対角行列Yへの変換は、例えば、ブロック対角行列Bの対角部分に並んだ正方行列Cを、C=Dを満たす正方行列Dに置き換えることによって行う。すなわち、ブロック対角行列Bは、2×2の行列が対角成分に並び他の要素が0のブロック対角行列であるともいえる。また、前述の通りブロック対角行列Bとブロック対角行列YとはB=P・X・P=P・M・P=(P・M・P)(P・M・P)=Yの関係を満たす。よって、ブロック対角行列Bからブロック対角行列Yへの変換は、ブロック対角行列Bの対角部分に並んだ正方行列Cを正方行列D(C=Dを満たす)に置き換えることのみによって可能である。これにより、低い演算コストでブロック対角行列Bからブロック対角行列Yへの変換を行うことができる。なお、この置き換えに使用する正方行列C,Dとしては以下のものを例示できる。
なお、式(3)〜(6)におけるθはブロック対角行列Bの成分によって決まる値である。例えば、B=diag(−1,−1,−1,−1,1,1,1,1)である場合、θ=πの正方行列C,Dと、θ=0の正方行列C,Dとでこの置き換えを行うことになる。
また、1つのブロック対角行列Bからブロック対角行列Yへの変換に、複数種類の正方行列C,Dの組を用いることとしてもよい。例えば、式(3)のCから式(4)のDへの置き換えと式(3)のCから式(5)のDへの置き換えとを混合して、1つのブロック対角行列Bからブロック対角行列Yへの変換を行うこととしてもよい。
さらに、ここでは2×2の正方行列C,Dによって置き換えを行う例を示したが、2γ×2γ(γは2以上の自然数)の正方行列C,Dを用いてブロック対角行列Bからブロック対角行列Yへの変換を行うこととしてもよい。例えば、量子フーリエ変換を示すユニタリ行列の分解の場合、ブロック対角行列Bを対角部分にdiag(1,−1,−1,1)のブロックを含む行列(例えば、B=diag(1,−1,−1,1,1,−1,−1,1))として生成し、
によってブロック対角行列Bからブロック対角行列Yへの変換を行うことが望ましい。この正方行列Dは、
と表すことができ、このような正方行列Dはシンプルな量子回路で実現できることが知られているからである。
しかし、一般的には正方行列C,Dは2×2の行列であることが望ましい。すなわち、図6のステップS41で生成される虚の固有値は必ず複素共役のペアとなり、行列Pの虚の固有値に対応する要素数(im)は2の倍数となるが、これが2γ(γは2以上の自然数)の倍数となるとは限らない。よって、行列Pによってブロック対角化されるブロック対角行列Bの虚の固有値に対応する要素数も2の倍数となるが、これが2γの倍数となるとは限らない。これは、実の固有値に対応する要素数も2の倍数となるが、これが2γの倍数となるとは限らないことを意味している。そのため、2γ×2γの正方行列C,Dでブロック対角行列Bを置き換えると、虚の固有値に対応する要素及び実の固有値に対応する要素に置き換え残りが生じる場合がある。この場合、この置き換え残り部分を置き換える別のサイズの正方行列C,Dが必要となり処理が煩雑となる。よって、ブロック対角行列Bの虚の固有値に対応する要素数及び実の固有値に対応する要素数が明確でない場合には、正方行列C,Dは2×2の行列であることが望ましい。
ステップS25の処理が終了すると、次に第2の行列積演算部450が、メモリ300からブロック対角行列Yと行列Pと複素共役転置行列Pとを読み出す。これらが入力された第2の行列積演算部450は、M=P・Y・Pの演算によって行列Mを生成し、この行列Mをメモリ300に出力して格納する(ステップS26)。
次に、第2の複素共役転置行列生成部460が、メモリ300から行列Mを読み出す。この行列Mが入力された第2の複素共役転置行列生成部460は、この行列Mの複素共役転置行列Mを生成し、この複素共役転置行列Mをメモリ300に出力して格納する(ステップS27)。
次に、第3の行列積演算部470がメモリ300から行列Gと複素共役転置行列Mとを読み出す。これらは第3の行列積演算部470に入力され、第3の行列積演算部470は、K=G・Mの演算によって行列Kを生成し、この行列Kをメモリ300に出力して格納する(ステップS28)。
次に、第2のブロック対角行列変換部480が、メモリからブロック対角行列Yを読み出す。このブロック対角行列Yは第2のブロック対角行列変換部480に入力され、第2のブロック対角行列変換部480は、
Y’=W・Y・W ・・・(7)
の演算を行い、この行列Y’をメモリ300に出力し、リストLYの要素として格納する(ステップS29)。なお、式(8)が示す変換行列Wはブロック対角行列Yの値に依存しない。よって低い演算コストによってブロック対角行列Yを行列Y’への変換が可能である。そして、この行列Y’は、Khaneja−Glaser分解の定義に合う形となり、NMR量子計算機の実装に適した構成となる(M.Nakahara, Y. kondo, K. Hata, and S. Tanimura, "Demonstrating quantum algorithm acceleration with NMR quantum computer," インターネット<http://jp.arxiv.org/abs/quant-ph/0405050>参照)。
ここまでの処理により、行列GはK,P,Y’,P*の行列に分解された。ここで、前述のようにK,P,P*は集合κの元となる。また積K’=K・Pも集合κの元となる。よって、行列GはK’∈κとY∈κ’とP*∈κとの積に分解できることがわかる。図9(a)はこれを示した行列の概念図(j=3の例)である。なお、この図における空白の正方形は行列の0の要素を示し、色付きの正方形は何らかの値の要素を示す。この図に示すように、任意の行列Gは、NMR量子計算機の実装に適したY’と、市松模様の行列K’,P*とに分解できたことになる。
そこで次に、行列分解部490がメモリ300から行列K,Pを読み出し、K’=K・Pの要素を規則的に抜き出して、行列K’を2j−1×2j−1の行列G1とG2の積に分解し、これらをメモリ300に出力し、リストLGの要素として格納する(ステップS30)。図9(b)は、行列K’におけるこの分解を示した概念図であり(j=3の例)、図9(c)は、その分解結果に対応する量子回路を示した図である。この図に示すように、行列K’=G1’・G2’はこれよりもサイズの小さな行列G1,G2に容易に分解できる。
また、同様に、行列分解部490がメモリ300から複素共役転置行列P*を読み出し、その要素を規則的に抜き出して、これを2j−1×2j−1の行列G3とG4の積に分解し、これらをメモリ300に出力し、リストLGの要素として格納する(ステップS31)([ステップS13の詳細]の説明終了)。
ステップS13の処理が終了すると(図4に戻る)、制御部495が、メモリ300に格納されたリストLGを検索し、まだ調べていない行列がリストLGに含まれるか否かを判断する(ステップS14)。ここで、リストLGにまだ調べていない行列が含まれると判断された場合、制御部495は処理をステップS12に戻す。一方、リストLGに調べていない行列が存在しないと判断された場合、制御部495は処理を終了する。これにより、上述の行列G1,G2,G3,G4を行列Gとした処理が再帰的に繰り返され、最終的に2次元の基本ゲートを示す行列に分解される。
<実施例>
次に、3量子ビットの量子フーリエ変換を示すユニタリ行列を分解する場合の実施例を説明する。
リストLGの8×8の行列Gを分割対象とする(ステップ12)。ここで、行列Gは3量子ビットの量子フーリエ変換を示すユニタリ行列であるから、Gの(h,k)成分をG[h,k]と書くと
となる。
次に、X=σ3z・G・σ3z・Gを計算する(ステップS21)。ここでσ3z=diag(1,−1, 1,−1, 1,−1, 1,−1)となるから、
=diag(1,−1, 1,−1)
となる。
Xを対角化して、固有値と固有ベクトルを求め、行列Pを構成すると(ステップS22,S41〜S44,S51〜S55,S61〜S67)、
となる。
次にB=P・X・P*を計算すると(ステップS24)、
B=diag(−1, −1, −1, −1,1, 1, 1, 1,)
となる。
次に、Bの対角部分の2×2のブロックを式(3)(4)に従って書き換えたものをYとする(ステップS25)。この例の場合、式(3)(4)による書き換えは
となる。
次に、M=P・Y・P*を計算すると(ステップS26)、
となる。
次に、K=G・M*を計算すると(ステップS28)、
となる。
次に、YをY’=W・Y・W*に変換する(ステップS29)。
次に、K’=K・Pを計算すると、
となる。そして、図9(b)のように、
K’=G1’・G2’
と分解し、G1’とG2’から図9(b)のように色付き部分の要素を抜き出して4×4のユニタリ行列G1,G2
を構成する(ステップS30)。
次に、P*を図9(b)と同様に、
と分解し、G3’とG4’から図9(b)のように色付き部分の要素を抜き出して4×4のユニタリ行列G3,G4
を構成する。
その後、G1〜G4をGとしてステップS12以降の処理を行う。
〔第2の実施形態〕
次に本発明における第2の実施形態について説明する。
本形態は第1の実施形態の変形例であり、第1の実施の形態でブロック対角行列Yを行列Y’に変換した代わりに、ブロック対角行列Yをそのまま基本ゲートを示す行列に分解する点のみが第1の実施の形態と相違する。以下では、第1の実施形態との相違点を中心に説明し、第1の実施の形態と共通する事項については説明を省略する。
<ハードウェア構成>
第1の実施の形態と同様である。
<ソフトウェア構成>
図10は、本形態のユニタリ行列分解プログラム600の構成を例示した概念図である。本形態のユニタリ行列分解プログラム600と第1の実施形態のユニタリ行列分解プログラム200との相違点は、ユニタリ行列分解プログラム600が、第2のブロック対角行列変換プログラム237(図2)の代わりにブロック対角行列分解プログラム637を有する点である。
<ハードウェアとソフトウェアとの協働>
図11は、CPUにユニタリ行列分解プログラム600が読み込まれることにより実現される機能構成を例示したブロック図である。第1の実施の形態との相違点は、第2のブロック対角行列変換部(図3)の代わりにブロック対角行列分解部680が構成される点である。
<処理>
第1の実施の形態との相違点は図5のステップS29の処理のみである。すなわち、本形態では、ステップS29の処理の代わりにブロック対角行列Yをそのまま2×2の基本ゲートを示す行列に分解する。
図12はこの処理を説明するための概念図である(j=3の例)。
この図に示すように、行列GはK’=K・Pとブロック対角行列Yと複素共役転置行列P*に分解され(図12(a))、ブロック対角行列Yが図12(b)(c)に示すように2×2の行列U〜Uに分解される。なお、この分解の一般化については、例えば「上坂吉則著、コロナ社出版、”量子コンピュータの基礎数理”、ISBN4−339−02376−0」等参照。
なお、本発明は上述の各実施形態に限定されるものではなく、その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上述したユニタリ行列分離プログラム200,600は、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
また、上述した実施形態とは別の実行形態として、コンピュータが可搬型記録媒体から直接このプログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
本発明の産業上の利用分野としては、量子コンピュータを構成する任意のユニタリ変換量子回路の設計支援分野等を例示できる。本発明を適用することにより、容易に任意のユニタリ変換量子回路をCNOT等の基本ゲートに分解することができる。
第1実施形態におけるユニタリ行列分解装置の構成を例示したブロック図。 ユニタリ行列分解プログラムの構成を例示した概念図。 CPUにユニタリ行列分解プログラムが読み込まれることにより実現される機能構成を例示したブロック図。 第1実施形態におけるユニタリ行列分解装置の処理の全体を説明するためのフローチャート。 図4におけるステップS12の詳細を説明するためのフローチャート。 図5におけるステップS22の詳細をそれぞれ説明するためのフローチャート。 図6におけるステップS42の詳細を説明するためのフローチャート。 図6におけるステップS43の詳細を説明するためのフローチャート。 (a)は、行列GをK’∈κとY∈κ’とP*∈κとの積に分解した様子を示した概念図。(b)は、行列K’の分解を示した概念図(j=3の例)。(c)は、その分解結果に対応する量子回路を示した図。 第2実施形態のユニタリ行列分解プログラムの構成を例示した概念図。 CPUにユニタリ行列分解プログラムが読み込まれることにより実現される機能構成を例示したブロック図。 第2の実施形態におけるブロック対角行列Yの分解を説明するための概念図。 Cosine-Sine分解を説明するための概念図。
符号の説明
100 ユニタリ行列分解装置
200,600 ユニタリ行列分解プログラム

Claims (9)

  1. ユニタリ行列を分解するユニタリ行列分解装置であって、
    ユニタリな行列Gが入力され、G=K・M(ユニタリな行列K∈κ及び行列M∈μの積),X=Mを満たす行列Xを生成し、当該行列Xを出力する行列生成手段と、
    上記行列Xが入力され、当該行列Xをブロック対角化する行列Pを生成し、当該行列Pを出力する対角化行列生成手段と、
    上記行列Pが入力され、当該行列Pの複素共役転置行列Pを生成し、当該複素共役転置行列Pを出力する第1の複素共役転置行列生成手段と、
    上記行列Xと上記行列Pと上記複素共役転置行列Pとが入力され、B=P・X・Pの演算によってブロック対角行列Bを生成し、当該ブロック対角行列Bを出力する第1の行列積演算手段と、
    上記ブロック対角行列Bが入力され、当該ブロック対角行列Bの対角部分に並んだ正方行列Cを、C=D を満たす正方行列Dに置き換えることにより、当該ブロック対角行列Bを、上記行列Mのブロック対角行列Y(=P・M・P)に変換し、当該ブロック対角行列Yを出力する第1のブロック対角行列変換手段と、
    上記ブロック対角行列Yと上記行列Pと上記複素共役転置行列Pとが入力され、M=P・Y・Pの演算によって行列Mを生成し、当該行列Mを出力する第2の行列積演算手段と、
    上記行列Mが入力され、当該行列Mの複素共役転置行列Mを生成し、当該複素共役転置行列Mを出力する第2の複素共役転置行列生成手段と、
    上記行列Gと上記複素共役転置行列Mとが入力され、K=G・Mの演算によって行列Kを生成し、当該行列Kを出力する第3の行列積演算手段と、
    を有することを特徴とするユニタリ行列分解装置。
  2. 請求項1記載のユニタリ行列分解装置であって、
    上記ブロック対角行列Yが入力され、制御NOT演算を表す行列をUCNOTとし、ウォルシューアダマール変換を表す行列をHとし、r×rの単位行列をIとし、上記ブロック対角行列Yを2×2行列とし、

    とし、Wを行列Wの複素共役転置行列とした場合における、Y’=W・Y・Wの演算を行い、当該行列Y’を出力する第2のブロック対角行列変換手段を、
    さらに有することを特徴とするユニタリ行列分解装置。
  3. 請求項1記載のユニタリ行列分解装置であって、
    上記行列生成手段が、
    上記行列Gが入力され、その複素共役転置行列Gを生成し、当該複素共役転置行列Gを出力する第3の複素共役転置行列生成手段と、
    上記行列Gと上記複素共役転置行列Gとが入力され、

    とした場合における
    X=σjz・G・σjz・G
    の演算によって上記行列Xを生成し、当該行列Xを出力する第4の行列積演算手段と、
    を有する手段である、
    ことを特徴とするユニタリ行列分解装置。
  4. 請求項1記載のユニタリ行列分解装置であって、
    上記対角化行列生成手段が、
    上記行列Xが入力され、その固有値と固有ベクトルとを算出し、当該固有値と固有ベクトルとを出力する固有値・固有ベクトル算出手段と、
    上記固有値・固有ベクトル算出手段において算出された固有ベクトルのうち、対応する固有値が正の虚数である固有ベクトルu(kは自然数)に対し、

    とした場合における、固有ベクトルu+σjz・uを上記行列Pの奇数列目の要素として生成し、固有ベクトルu−σjz・uを上記行列Pの偶数列目の要素として生成し、当該固有ベクトルu+σjz・u及びu−σjz・uを出力する第1の要素生成手段と、
    上記固有値・固有ベクトル算出手段において算出された固有ベクトルのうち、対応する固有値が実数である固有ベクトルv(tは自然数)に対し、当該固有ベクトルvがσjz・v=v或いはσjz・v=−vを満たすか否かを判断し、σjz・v=vを満たす固有ベクトルvを上記行列Pの奇数列目の要素として出力し、σjz・v=−vを満たす固有ベクトルvを上記行列Pの偶数列目の要素として出力し、どちらにも属さない場合は、(v+σjz・v)/‖v+σjz・v‖(‖・‖はノルムを示す)で正規化したベクトルのうち、σjz・vt’=vt’(t’≠t)を満たす固有ベクトルvt’と線形独立なものを上記行列Pの奇数列目の要素として出力し、(v−σjz・v)/‖v−σjz・v‖で正規化したベクトルのうち、σjz・vt’=−vt’を満たす固有ベクトルvt’と線形独立なものを上記行列Pの奇数列目の要素として出力する第2の要素生成手段と、
    上記固有ベクトルu±σjz・u及びvが入力され、上記固有ベクトルu+σjz・uとσjz・v=vを満たす固有ベクトルvとを奇数列目の要素とし、上記固有ベクトルu−σjz・uとσjz・v=−vを満たす固有ベクトルvとを偶数列目の要素として上記行列Pを生成し、当該行列Pを出力する行列構成手段と、
    を有する手段である、
    ことを特徴とするユニタリ行列分解装置。
  5. 請求項4記載のユニタリ行列分解装置であって、
    上記行列構成手段が、
    上記固有ベクトルu+σjz・uを2α−1列目の要素とし(αは自然数)、上記固有ベクトルu−σjz・uを2α列目の要素として上記行列Pを生成する手段である、
    ことを特徴とするユニタリ行列分解装置。
  6. 請求項5記載のユニタリ行列分解装置であって、
    上記正方行列C及びDが2×2の行列である、
    ことを特徴とするユニタリ行列分解装置。
  7. コンピュータを、行列生成手段と、対角化行列生成手段と、第1の複素共役転置行列生成手段と、第1の行列積演算手段と、第1のブロック対角行列変換手段と、第2の行列積演算手段と、第2の複素共役転置行列生成手段と、第3の行列積演算手段と、を有するユニタリ行列分解装置として機能させて実行するユニタリ行列分解方法であって、
    行列生成手段が、入力されたユニタリな行列Gに対し、G=K・M(ユニタリな行列K∈κ及び行列M∈μの積),X=Mを満たす行列Xを生成し、当該行列Xを出力する手順と、
    対角化行列生成手段が、前記行列生成手段が出力した上記行列Xをブロック対角化する行列Pを生成し、当該行列Pを出力する手順と、
    第1の複素共役転置行列生成手段が、前記対角化行列生成手段が出力した上記行列Pの複素共役転置行列Pを生成し、当該複素共役転置行列Pを出力する手順と、
    第1の行列積演算手段が、前記行列生成手段が出力した上記行列Xと、前記対角化行列生成手段が出力した上記行列Pと、前記第1の複素共役転置行列生成手段が出力した上記複素共役転置行列Pとを用い、B=P・X・Pの演算によってブロック対角行列Bを生成し、当該ブロック対角行列Bを出力する手順と、
    第1のブロック対角行列変換手段が、前記第1の行列積演算手段が出力した上記ブロック対角行列Bの対角部分に並んだ正方行列Cを、C=D を満たす正方行列Dに置き換えることにより、当該ブロック対角行列Bを、上記行列Mのブロック対角行列Y(=P・M・P)に変換し、当該ブロック対角行列Yを出力する手順と、
    第2の行列積演算手段が、前記第1のブロック対角行列変換手段が出力した上記ブロック対角行列Yと、前記対角化行列生成手段が出力した上記行列Pと、前記第1の複素共役転置行列生成手段が出力した上記複素共役転置行列Pに対し、M=P・Y・Pの演算を行って行列Mを生成し、当該行列Mを出力する手順と、
    第2の複素共役転置行列生成手段が、前記第2の行列積演算手段が出力した上記行列Mの複素共役転置行列Mを生成し、当該複素共役転置行列Mを出力する手順と、
    第3の行列積演算手段が、入力された上記行列Gと、前記第2の複素共役転置行列生成手段が出力した上記複素共役転置行列Mとに対し、K=G・Mの演算を行って行列Kを生成し、当該行列Kを出力する手順と、
    を有することを特徴とするユニタリ行列分解方法。
  8. 請求項1からの何れかに記載のユニタリ行列分解装置としてコンピュータを機能させるためのユニタリ行列分解プログラム。
  9. 請求項記載のユニタリ行列分解プログラムを格納したコンピュータ読取り可能な記録媒体。
JP2005004418A 2005-01-11 2005-01-11 ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体 Expired - Fee Related JP4260751B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005004418A JP4260751B2 (ja) 2005-01-11 2005-01-11 ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005004418A JP4260751B2 (ja) 2005-01-11 2005-01-11 ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2006195587A JP2006195587A (ja) 2006-07-27
JP4260751B2 true JP4260751B2 (ja) 2009-04-30

Family

ID=36801645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005004418A Expired - Fee Related JP4260751B2 (ja) 2005-01-11 2005-01-11 ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP4260751B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4758965B2 (ja) * 2007-08-27 2011-08-31 日本電信電話株式会社 ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体
JP5118461B2 (ja) * 2007-12-11 2013-01-16 日本電信電話株式会社 量子演算装置、逆2次位相変換演算装置、それらの方法、プログラム及び記録媒体
JP5325072B2 (ja) * 2009-10-22 2013-10-23 日本電信電話株式会社 行列分解装置、行列分解方法及びプログラム
US8671369B2 (en) 2009-12-08 2014-03-11 University Of Seoul Industry Cooperation Foundation Quantum Karnaugh map
CN112100573B (zh) * 2020-09-22 2024-07-05 中国科学院国家空间科学中心 一种极化su(2)群到su(3)群的转换方法及***
JPWO2023021666A1 (ja) * 2021-08-19 2023-02-23
WO2023148827A1 (ja) * 2022-02-01 2023-08-10 日本電信電話株式会社 量子コンパイル装置、量子コンパイル方法、およびプログラム

Also Published As

Publication number Publication date
JP2006195587A (ja) 2006-07-27

Similar Documents

Publication Publication Date Title
JP4260751B2 (ja) ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体
Schindler et al. Quantum simulation of dynamical maps with trapped ions
Kökcü et al. Fixed depth Hamiltonian simulation via Cartan decomposition
Wuensche et al. Global dynamics of cellular automata: an atlas of basin of attraction fields of one-dimensional cellular automata
Gilmore Lie groups, Lie algebras, and some of their applications
KR102100368B1 (ko) 양자 데이터베이스를 위한 효과적 양자 메모리 구조
Yuan et al. The dual-threshold quantum image segmentation algorithm and its simulation
Shirai et al. Quantum tangent kernel
CN114091363A (zh) 基于量子算法的计算流体动力学模拟方法、装置及设备
JP7251645B2 (ja) 求解システム、求解方法および求解プログラム
Melnik Mathematical and computational modeling: With applications in natural and social sciences, engineering, and the arts
Cassel Matrix, numerical, and optimization methods in science and engineering
Saha et al. Deep Learning Discrete Calculus (DLDC): a family of discrete numerical methods by universal approximation for STEM education to frontier research
Chen et al. Antn: Bridging autoregressive neural networks and tensor networks for quantum many-body simulation
Cappelli et al. From Vlasov-Poisson to Schrödinger-Poisson: Dark matter simulation with a quantum variational time evolution algorithm
JP2002042104A (ja) 量子ソフトコンピューティングを使用した制御システムと制御方法
JP4758965B2 (ja) ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体
US20040130956A1 (en) Hardware quantum gate
Ivancova et al. Quantum supremacy in end-to-end intelligent IT. Pt. I: Quantum software engineering-quantum gate level applied models simulators
JP4260680B2 (ja) ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体
Gerdt et al. A mathematica package for simulation of quantum computation
US20040059765A1 (en) Method and relative quantum gate for running a grover's or a Deutsch-Jozsa's quantum algorithm
Sadowski et al. Image completion with nonnegative matrix factorization under separability assumption
Zulehner et al. Advanced Simulation of Quantum Computations: Compact Representation Rather than Hardware Power
Liu et al. Implicit density-functional theory

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20061225

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080722

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: 20090127

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: 20090204

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

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: 20130220

Year of fee payment: 4

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