JP5325072B2 - 行列分解装置、行列分解方法及びプログラム - Google Patents

行列分解装置、行列分解方法及びプログラム Download PDF

Info

Publication number
JP5325072B2
JP5325072B2 JP2009243481A JP2009243481A JP5325072B2 JP 5325072 B2 JP5325072 B2 JP 5325072B2 JP 2009243481 A JP2009243481 A JP 2009243481A JP 2009243481 A JP2009243481 A JP 2009243481A JP 5325072 B2 JP5325072 B2 JP 5325072B2
Authority
JP
Japan
Prior art keywords
matrix
product
calculation unit
diagonal
eigenvectors
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
JP2009243481A
Other languages
English (en)
Other versions
JP2011090497A (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 JP2009243481A priority Critical patent/JP5325072B2/ja
Publication of JP2011090497A publication Critical patent/JP2011090497A/ja
Application granted granted Critical
Publication of JP5325072B2 publication Critical patent/JP5325072B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Description

本発明は、任意のユニタリな行列をブロック対角行列又はそれに変換可能な行列に分解する行列分解技術に関する。
量子コンピュータにおける各操作はユニタリ行列によって表現されるが、このユニタリ行列によって表現される各操作を実際の量子回路で実現するためには、このユニタリ行列を実現可能な基本ゲート等に分解しなければならない。ユニタリ行列を基本ゲート等に変換する手法として、入力のユニタリ行列を、ブロック対角行列の積に分解する手法が知られている(例えば、特許文献1参照)。
特許文献1の手法は、2n×2nのユニタリな行列(nは正整数)Gが入力されたときに、
Figure 0005325072
を満たす部分行列K(1),K(2),P(1),P(2),Y(1),Y(2)を求める手法である。ここで、
Figure 0005325072
は、入力された行列Gよりもサイズが小さな部分行列K(1),K(2),P(1),P(2),P(1)*,P(2)*をブロック成分としたブロック対角行列である。また、Y(1)とY(2)は入力された行列Gよりもサイズが小さな対角行列であり、
Figure 0005325072
は、ブロック対角行列に変換可能な行列である。なお、A*は行列Aの共役転置行列を示し、0は0成分からなる行列を示す。各部分行列K(1),K(2),P(1),P(2), Y(1),Y(2)について再帰的に上記の行列分解を行うことにより、よりサイズの小さな部分行列から構成されるブロック対角行列又はそれに変換可能な行列の積を得ることができ、最終的には、これらのブロック対角行列が基本ゲートを行列表現したものと対応する。また、部分行列Y(1),Y(2)については、再帰的な処理を行うことなくトフォリゲートを示す行列の積に変換することもできる。なお、ここでのトフォリゲートは、通常のトフォリゲート(制御−制御−NOTゲート)を一般化したものであり、k個(kは1以上の整数)の制御量子ビットと1個の標的量子ビットからなり、標的量子ビットの演算として任意の2×2のユニタリ行列に対応する演算を許したものとする。
行列Gから上記式(1)を算出するために、まず行列
X=σnz・G*・σnz・G …(2)
が算出される。ここで、
Figure 0005325072
である。また、
Figure 0005325072
とした場合、
X=M2 …(4)
の関係を満たす。
次に、行列Xを固有値分解して、行列Xをブロック対角化するための行列
Figure 0005325072
が求められ、行列Xをブロック対角化した行列
Figure 0005325072
が生成される。行列X,Bは
Figure 0005325072
の関係を満たす。式(3)-(5)の関係より、
B=D2
の関係を満たす行列Dを求めることにより、上記式(1)のY(1)とY(2)が求まる。
次に、式(3)によって行列Mが算出され、最後に行列
Figure 0005325072
が求められる。これにより、式(1)右辺の各部分行列が算出される。
特開2006-195587号公報
しかし、特許文献1の技術では、上記式(2)を計算する際に、入力された行列Gと同じサイズの行列の積を計算しなければならない。また、その後の各ステップの計算においても、行列Gと同じサイズの行列の固有値分解や行列積の計算を行わなければならない。そのため、特許文献1の技術では、計算時間が大きく、また、メモリ消費量も大きくなってしまうという問題があった。
本発明は、このような点に鑑みてなされたものであり、分解対象の行列よりもサイズが小さな行列の演算のみで、当該分解対象の行列をブロック対角行列又はそれに変換可能な行列に分解することが可能な技術を提供することを目的とする。
本発明では、まず、2d×2d(dは正整数)のユニタリな行列Gを入力とし、当該行列Gから、
Figure 0005325072
を満たすd×dの部分行列G(11),G(22)を抽出し、行列Aの共役転置行列をA*とした場合における、G(11)*とG(11)との行列積G(11)*・G(11)と、G(22)*とG(22)との行列積G(22)*・G(22)とを生成する。次に、行列積G(11)*・G(11),G(22)*・G(22)に対して共通の固有値y(1),...,y(d)と、当該固有値y(1),...,y(d)に対応する行列積G(11)*・G(11)の固有ベクトルV(11),...,V(1d)と、当該固有値y(1),...,y(d)に対応する行列積G(22)*・G(22)の固有ベクトルV(21),...,V(2d)とを求める。その後、y(1),...,y(d)の平方根√y(1),...,√y(d)を対角成分に持つd×dの対角行列Y(1)=diag(√y(1),...,√y(d))と、1-y(1),...,1-y(d)の平方根√(1-y(1)),...,√(1-y(d))に虚数単位iを乗じたi√(1-y(1)),...,i√(1-y(d))を対角成分に持つd×dの対角行列Y(2)=diag(i√(1-y(1)),...,i√(1-y(d)))とを生成する。また、eをネイピア数とし、θ(11),...,θ(1d),θ(21),...,θ(2d)を実数とした場合における、行列P(1)=(ei・θ(11)・V(11),...,ei・θ(1d)・V(1d)),P(2)=(ei・θ(21)・V(21),...,ei・θ(2d)・V(2d))を生成し、固有値y(1),...,y(d)に対応する行列積G(11)・G(11)*の固有ベクトルをW(11),...,W(1d)とし、固有値y(1),...,y(d)に対応する行列積G(22)・G(22)*の固有ベクトルをW(21),...,W(2d)とし、φ(11),...,φ(1d),φ(21),...,φ(2d)を実数とした場合における、K(1)・P(1)=(ei・φ(11)・W(11),...,ei・φ(1d)・W(1d)),K(2)・P(2)=(ei・φ(21)・W(21),...,ei・φ(2d)・W(2d))を満たす行列積K(1)・P(1),K(2)・P(2)を生成する。
ここで、以上のように生成されたK(1)・P(1),K(2)・P(2),Y(1),Y(2),P(1),P(2)は、或る実数θ(11),...,θ(1d),θ(21),...,θ(2d),φ(11),...,φ(1d),φ(21),...,φ(2d)に対して
Figure 0005325072
の関係を満たす。ここで、
Figure 0005325072
は、ブロック対角行列に変換可能な行列である。また、本発明では、サイズ2d×2dの行列Gを式(7)のように4分割して得られる、サイズd×dの部分行列G(11),G(22)の情報から行列の分解を行う。そのため、分解対象の行列Gのサイズが2d×2dであるのに対して、各処理で必要となる演算はサイズd×dの行列の演算である。
以上のように本発明では、分解対象の行列よりもサイズが小さな行列の演算のみで、当該分解対象の行列をブロック対角行列又はそれに変換可能な行列に分解することができる。
量子回路設計装置の機能構成を例示するための図。 第1実施形態の行列分解装置の機能構成を説明するための図。 全体処理を例示するためのフローチャート。 図3のステップS11の処理を詳細に説明するためのフローチャート。 行列分解装置の機能構成を例示するための図。 第2実施形態のステップS21の処理を詳細に説明するためのフローチャート。 第3実施形態のステップS31の処理を詳細に説明するためのフローチャート。
以下、図面を参照して本発明の実施形態を説明する。
〔基本原理〕
まず、本形態の基本原理を説明する。
本形態では、2d×2d(dは正整数)のユニタリな行列Gを
Figure 0005325072
のように、ユニタリな行列K(1)・P(1), K(2)・P(2)を対角成分に持つブロック対角行列と、ブロック対角行列に変換可能な対角行列Y(1),Y(2)を成分に持つ行列と、P(1)*, P(2)*を対角成分に持つブロック対角行列との積に分解することである。ここで、K(1)・P(1), K(2)・P(2)を対角成分に持つブロック対角行列については、K(1)・P(1)及びK(2)・P(2)さえ求まれば、K(1), K(2)がそれぞれ特定できなくても不都合は生じない。なお、行列K(1), P(1), K(2), P(2)もそれぞれユニタリな行列となる。また、A・Bは、行列Aの右側から行列Bを掛ける演算を意味する。
ここで、上記式(7),(8)から、
Figure 0005325072
となる。行列K(1), P(1), K(2), P(2)はユニタリな行列であるため、この式から以下の4つの関係式が得られる。
G(11)*・G(11)={P(1)・Y(1)*・P(1)*・K(1)*}・{K(1)・P(1)・Y(1)・P(1)*}
=P(1)・Y(1)2・P(1)* …(10)
G(11)・G(11)*={K(1)・P(1)・Y(1)・P(1)*}・{P(1)・Y(1)*・P(1)*・K(1)*}
=K(1)・P(1)・Y(1)2・P(1)*・K(1)*
=K(1)・G(11)*・G(11)・K(1)* …(11)
G(22)*・G(22)={P(2)・Y(1)*・P(2)*・K(2)*}・{K(2)・P(2)・Y(1)・P(2)*}
=P(2)・Y(1) 2・P(2)* …(12)
G(22)・G(22)*={K(2)・P(2)・Y(1)・P(2)*}・{P(2)・Y(1) *・P(2)*・K(2)*}
=K(2)・P(2)・Y(1) 2・P(2)*・K(2)*
=K(2)・G(22)*・G(22)・K(2)* …(13)
ここでY(1)は対角行列なので、Y(1)2も対角行列である。よって、式(10),(12)は、行列G(11)*・G(11), G(22)*・G(22)の対角化処理を示している。つまり、行列G(11)*・G(11), G(22)*・G(22)は、それぞれ、行列P(1),P(2)を対角化行列とすることで対角行列Y(1)2に対角化できる関係にある。同様に、式(11),(13)は、行列G(11)・G(11)*, G(22)・G(22)*の対角化処理を示している。つまり、行列G(11)・G(11) *, G(22)・G(22)*は、それぞれ、行列K(1)・P(1), K(2)・P(2)を対角化行列とすることで対角行列Y(1)2に対角化できる関係にある。正方行列の対角化行列とそれによって得られる対角行列は、当該正方行列を固有値分解することで求めることができる。よって、行列G(11)*・G(11), G(22)*・G(22)の固有値分解に基づいて行列P(1),P(2)を求めることができ、行列G(11)・G(11) *, G(22)・G(22)*の固有値分解に基づいて行列K(1)・P(1), K(2)・P(2)を求めることができる。これらの固有値分解は、入力された行列Gよりもサイズが小さな行列G(11)*・G(11), G(22)*・G(22), G(11)・G(11)*, G(22)・G(22)*についての演算である。そのため、本形態では、入力された行列Gよりも小さなサイズの行列の演算のみで行列Gを式(8)のように分解できる。
〔第1実施形態〕
次に、本発明の第1実施形態を説明する。
<構成>
図1は、量子回路設計装置の機能構成を例示するための図である。また、図2は、第1実施形態の行列分解装置の機能構成を説明するための図である。
図1に例示するように、本形態の量子回路設計装置1は、行列分解装置11と、トフォリゲート分解部12と、制御部13と、再帰処理部14と、記憶部15とを有する。また、図2に例示するように、行列分解装置11は、入力部1101と、入力行列分割部1102と、第1行列積計算部1103と、固有値・固有ベクトル計算部1104と、対角行列計算部1105と、行列構成部1106と、第2行列積計算部1107と、未知数算出部1108と、出力部1109と、記憶部1110とを有する。
なお、量子回路設計装置1は、CPU(central processing unit),RAM(random-access memory),ROM(read-only memory)等を含む公知のコンピュータに所定のプログラムが読込まれ、実行されることによって構成されるものである。例えば、トフォリゲート分解部12、制御部13、再帰処理部14、入力行列分割部1102、第1行列積計算部1103、固有値・固有ベクトル計算部1104、対角行列計算部1105、行列構成部1106、第2行列積計算部1107、未知数算出部1108は、CPUが所定のプログラムを実行することで構成される処理部であり、記憶部15,1110は、補助記憶装置、RAM,レジスタ或いはキャッシュメモリ、又は、それらの少なくとも一部を結合した記憶領域等である。また、量子回路設計装置1は、制御部13の制御に基づいて各処理を実行する。
<処理>
次に、本形態の処理を説明する。
図3は、全体処理を例示するためのフローチャートである。また、図4は、図3のステップS11の処理を詳細に説明するためのフローチャートである。
[全体処理]
まず、図1−3を用いて、第1実施形態の全体処理を説明する。
まず、行列分解装置11の入力部1101(図2)に、2d×2dのユニタリな行列Gが入力される(ステップS10)。dは正整数であり、本形態の例では、2d=2n(nは正整数)を満たす。また、d≧1であればよいが、実質的に行列分解処理が実行されるのはd≧2の場合である。また、本形態の行列Gは、例えば、特殊ユニタリ行列(行列式が1のユニタリ行列)である。入力された行列Gは、行列分解装置11の記憶部1110に格納される。
次に、行列分解装置11が、行列Gの行列分解処理を実行し、それによって得られた対角行列Y(1),Y(2)、行列P(1),P(2)、行列積K(1)・P(1),K(2)・P(2)、実数θ(11),...,θ(1d),θ(21),...,θ(2d),φ(11),...,φ(1d),φ(21),...,φ(2d)の値θ'(11),...,θ'(1d),θ'(21),...,θ'(2d),φ'(11),...,φ'(1d),φ'(21),...,φ'(2d)を出力する(ステップS11)。ステップS11の処理の詳細は後述する。
次に、トフォリゲート分解部12にステップS11で得られた対角行列Y(1),Y(2)が入力され、トフォリゲート分解部12が行列
Figure 0005325072
から所定の成分を抜き出した行列を組み合わせることにより、式(14)に示す行列を、それぞれがトフォリゲートを示すd個の行列TGの積に分解し、各行列TGを記憶部15に格納する(ステップS12)。例えば、トフォリゲート分解部12は、式(14)に示す行列を以下のようなd個の行列TGに分解する。ここで、詳細は後述の<<ステップS1104の具体例>>および対角行列計算部1105の処理にて説明を行うが、y(1),・・・,y(d)は行列G(11)*・G(11)のd個の固有値であり、√y(1), ・・・,√y(d)は行列Y(1)の対角成分、i√(1-y(1)),・・・,i√(1-y(d))は行列Y(2)の対角成分である。
Figure 0005325072
次に、制御部13が、ステップS11で得られたP(1),P(2),K(1)・P(1),K(2)・P(2)のサイズが2×2よりも大きいか否かを判定する(ステップS13)。ここで、P(1),P(2),K(1)・P(1),K(2)・P(2)のサイズが2×2よりも大きいと判定された場合、再帰処理部14に、ステップS11で得られたP(1),P(2),K(1)・P(1),K(2)・P(2)、θ'(11),...,θ'(1d),θ'(21),...,θ'(2d),φ'(11),...,φ'(1d),φ'(21),...,φ'(2d)が入力される。再帰処理部14は、θ'(11),...,θ'(1d),θ'(21),...,θ'(2d),φ'(11),...,φ'(1d),φ'(21),...,φ'(2d)によって未知の実数θ(11),...,θ(1d),θ(21),...,θ(2d),φ(11),...,φ(1d),φ(21),...,φ(2d)の値が定められたP(1),P(2),K(1)・P(1),K(2)・P(2)のそれぞれを新たな行列Gに設定して記憶部1110に格納し、dを新たな2dとして更新して(ステップS14)、ステップS11の処理に戻る。
一方、ステップS13の判定で、P(1),P(2),K(1)・P(1),K(2)・P(2)のサイズが2×2以下であると判定された場合、再帰処理部14に、ステップS11で得られたP(1),P(2),K(1)・P(1),K(2)・P(2)、θ'(11),...,θ'(1d),θ'(21),...,θ'(2d),φ'(11),...,φ'(1d),φ'(21),...,φ'(2d)が入力される。再帰処理部14は、θ'(11),...,θ'(1d),θ'(21),...,θ'(2d),φ'(11),...,φ'(1d),φ'(21),...,φ'(2d)によって未知の実数θ(11),...,θ(1d),θ(21),...,θ(2d),φ(11),...,φ(1d),φ(21),...,φ(2d)の値が定められたP(1),P(2),K(1)・P(1),K(2)・P(2)のそれぞれを、基本ゲートを示す行列BGとして記憶部1110に格納する(ステップS15)。
[行列分解処理(ステップS11)の詳細]
次に、ステップS11の行列分解処理の詳細を説明する。
まず、行列分解装置11(図2)の入力行列分割部1102が、記憶部1110から分解処理対象の行列Gを抽出し、当該行列Gが入力行列分割部1102に入力される(ステップS1101)。入力行列分割部1102は、入力された行列Gを式(16)のように4つのブロックに分割し、当該行列Gから式(16)を満たすd×dの部分行列G(11),G(22)を抽出する。
Figure 0005325072
抽出された部分行列G(11),G(22)は記憶部1110に出力され、そこに格納される(ステップS1102)。
次に、第1行列積計算部2103に、記憶部1110に格納された部分行列G(11),G(22)が入力される。第1行列積計算部2103は、部分行列G(11),G(22)それぞれの共役転置行列G(11)*,G(22)*を生成し、さらに、G(11)*とG(11)との行列積G(11)*・G(11)と、G(22)*とG(22)との行列積G(22)*・G(22)と、G(11)とG(11)*との行列積G(11)・G(11)*と、G(22)とG(22)*との行列積G(22)・G(22)*とを生成し、当該行列積G(11)*・G(11),G(22)*・G(22),G(11)・G(11)*,G(22)・G(22)*を記憶部1110に出力する。出力された行列積G(11)*・G(11),G(22)*・G(22),G(11)・G(11)*,G(22)・G(22)*は、記憶部1110に格納される(ステップS1103)。
次に、固有値・固有ベクトル計算部1104に、記憶部1110に格納された行列積G(11)*・G(11),G(22)*・G(22),G(11)・G(11)*,G(22)・G(22)*が入力される。固有値・固有ベクトル計算部1104は、行列積G(11)*・G(11),G(22)*・G(22),G(11)・G(11)*,G(22)・G(22)*それぞれに対して共通の固有値y(1),...,y(d)と、固有値y(1),...,y(d)に対応する行列積G(11)*・G(11)の固有ベクトルV(11),...,V(1d)と、固有値y(1),...,y(d)に対応する行列積G(22)*・G(22)の固有ベクトルV(21),...,V(2d)と、固有値y(1),...,y(d)に対応する行列積G(11)・G(11)*の固有ベクトルW(11),...,W(1d)と、固有値y(1),...,y(d)に対応する行列積G(22)・G(22)*の固有ベクトルW(21),...,W(2d)とを算出する。算出された各値は記憶部1110に出力され、そこに格納される(ステップS1104)。
《ステップS1104の具体例》
固有値・固有ベクトル計算部1104は、まず、行列積G(11)*・G(11)の固有値y(1),...,y(d)と固有ベクトルV(11),...,V(1d)とを計算する。ここで、G(11)*・G(11)はエルミート行列なので、y(1),...,y(d)は実数となる。また、エルミート行列の異なる固有値に対する固有ベクトルは直交するので、V(11),...,V(1d)は正規直交ベクトルと考えてよい。
次に、固有値・固有ベクトル計算部1104は、行列積G(11)・G(11)*の固有値y(1),...,y(d)(G(11)・G(11)*の固有値がG(11)*・G(11)の固有値と常に等しいことは容易に証明できる)に対する固有ベクトルW(11),...,W(1d)を算出する。G(11)・G(11)*もエルミート行列なので、W(11),...,W(1d)は正規直交ベクトルと考えてよい。
次に、固有値・固有ベクトル計算部1104は、行列積G(22)*・G(22)の固有値y(1),...,y(d)(G(22)*・G(22)の固有値がG(11)*・G(11)の固有値と常に等しいことは容易に証明できる)に対する固有ベクトルV(21),...,V(2d)を算出する。G(22)*・G(22)もエルミート行列なので、V(21),...,V(2d)は正規直交ベクトルと考えてよい。
次に、固有値・固有ベクトル計算部1104は、行列積G(22)・G(22)*の固有値y(1),...,y(d)(G(22)・G(22)*の固有値がG(11)*・G(11)の固有値と常に等しいことは容易に証明できる)に対する固有ベクトルW(21),...,W(2d)を算出する。G(22)・G(22)*もエルミート行列なので、W(21),...,W(2d)は正規直交ベクトルと考えてよい。
なお、固有値及び固有ベクトルは、周知の計算手法により計算することができる。特に、G(11)*・G(11),G(22)*・G(22),G(11)・G(11)*,G(22)・G(22)*はエルミート行列であるため、その取り扱いは容易である。すなわち、対象のエルミート行列をHouseholder変換やLanczosの方法等を用いて三重対角行列(三重対角エルミート行列)に変換し、それにQR法やSturm法を適用すれば、その固有値及び固有ベクトルを求めることができる(例えば、参考文献1,2参照)。また、参考文献3などに示される公知の方法によって固有値及び固有ベクトルを求めてもよい。
参考文献1:森正武,杉原正顕,室田一雄著,「岩波講座応用数学 線形計算」,岩波書店,1994.
参考文献2:F. シャトラン著,伊理正夫,伊理由美訳,「行列の固有値」,シュプリンガー・フェアラーク東京,1993.
参考文献3:特許第04260725号(特開2006-139575)固有値計算装置、固有値計算方法、固有値計算プログラム及び記録媒体(日本電信電話株式会社)
また、G(11)*・G(11),G(22)*・G(22),G(11)・G(11)*,G(22)・G(22)*の固有値は全て等しいので、上記固有値と固有ベクトルを算出する順序は問わない。すなわち、必ずしも上述したようにG(11)*・G(11),G(22)*・G(22),G(11)・G(11)*,G(22)・G(22)*の順に固有値と固有ベクトルを算出する必要はない(《ステップS1104の具体例》の説明終わり)。
次に、対角行列計算部1105に、記憶部1110に格納された固有値y(1),...,y(d)が入力される。対角行列計算部1105は、式(14)の行列を構成する部分行列である対角行列Y(1),Y(2)を生成する。すなわち、対角行列計算部1105は、y(1),...,y(d)の平方根√y(1),...,√y(d)を対角成分に持つd×dの対角行列
Y(1)=diag(√y(1),...,√y(d)) …(17)
と、1-y(1),...,1-y(d)の平方根√(1-y(1)),...,√(1-y(d))に虚数単位iを乗じたi√(1-y(1)),...,i√(1-y(d))を対角成分に持つd×dの対角行列
Y(2)=diag(i√(1-y(1)),...,i√(1-y(d))) …(18)
とを生成し、当該対角行列Y(1),Y(2)を記憶部1110に出力する。記憶部1110に出力された対角行列Y(1),Y(2)は、そこに格納される(ステップS1105)。なお、diag(A,B,...)は、A,B,...を対角成分とする対角行列を意味する。
次に、行列構成部1106に、記憶部1110に格納された固有ベクトルV(11),...,V(1d),V(21),...,V(2d)が入力される。行列構成部1106は、行列
P(1)=(ei・θ(11)・V(11),...,ei・θ(1d)・V(1d)) …(19)
P(2)=(ei・θ(21)・V(21),...,ei・θ(2d)・V(2d)) …(20)
を生成し、当該行列P(1),P(2)を記憶部1110に出力する。なお、eはネイピア数であり、eAはネイピア数eを底とした指数関数を意味する。また、(α,β,...)は、ベクトルα,β,...をそれぞれ列ベクトルとする行列を意味する。さらに、θ(11),...,θ(1d),θ(21),...,θ(2d)は未知の実数である。記憶部1110に出力された行列P(1),P(2)は、そこに格納される(ステップS1106)。
次に、第2行列積計算部2107に、記憶部1110に格納された固有ベクトルW(11),...,W(1d),W(21),...,W(2d)が入力される。第2行列積計算部2107は、行列積
K(1)・P(1)=(ei・φ(11)・W(11),...,ei・φ(1d)・W(1d)) …(21)
K(2)・P(2)=(ei・φ(21)・W(21),...,ei・φ(2d)・W(2d)) …(22)
を生成し、当該行列積K(1)・P(1),K(2)・P(2)を記憶部1110に出力する。なお、φ(11),...,φ(1d),φ(21),...,φ(2d)は未知の実数である。記憶部1110に出力された行列積K(1)・P(1),K(2)・P(2)は、そこに格納される(ステップS1107)。
次に、未知数算出部1108に、記憶部1110に格納されたY(1),Y(2),P(1),P(2),K(1)・P(1),K(2)・P(2)が入力される。未知数算出部1108は、これらを用い
G(11)=(K(1)・P(1))・Y(1)・P(1)* …(23)
G(22)=(K(2)・P(2))・Y(1)・P(2)* …(24)
G(12)=(K(1)・P(1))・Y(2)・P(2)* …(25)
G(21)=(K(2)・P(2))・Y(2)・P(1)* …(26)
を満たす、実数θ(11),...,θ(1d),θ(21),...,θ(2d),φ(11),...,φ(1d),φ(21),...,φ(2d)の値θ'(11),...,θ'(1d),θ'(21),...,θ'(2d),φ'(11),...,φ'(1d),φ'(21),...,φ'(2d)をそれぞれ選択し、選択した各値を記憶部1110に出力する(ステップS1108)。
《ステップS1108の具体例》
例えば、未知数算出部1108は、上記4つの関係式(23)-(26)から得られる、
Y(1)・diag(ei(-θ(11)+φ(11)),...,ei(-θ(1d)+φ(1d)))=Y(1)・(W(11),...,W(1d))*・G(11)・(V(11),...,V(1d)) …(27)
Y(1)・diag(ei(-θ(21)+φ(21)),...,ei(-θ(2d)+φ(2d)))=Y(1)・(W(21),...,W(2d))*・G(22)・(V(21),...,V(2d)) …(28)
Y(2)・diag(ei(-θ(21)+φ(11)),...,ei(-θ(2d)+φ(1d)))=Y(2)・(W(11),...,W(1d))*・G(12)・(V(21),...,V(2d)) …(29)
Y(2)・diag(ei(-θ(11)+φ(21)),...,ei(-θ(1d)+φ(2d)))=Y(2)・(W(21),...,W(2d))*・G(21)・(V(11),...,V(1d)) …(30)
を満たす、実数θ(11)=θ'(11),...,θ(1d)=θ'(1d),θ(21)=θ'(21),...,θ(2d)=θ'(2d),φ(11)=φ'(11),...,φ(1d)=φ'(1d),φ(21)=φ'(21),...,φ(2d)=φ'(2d)を選ぶ。例えば、未知数算出部1108は、θ(11)=・・・=θ(1d)=0とおき、式(27)(30)の左辺と右辺との行列成分を比較することにより、φ(11),...,φ(1d),φ(21),...,φ(2d)の値求め、次に、式(28)又は(30)からθ(21),...,θ(2d)の値を求めることができる。なお、式(28)又は(30)のどちらの式を用いても答えは同じになる(《ステップS1108の具体例》の説明終わり)。
次に、出力部1109に、記憶部1110に格納された
Y(1),Y(2)
P(1),P(2)
K(1)・P(1),K(2)・P(2)
θ’(11),...,θ’(1d),θ’(21),...,θ’(2d)
φ’(11),...,φ’(1d),φ’(21),...,φ’(2d)
が入力され、これらが出力される(ステップS1109)。
以上のように出力部1109から出力される各値によって、式(8)の右辺に含まれる全ての部分行列Y(1),Y(2),P(1),P(2),K(1)・P(1),K(2)・P(2)を特定することができる。なお、K(1)とK(2)はK(1)・P(1)及びK(2)・P(2)の形でしか利用されないため、K(1)とK(2)が求まらなくても行列積K(1)・P(1)とK(2)・P(2)が求められれば問題はない。
なお、上記実施形態では、第1行列積計算部1103、固有値・固有ベクトル計算部1104、対角行列計算部1105、行列構成部1106、第2行列積計算部1107、未知数算出部1108の各部において、G(11)*・G(11), G(11)・G(11)*, G(22)*・G(22), G(22)・G(22)*に関する計算を同時に行っているが、G(11)*・G(11), G(11)・G(11)*, G(22)*・G(22), G(22)・G(22)*の各行列毎に別の処理部で処理を行っても良いし、逐次実行しても良い。また、図4では、S1105〜S1107が逐次実行されるように書かれているが、S1105〜S1107の処理は互いに独立である。そのため、S1105〜S1107の処理が異なる順序で実行されてもよいし、S1105〜S1107の処理の少なくとも一部が並列に実行されてもよい。また、本形態では、2d=2nとし、行列分解装置11を量子回路の設計に利用するために、行列分解装置11で生成される部分行列のサイズが2×2になるまで、行列分解装置11の処理を再帰的に適用することとした。しかし、行列分解装置11の処理を再帰的に適用しない構成であってもよく、その場合には、2d=2nを満たさなくてもよい。
〔第2実施形態〕
次に、本発明の第2実施形態を説明する。本形態は第1実施形態の変形例であり、K(1)・P(1),K(2)・P(2)の生成方法が第1実施形態と相違する。本形態の手法は、行列積G(11)*・G(11)の固有ベクトルV(11),...,V(1d)に対し、G(11)・V(11),...,G(11)・V(1d)がそれぞれ、行列積G(11)・G(11)*の固有ベクトルW(11),...,W(1d)となるという事実に基づく。また、本形態の手法は、行列積G(11)・P(1)及びG(22)・P(2)のすべての列ベクトルがゼロベクトルでない場合に適用できる。よって、行列積G(11)・P(1)又はG(22)・P(2)がゼロベクトルとなる列ベクトルを含む場合には、第1実施形態の手法が適用される。以下では、第1実施形態との相違点を中心に説明する。
<構成>
図1に例示するように、第2実施形態の量子回路設計装置2は、行列分解装置21と、トフォリゲート分解部12と、制御部13と、再帰処理部24と、記憶部15とを有する。なお、量子回路設計装置2は、公知のコンピュータに所定のプログラムが読込まれ、実行されることによって構成されるものである。
図5は、行列分解装置の機能構成を例示するための図である。
図5に例示するように、行列分解装置21は、入力部1101と、入力行列分割部1102と、第1行列積計算部2103と、固有値・固有ベクトル計算部1104と、対角行列計算部1105と、行列構成部1106と、第2行列積計算部2107と、未知数算出部2108と、出力部2109と、記憶部1110とを有する。
[処理]
図3に例示するように、第2実施形態の処理は、第1実施形態のステップS11の処理がステップS21の処理に置換され、ステップS14の処理がステップS24の処理に置換され、ステップS15の処理がステップS25の処理に置換されたものである。以下に、本形態のステップS21の処理と、ステップS24の処理と、ステップS25の処理とを説明する。
《ステップS21の処理》
図6は、第2実施形態のステップS21の処理を詳細に説明するためのフローチャートである。
ステップS21では、まず、第1実施形態で説明したステップS1101−S1106の処理が実行された後、第2行列積計算部2107(図5)に、記憶部1110に格納されたG(11),G(22),P(1),P(2)が入力される。第2行列積計算部2107は、行列積G(11)・P(1)又はG(22)・P(2)がゼロベクトルとなる列ベクトルを含むか否かを判定する(ステップS2106)。
ここで、行列積G(11)・P(1)又はG(22)・P(2)がゼロベクトルとなる列ベクトルを含むと判定された場合には、第1実施形態で説明したステップS1107−S1109の処理が実行される。一方、行列積G(11)・P(1)又はG(22)・P(2)がゼロベクトルとなる列ベクトルを含まないと判定された場合(行列積G(11)・P(1),G(22)・P(2)の各列ベクトルがすべてゼロベクトル以外であると判定された場合)、第2行列積計算部2107(図5)が、行列積G(11)・P(1)の各列ベクトルの大きさがそれぞれ1になるように当該行列積G(11)・P(1)を正規化した行列を行列積K(1)・P(1)として生成し、行列積G(22)・P(2)の各列ベクトルの大きさがそれぞれ1になるように当該行列積G(22)・P(2)を正規化した行列を行列積K(2)・P(2)として生成する(ステップS2107)。なお、第2行列積計算部2107は、行列積G(11)・P(1)の各列ベクトルの大きさでその列ベクトルの要素を除することによって行列積G(11)・P(1)の各列ベクトルの大きさがそれぞれ1になるように正規化し、行列積G(22)・P(2)の各列ベクトルの大きさでその列ベクトルの要素を除することによって行列積G(22)・P(2)の各列ベクトルの大きさがそれぞれ1になるように正規化する。なお、ステップS2107の処理が実行されるのは、行列積G(11)・P(1)及びG(11)・P(1)のすべての列ベクトルの大きさがゼロベクトル以外である場合であるため、このような正規化は可能である。また、列ベクトルの大きさは、その列ベクトルの各要素の二乗和の平方根として求めることができる。
次に、未知数算出部2108に、記憶部1110に格納されたY(1),Y(2),P(1),P(2),K(1)・P(1),K(2)・P(2)が入力される。未知数算出部2108は、これらを用い
G(12)=(K(1)・P(1))・Y(2)・P(2)* …(25)
G(21)=(K(2)・P(2))・Y(2)・P(1)* …(26)
を満たす、実数θ(11),...,θ(1d),θ(21),...,θ(2d)の値θ'(11),...,θ'(1d),θ'(21),...,θ'(2d)をそれぞれ選択し、選択した各値を記憶部1110に出力する(ステップS2108)。
次に、出力部2109に、記憶部1110に格納された
Y(1),Y(2)
P(1),P(2)
K(1)・P(1),K(2)・P(2)
θ’(11),...,θ’(1d),θ’(21),...,θ’(2d)
が入力され、これらが出力される(ステップS2109)。
《ステップS24の処理》
ステップS13の判定で、P(1),P(2),K(1)・P(1),K(2)・P(2)のサイズが2×2よりも大きいと判定された場合、再帰処理部24(図1)に、ステップS21で得られたP(1),P(2),K(1)・P(1),K(2)・P(2)、θ'(11),...,θ'(1d),θ'(21),...,θ'(2d)が入力される。再帰処理部14は、θ'(11),...,θ'(1d),θ'(21),...,θ'(2d)によって未知の実数θ(11),...,θ(1d),θ(21),...,θ(2d)の値が定められたP(1),P(2),K(1)・P(1),K(2)・P(2)のそれぞれを新たな行列Gに設定して記憶部1110に格納し、dを新たな2dとして更新して(ステップS24)、ステップS21の処理に戻る。
《ステップS25の処理》
ステップS13の判定で、P(1),P(2),K(1)・P(1),K(2)・P(2)のサイズが2×2以下であると判定された場合、再帰処理部24(図1)に、ステップS21で得られたP(1),P(2),K(1)・P(1),K(2)・P(2)、θ'(11),...,θ'(1d),θ'(21),...,θ'(2d)が入力される。再帰処理部24は、θ'(11),...,θ'(1d),θ'(21),...,θ'(2d)によって未知の実数θ(11),...,θ(1d),θ(21),...,θ(2d)の値が定められたP(1),P(2),K(1)・P(1),K(2)・P(2)のそれぞれを、基本ゲートを示す行列BGとして記憶部1110に格納する(ステップS25)。
以上のように、本形態では、行列積G(11)*・G(11)の固有ベクトルV(11),...,V(1d)に対し、G(11)・V(11),...,G(11)・V(1d)がそれぞれ、行列積G(11)・G(11)*の固有ベクトルW(11),...,W(1d)となるという事実に基づき、第1実施形態よりも演算量を削減できる。
なお、上記実施形態でも、G(11)*・G(11), G(11)・G(11)*, G(22)*・G(22), G(22)・G(22)*の各行列毎に別の処理部で処理が行われてもよいし、逐次実行されても良い。また、行列分解装置21の処理を再帰的に適用しない構成であってもよく、その場合には、2d=2nを満たさなくてもよい。
〔第3実施形態〕
次に、本発明の第3実施形態を説明する。本形態は第1,2実施形態の変形例であり、K(1)・P(1),K(2)・P(2)の生成方法が第1,2実施形態と相違する。本形態の手法は、行列積G(11)*・G(11)の固有ベクトルV(11),...,V(1d)に対し、G(11)・V(11),...,G(11)・V(1d)がそれぞれ、行列積G(11)・G(11)*の固有ベクトルW(11),...,W(1d)となるという事実、行列積G(11)・P(1)の各列ベクトルの大きさがそれぞれ対角行列Y(1)の各対角要素√y(1),...,√y(d)となり、行列積G(22)・P(2)の各列ベクトルの大きさがそれぞれ√y(1),...,√y(d)となるという事実に基づく。また、本形態の手法は、対角行列Y(1)の各対角要素√y(1),...,√y(d)がすべて0以外である場合に適用できる。よって、√y(1),...,√y(d)の何れかが0となる場合には第1実施形態の手法が適用される。以下では、第1,2実施形態との相違点を中心に説明する。
<構成>
図1に例示するように、第3実施形態の量子回路設計装置3は、行列分解装置31と、トフォリゲート分解部12と、制御部13と、再帰処理部24と、記憶部15とを有する。なお、量子回路設計装置3は、公知のコンピュータに所定のプログラムが読込まれ、実行されることによって構成されるものである。
また、図5に例示するように、行列分解装置21は、入力部1101と、入力行列分割部1102と、第1行列積計算部2103と、固有値・固有ベクトル計算部1104と、対角行列計算部1105と、行列構成部1106と、第2行列積計算部3107と、未知数算出部2108と、出力部2109と、記憶部1110とを有する。
[処理]
図3に例示するように、第3実施形態の処理は、第1実施形態のステップS11の処理がステップS31の処理に置換され、ステップS14の処理がステップS24の処理に置換され、ステップS15の処理がステップS25の処理に置換されたものである。ステップS24,S25の処理については第2実施形態で説明したため、以下ではステップS31の処理のみを説明する。
《ステップS31の処理》
図7は、第3実施形態のステップS31の処理を詳細に説明するためのフローチャートである。
ステップS31では、まず、第1実施形態で説明したステップS1101−S1106の処理が実行された後、第2行列積計算部3107(図5)に、記憶部1110に格納された対角行列Y(1)が入力される。第2行列積計算部3107は、対角行列Y(1)の対角要素√y(1),...,√y(d)の何れかが0であるか否かを判定する(ステップS3106)。
ここで、対角行列Y(1)の対角要素√y(1),...,√y(d)の何れかが0であった場合には、第1実施形態で説明したステップS1107−S1109の処理が実行される。一方、対角行列Y(1)の各対角要素√y(1),...,√y(d)がすべて0以外であった場合、第2行列積計算部3107は、行列積G(11)・P(1)・Y(1)-1を行列積K(1)・P(1)として生成し、行列積G(22)・P(2)・Y(1)-1を行列積K(2)・P(2)として生成し、当該行列積K(1)・P(1),K(2)・P(2)を記憶部1110に出力する。出力された行列積K(1)・P(1),K(2)・P(2)は、記憶部1110に格納される(ステップS3107)。なお、Y(1)-1はY(1)の逆行列を示す。また、ステップS3107の処理が実行されるのは対角行列Y(1)の対角要素√y(1),...,√y(d)のすべてが0以外の場合であるため、このY(1)-1は必ず存在する。
その後、第2実施形態で説明したステップS2108及びS2109が実行される。
以上のように、本形態では、行列積G(11)*・G(11)の固有ベクトルV(11),...,V(1d)に対し、G(11)・V(11),...,G(11)・V(1d)がそれぞれ、行列積G(11)・G(11)*の固有ベクトルW(11),...,W(1d)となるという事実、行列積G(11)・P(1)の各列ベクトルの大きさがそれぞれ対角行列Y(1)の各対角要素√y(1),...,√y(d)となり、行列積G(22)・P(2)の各列ベクトルの大きさがそれぞれ√y(1),...,√y(d)となるという事実に基づき、第1,2実施形態よりも演算量を削減できる。
なお、上記実施形態でも、G(11)*・G(11), G(11)・G(11)*, G(22)*・G(22), G(22)・G(22)*の各行列毎に別の処理部で処理が行われてもよいし、逐次実行されても良い。また、行列分解装置21の処理を再帰的に適用しない構成であってもよく、その場合には、2d=2nを満たさなくてもよい。
〔その他の変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
本発明は、例えば、量子コンピュータの量子回路設計に利用できる。
1−3 量子回路設計装置
11,21,31 行列分解装置

Claims (6)

  1. 2d×2d(dは正整数)のユニタリな行列Gを入力とし、当該行列Gから、
    Figure 0005325072
    を満たすd×dの部分行列G(11),G(22)を抽出し、当該部分行列G(11),G(22)を出力する入力行列分割部と、
    前記部分行列G(11),G(22)を入力とし、行列Aの共役転置行列をA*とした場合における、G(11)*とG(11)との行列積G(11)*・G(11)と、G(22)*とG(22)との行列積G(22)*・G(22)とを生成し、当該行列積G(11)*・G(11),G(22)*・G(22)を出力する第1行列積計算部と、
    前記行列積G(11)*・G(11),G(22)*・G(22)を入力とし、前記行列積G(11)*・G(11),G(22)*・G(22)に対して共通の固有値y(1),...,y(d)と、当該固有値y(1),...,y(d)に対応する前記行列積G(11)*・G(11)の固有ベクトルV(11),...,V(1d)と、当該固有値y(1),...,y(d)に対応する前記行列積G(22)*・G(22)の固有ベクトルV(21),...,V(2d)とを求め、前記固有値y(1),...,y(d)と前記固有ベクトルV(11),...,V(1d),V(21),...,V(2d)とを出力する固有値・固有ベクトル計算部と、
    前記固有値y(1),...,y(d)を入力とし、y(1),...,y(d)の平方根√y(1),...,√y(d)を対角成分に持つd×dの対角行列Y(1)=diag(√y(1),...,√y(d))と、1-y(1),...,1-y(d)の平方根√(1-y(1)),...,√(1-y(d))に虚数単位iを乗じたi√(1-y(1)),...,i√(1-y(d))を対角成分に持つd×dの対角行列Y(2)=diag(i√(1-y(1)),...,i√(1-y(d)))とを生成し、当該対角行列Y(1),Y(2)を出力する対角行列計算部と、
    前記固有ベクトルV(11),...,V(1d),V(21),...,V(2d)を入力とし、eをネイピア数とし、θ(11),...,θ(1d),θ(21),...,θ(2d)を実数とした場合における、行列P(1)=(ei・θ(11)・V(11),...,ei・θ(1d)・V(1d)),P(2)=(ei・θ(21)・V(21),...,ei・θ(2d)・V(2d))を生成し、当該行列P(1),P(2)を出力する行列構成部と、
    前記固有値y(1),...,y(d)に対応する行列積G(11)・G(11)*の固有ベクトルをW(11),...,W(1d)とし、前記固有値y(1),...,y(d)に対応する行列積G(22)・G(22)*の固有ベクトルをW(21),...,W(2d)とし、φ(11),...,φ(1d),φ(21),...,φ(2d)を実数とした場合における、K(1)・P(1)=(ei・φ(11)・W(11),...,ei・φ(1d)・W(1d)),K(2)・P(2)=(ei・φ(21)・W(21),...,ei・φ(2d)・W(2d))を満たす行列積K(1)・P(1),K(2)・P(2)を生成し、当該行列積K(1)・P(1),K(2)・P(2)を出力する第2行列積計算部と、
    を有する行列分解装置。
  2. 請求項1の行列分解装置であって、
    前記第1行列積計算部は、さらに、G(11)とG(11)*との前記行列積G(11)・G(11)*と、G(22)とG(22)*とのG(22)・G(22)*を生成し、当該行列積G(11)・G(11)*,G(22)・G(22)*を出力し、
    前記固有値・固有ベクトル計算部は、さらに、前記行列積G(11)・G(11)*,G(22)・G(22)*を入力とし、前記固有ベクトルW(11),...,W(1d),W(21),...,W(2d)を求め、当該固有ベクトルW(11),...,W(1d),W(21),...,W(2d)を出力し、
    前記第2行列積計算部は、前記固有ベクトルW(11),...,W(1d),W(21),...,W(2d)を入力とし、前記行列積K(1)・P(1)=(ei・φ(11)・W(11),...,ei・φ(1d)・W(1d)),K(2)・P(2)=(ei・φ(21)・W(21),...,ei・φ(2d)・W(2d))を生成し、当該行列積K(1)・P(1),K(2)・P(2)を出力し、
    当該行列分解装置は、さらに、
    G(11)=(K(1)・P(1))・Y(1)・P(1)*
    G(22)=(K(2)・P(2))・Y(1)・P(2)*
    G(12)=(K(1)・P(1))・Y(2)・P(2)*
    G(21)=(K(2)・P(2))・Y(2)・P(1)*
    を満たす、前記実数θ(11),...,θ(1d),θ(21),...,θ(2d),φ(11),...,φ(1d),φ(21),...,φ(2d)の値をそれぞれ選択し、選択した各値を出力する未知数算出部を有する、
    ことを特徴とする行列分解装置。
  3. 請求項1の行列分解装置であって、
    前記第2行列積計算部は、前記部分行列G(11),G(22)と前記行列P(1),P(2)とを入力とし、行列積G(11)・P(1),G(22)・P(2)の各列ベクトルがすべてゼロベクトル以外である場合に、前記行列積G(11)・P(1)の各列ベクトルの大きさがそれぞれ1になるように当該行列積G(11)・P(1)を正規化した行列を前記行列積K(1)・P(1)として生成し、前記行列積G(22)・P(2)の各列ベクトルの大きさがそれぞれ1になるように当該行列積G(22)・P(2)を正規化した行列を前記行列積K(2)・P(2)として生成し、
    当該行列分解装置は、さらに、
    G(12)=(K(1)・P(1))・Y(2)・P(2)*
    G(21)=(K(2)・P(2))・Y(2)・P(1)*
    を満たすように前記実数θ(11),...,θ(1d),θ(21),...,θ(2d)の値をそれぞれ選択し、選択した各値を出力する未知数算出部を有する、
    ことを特徴とする行列分解装置。
  4. 請求項1又は3の行列分解装置であって、
    前記第2行列積計算部は、前記部分行列G(11),G(22)と前記行列P(1),P(2)と前記対角行列Y(1)とを入力とし、前記対角行列Y(1)の各対角要素√y(1),...,√y(d)がすべて0以外である場合に、行列積G(11)・P(1)・Y(1)-1を前記行列積K(1)・P(1)として生成し、行列積G(22)・P(2)・Y(1)-1を前記行列積K(2)・P(2)として生成し、
    当該行列分解装置は、さらに、
    G(12)=(K(1)・P(1))・Y(2)・P(2)*
    G(21)=(K(2)・P(2))・Y(2)・P(1)*
    を満たすように前記実数θ(11),...,θ(1d)及びθ(21),...,θ(2d)の値をそれぞれ選択し、選択した各値を出力する未知数算出部を有する、
    ことを特徴とする行列分解装置。
  5. 第1行列積計算部と固有値・固有ベクトル計算部と対角行列計算部と行列構成部と第2行列積計算部とを有する行列分解装置が実行する行列分解方法であって、
    前記入力行列分割部が、2d×2d(dは正整数)のユニタリな行列Gを入力とし、当該行列Gから、
    Figure 0005325072
    を満たすd×dの部分行列G(11),G(22)を抽出し、当該部分行列G(11),G(22)を出力するステップと、
    前記第1行列積計算部が、前記部分行列G(11),G(22)を入力とし、行列Aの共役転置行列をA*とした場合における、G(11)*とG(11)との行列積G(11)*・G(11)と、G(22)*とG(22)との行列積G(22)*・G(22)とを生成し、当該行列積G(11)*・G(11),G(22)*・G(22)を出力するステップと、
    前記固有値・固有ベクトル計算部が、前記行列積G(11)*・G(11),G(22)*・G(22)を入力とし、前記行列積G(11)*・G(11),G(22)*・G(22)に対して共通の固有値y(1),...,y(d)と、当該固有値y(1),...,y(d)に対応する前記行列積G(11)*・G(11)の固有ベクトルV(11),...,V(1d)と、当該固有値y(1),...,y(d)に対応する前記行列積G(22)*・G(22)の固有ベクトルV(21),...,V(2d)とを求め、前記固有値y(1),...,y(d)と前記固有ベクトルV(11),...,V(1d),V(21),...,V(2d)とを出力するステップと、
    前記対角行列計算部が、前記固有値y(1),...,y(d)を入力とし、y(1),...,y(d)の平方根√y(1),...,√y(d)を対角成分に持つd×dの対角行列Y(1)=diag(√y(1),...,√y(d))と、1-y(1),...,1-y(d)の平方根√(1-y(1)),...,√(1-y(d))に虚数単位iを乗じたi√(1-y(1)),...,i√(1-y(d))を対角成分に持つd×dの対角行列Y(2)=diag(i√(1-y(1)),...,i√(1-y(d)))とを生成し、当該対角行列Y(1),Y(2)を出力するステップと、
    前記行列構成部が、前記固有ベクトルV(11),...,V(1d),V(21),...,V(2d)を入力とし、eをネイピア数とし、θ(11),...,θ(1d),θ(21),...,θ(2d)を実数とした場合における、行列P(1)=(ei・θ(11)・V(11),...,ei・θ(1d)・V(1d)),P(2)=(ei・θ(21)・V(21),...,ei・θ(2d)・V(2d))を生成し、当該行列P(1),P(2)を出力するステップと、
    前記第2行列積計算部が、前記固有値y(1),...,y(d)に対応する行列積G(11)・G(11)*の固有ベクトルをW(11),...,W(1d)とし、前記固有値y(1),...,y(d)に対応する行列積G(22)・G(22)*の固有ベクトルをW(21),...,W(2d)とし、φ(11),...,φ(1d),φ(21),...,φ(2d)を実数とした場合における、K(1)・P(1)=(ei・φ(11)・W(11),...,ei・φ(1d)・W(1d)),K(2)・P(2)=(ei・φ(21)・W(21),...,ei・φ(2d)・W(2d))を満たす行列積K(1)・P(1),K(2)・P(2)を生成し、当該行列積K(1)・P(1),K(2)・P(2)を出力するステップと、
    を有する行列分解方法。
  6. 請求項1から4の何れかの行列分解装置としてコンピュータを機能させるためのプログラム。
JP2009243481A 2009-10-22 2009-10-22 行列分解装置、行列分解方法及びプログラム Expired - Fee Related JP5325072B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009243481A JP5325072B2 (ja) 2009-10-22 2009-10-22 行列分解装置、行列分解方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009243481A JP5325072B2 (ja) 2009-10-22 2009-10-22 行列分解装置、行列分解方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011090497A JP2011090497A (ja) 2011-05-06
JP5325072B2 true JP5325072B2 (ja) 2013-10-23

Family

ID=44108694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009243481A Expired - Fee Related JP5325072B2 (ja) 2009-10-22 2009-10-22 行列分解装置、行列分解方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5325072B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679495A (zh) * 2013-12-02 2015-06-03 贝壳网际(北京)安全技术有限公司 软件识别方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023148827A1 (ja) * 2022-02-01 2023-08-10 日本電信電話株式会社 量子コンパイル装置、量子コンパイル方法、およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4260680B2 (ja) * 2004-05-20 2009-04-30 日本電信電話株式会社 ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体
JP4260751B2 (ja) * 2005-01-11 2009-04-30 日本電信電話株式会社 ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体
JP4758965B2 (ja) * 2007-08-27 2011-08-31 日本電信電話株式会社 ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679495A (zh) * 2013-12-02 2015-06-03 贝壳网际(北京)安全技术有限公司 软件识别方法及装置
CN104679495B (zh) * 2013-12-02 2018-04-27 北京猎豹移动科技有限公司 软件识别方法及装置

Also Published As

Publication number Publication date
JP2011090497A (ja) 2011-05-06

Similar Documents

Publication Publication Date Title
Gao et al. A new design of robust H2 filters for uncertain systems
Kim et al. A Lagrangian–DNN relaxation: a fast method for computing tight lower bounds for a class of quadratic optimization problems
De Bie Clifford algebras, Fourier transforms, and quantum mechanics
Müller et al. The partial linear model in high dimensions
JP6612716B2 (ja) パターン識別装置、パターン識別方法およびプログラム
US20180005113A1 (en) Information processing apparatus, non-transitory computer-readable storage medium, and learning-network learning value computing method
Rauh et al. Lifting Markov bases and higher codimension toric fiber products
Mirzaei A greedy meshless local P etrov–G alerkin methodbased on radial basis functions
Drake PyEDA: Data Structures and Algorithms for Electronic Design Automation.
Tonks A poly-algorithmic quantifier elimination package in Maple
Khine et al. Predictive big data analytics using multiple linear regression model
JP5325072B2 (ja) 行列分解装置、行列分解方法及びプログラム
Berkes et al. Testing for structural change of AR model to threshold AR model
Qiu et al. Fast sparse reconstruction algorithm for multidimensional signals
Huong Interval observers for linear functions of state vectors of linear fractional‐order systems with delayed input and delayed output
EP4235526A1 (en) Information processing device, information processing method, and information processing system
El Anbari et al. The adaptive gril estimator with a diverging number of parameters
Oman Easily simulated multivariate binary distributions with given positive and negative correlations
Li et al. Serre’s reduction and the Smith forms of multivariate polynomial matrices
Chang et al. Tensor z‐Transform
Defosseux An interacting particle model and a Pieri-type formula for the orthogonal group
Ferrante et al. On the state space and dynamics selection in linear stochastic models: A spectral factorization approach
Kavalieris et al. Generalized least squares estimation of ARMA models
Ma et al. Recovering low‐rank tensor from limited coefficients in any ortho‐normal basis using tensor‐singular value decomposition
Lee et al. The Square Root Problem and Aluthge transforms of weighted shifts

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110721

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130703

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130719

R150 Certificate of patent or registration of utility model

Ref document number: 5325072

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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