JP4260751B2 - Unitary matrix decomposition apparatus, unitary matrix decomposition method, unitary matrix decomposition program, and recording medium - Google Patents

Unitary matrix decomposition apparatus, unitary matrix decomposition method, unitary matrix decomposition program, and recording medium 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
Japanese (ja)
Other versions
JP2006195587A (en
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/en
Publication of JP2006195587A publication Critical patent/JP2006195587A/en
Application granted granted Critical
Publication of JP4260751B2 publication Critical patent/JP4260751B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、任意のユニタリ行列をそれよりもサイズの小さな行列に分解するユニタリ行列分解装置、ユニタリ行列分解方法、その機能をコンピュータで実現するためのユニタリ行列分解プログラム及びそれを格納した記録媒体に関する。   The present invention relates to a unitary matrix decomposition apparatus, a unitary matrix decomposition method for decomposing an arbitrary unitary matrix into a smaller matrix, a unitary matrix decomposition program for realizing the function by a computer, and a recording medium storing the unitary matrix decomposition program .

量子コンピュータにおける各操作はユニタリ行列によって表現されるが、このユニタリ行列によって表現される各操作を実際の量子回路で実現するためには、このユニタリ行列を実現可能な基本ゲート等に分解しなければならない。以下、従来のユニタリ行列の分解手法について説明する。
<カルタン(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への分解を可能としている。
Each operation in a quantum computer is represented by a unitary matrix, but in order to realize each operation represented by this unitary matrix with an actual quantum circuit, this unitary matrix must be decomposed into basic gates that can be realized. Don't be. A conventional unitary matrix decomposition method will be described below.
<Matrix Decomposition Method Using Cartan Decomposition (see Non-Patent Document 1)>
In this method, a 2 j × 2 j special unitary matrix G∈SU (2 j ) belonging to a Lie group is used as an input, and the unitary group decomposition framework using Cartan decomposition by Khaneja and Glaser (Non-patent Document 2) is used. Decompose unitary matrix. That is, the Lie algebra gεsu (2 j ) satisfying G = exp (g) is calculated from the input matrix, and then g is decomposed into two matrices k and m (g = k + m) by Cartan decomposition, and k And M = exp (k) and M = exp (m) are calculated to calculate G = K · M. Then, by repeating this recursively, the product is decomposed to a unitary matrix product having a small size (number of rows and columns). In order for the decomposed matrix to become a unitary matrix having a size smaller than that of the input matrix G, K and M must satisfy a predetermined condition. In this method, decomposition into K and M satisfying this condition is possible by using Cartan decomposition in Lie algebra.

<Cosine-Sine分解(非特許文献3〜5参照)>
Cosine-Sine分解は、行列の特異値分解の一種である(非特許文献3)。これを応用して、ユニタリ行列を次元の小さな行列の積に分解する技術が提案されている(非特許文献4,5)。
<Cosine-Sine decomposition (see Non-Patent Documents 3 to 5)>
Cosine-Sine decomposition is a kind of singular value decomposition of a matrix (Non-patent Document 3). By applying this, a technique for decomposing a unitary matrix into a product of a matrix with a small dimension has been proposed (Non-Patent Documents 4 and 5).

まず、以下のように、入力行列Gを半分のサイズの4つのブロックに分解する。
First, the input matrix G is decomposed into four blocks of half size as follows.

なお、Gを2×2のユニタリ行列とすると、A,A,C,S,B,Bは、2j−1×2j−1のユニタリ行列となる。さらに、C,Sは下記の形の対角行列となる。
If G is a 2 j × 2 j unitary matrix, A 1 , A 2 , C 1 , S 1 , B 1 , B 2 are 2 j-1 × 2 j-1 unitary matrices. Further, C 1 and S 1 are diagonal matrices of the following form.

その後、同様の分解を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>
Thereafter, similar decomposition is performed on A 1 , A 2 , B 1 , B 2 , and thereafter the same decomposition is repeated recursively until A β , B β becomes a 2 × 2 matrix.
When this Cosine-Sine decomposition is performed using an 8 × 8 matrix G as an example, the matrix G is decomposed into a matrix product having patterns as shown in FIG. In this figure, white squares represent components that are always 0 regardless of the input matrix, and colored squares represent components that have some value depending on the input matrix.
Hiromi Murakami, Yasuto Kawano, Hiroshi Sekikawa, Quantum circuit generation using Cartan decomposition, 10th Quantum Information Technology Study Group (QIT10), Proceedings 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], May 7, 1998, [searched December 28, 2004], Internet <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量子計算機の実装に適した構成に置き換えるのは容易なことではない。
However, in the case of a matrix decomposition method using Cartan decomposition, it is necessary to calculate an exponential function of a matrix and its inverse function, and there is a problem that the calculation cost is very high.
In the case of this method, in order for G = K · M to be decomposed in the decomposition process, the condition that k and m are commutative (k · m = m · k) must be satisfied. However, this property does not hold in general unitary matrices. For this reason, this method cannot be applied to the decomposition of an arbitrary unitary matrix.
In addition, if it is assumed to be mounted on an NMR (Nuclear Magnetic Resonance) quantum computer, the configuration advantage of the quantum computer can be sufficiently obtained, and as a result, the quantum computer can be operated at high speed (Khaneja− (Forms that meet the definition of Glaser decomposition) (M. Nakahara, Y. Kondo, K. Hata, and S. Tanimura, "Demonstrating quantum algorithm acceleration with NMR quantum computer," Internet <http: //jp.arxiv. org / abs / quant-ph / 0405050>). However, it is not easy to replace the decomposition result by Cosine-Sine decomposition with a configuration suitable for implementation of such an NMR quantum computer.

本発明はこのような点に鑑みてなされたものであり、任意のユニタリ行列をサイズの小さな行列に低い演算コストで分解できるユニタリ行列分解装置、ユニタリ行列分解方法、その機能をコンピュータに実行させるためのユニタリ行列分解プログラム及び記録媒体を提供することを目的とする。
また、本発明の他の目的は、分解結果をNMR量子計算機の実装に適した構成に容易に置き換え可能なユニタリ行列分解装置、ユニタリ行列分解方法、その機能をコンピュータに実行させるためのユニタリ行列分解プログラム及び記録媒体を提供することである。
The present invention has been made in view of the above points, and is intended to cause a computer to execute a unitary matrix decomposition apparatus, a unitary matrix decomposition method, and a function thereof that can decompose an arbitrary unitary matrix into a small matrix at a low operation cost. It is an object to provide a unitary matrix decomposition program and a recording medium.
Another object of the present invention is to provide a unitary matrix decomposition apparatus, a unitary matrix decomposition method, and a unitary matrix decomposition for causing a computer to execute the function, which can easily replace the decomposition result with a configuration suitable for implementation of an NMR quantum computer. It is to provide a program and a recording medium.

本発明では上記課題を解決するために、まず、分解対象であるユニタリな行列Gに対し、G=K・M(ユニタリな行列K∈κ及び行列M∈μの積),X=Mを満たす行列Xを生成する。なお、κ,μは、以下の関係を満たす集合を意味する。
In the present invention, in order to solve the above-described problem, first, for a unitary matrix G to be decomposed, G = K · M (product of unitary matrix K∈κ and matrix M∈μ) and X = M 2 are set. A matrix X that satisfies is generated. Note that κ and μ mean a set that satisfies the following relationship.

次に、この行列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)に分解される。 Next, a matrix P for block diagonalizing the matrix X is generated, and a complex conjugate transpose matrix P * of the matrix P is generated. Then, a block diagonal matrix B is generated from the matrix X, the matrix P, and the complex conjugate transpose matrix P * by an operation of B = P * · X · P, and this block diagonal matrix B is converted into a block diagonal matrix of the matrix M. Convert to Y (= P * · M · P). The block diagonal matrix means a square matrix in which a 2 × 2 matrix is arranged in a diagonal component and the other elements are zero. Thereafter, a matrix M is generated from the block diagonal matrix Y, the matrix P, and the complex conjugate transpose matrix P * by an operation of M = P · Y · P * , and a complex conjugate transpose matrix M * of the matrix M is generated. A matrix K is generated from the matrix G and the complex conjugate transposed matrix M * by the operation of K = G · M * . Through the above processing, the matrix G is decomposed into a product (G = K · P · Y · P * ) of the matrix K, the matrix P, the block diagonal matrix Y, and the complex conjugate transpose matrix 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を生成することも容易である。 Here, each of these processes can be easily executed only by computation in the Lie group. That is, it is easy to obtain a matrix X satisfying G = K · M and X = M 2 from G (described later). It is also easy to generate a matrix P for block diagonalizing the matrix X, generate a complex conjugate transpose matrix P * of the matrix P, and obtain a block diagonal matrix B = P * · X · P. . Further, the matrix P becomes a unitary matrix and satisfies P · P * = I (I is a unit matrix), and B = P * · X · P = P * · M 2 · P = (P * · M · P) (P Since ** M * P) = Y 2 , the block diagonal matrix B can be regularly converted to the block diagonal matrix Y. Further, a matrix M is generated from the obtained block diagonal matrix Y, matrix P, and complex conjugate transpose matrix P * by an operation of M = P · Y · P * , and a complex conjugate transpose matrix M * of the matrix M is obtained. It is also easy to generate and generate the matrix K from the matrix G and the complex conjugate transposed matrix M * by the operation of K = G · M * .

また、以上の処理によって生成された行列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からこの「行列に依存する何らかの値の要素」を規則的に抜き出すことにより容易にサイズの小さな行列へ分解できる。 Further, the product K ′ = K · P of the matrix K and the matrix P generated by the above processing and the complex conjugate transpose matrix P * can be decomposed into a matrix smaller in size than the matrix G. That is, in general, if ε, ζεκ or ε, ζεμ, the relationship of ε · ζεκ holds (property 1), so that the relationship X = M 2 εκ also holds. Further, X = P · B · P * holds, but when X∈κ is satisfied, the relationship of P∈κ and P * ∈κ holds as in Non-Patent Document 2. Further, since Kεκ, the relationship of K ′ = K · Pεκ holds from Property 1. As described in Non-Patent Document 2, the matrix K ′, P * , which is an element of κ, has a checkered pattern of 0 elements that do not depend on each matrix and elements of some value that depends on each matrix. It becomes an arrayed matrix. Then, by regularly extracting this “element of some value depending on the matrix” from the matrix K ′, P * , it can be easily decomposed into a small matrix.

さらに、行列MはユニタリでありM・M=Iを満たすため、上記の演算によって求められたK=G・MとMとの積はK・M=G・M・M=Gとなるが、これはKとMとが可換でなくても成り立つ。
またさらに、上記の処理によって生成されたブロック対角行列Yは、2×2の行列が対角上に配列された行列である。このような行列は、変換行列Wとその複素共役転置行列W*とを用いることにより、容易にNMR量子計算機への実装に適した構成に変換できる(後述)。
Further, since the matrix M is unitary and satisfies M * · M = I, the product of K = G · M * and M obtained by the above calculation is K · M = G · M * · M = G. This is true even if K and M are not commutative.
Furthermore, the block diagonal matrix Y generated by the above processing is a matrix in which 2 × 2 matrices are arranged diagonally. Such a matrix can be easily converted into a configuration suitable for mounting on an NMR quantum computer by using a conversion matrix W and its complex conjugate transpose matrix W * (described later).

以上のように本発明では、リー群の演算のみによってユニタリ行列をサイズの小さな行列に分解できる。そのため、カルタン分解を用いた従来手法のように行列の指数関数やその逆関数の計算を必要としない。その結果、本発明では、カルタン分解を用いた従来手法に比べ低い演算コストでユニタリ行列を分解できる。
また、本発明は、KとMが可換でない行列Gにも適用できるため、任意のユニタリ行列の分解に適用することができる。
さらに、本発明では、ブロック対角行列Yを含む形で行列Gを分解することとしたため、分解結果の一部を容易にNMR量子計算機の実装に適した構成に置き換えることができる。
As described above, according to the present invention, a unitary matrix can be decomposed into a small matrix only by Lie group operations. Therefore, it is not necessary to calculate the exponential function of the matrix and its inverse function unlike the conventional method using Cartan decomposition. As a result, in the present invention, the unitary matrix can be decomposed at a lower calculation cost than the conventional method using the Cartan decomposition.
Further, the present invention can be applied to a matrix G in which K and M are not commutative, and can be applied to decomposition of an arbitrary unitary matrix.
Furthermore, in the present invention, since the matrix G is decomposed so as to include the block diagonal matrix Y, a part of the decomposition result can be easily replaced with a configuration suitable for mounting an NMR quantum computer.

以下、本発明を実施するための最良の形態を説明する。
〔第1の実施形態〕
<使用する記号の定義>
まず、本形態で使用する記号を以下のように定義する。
i:虚数単位
A*:行列Aの複素共役転置行列
:s×sの単位行列
:s×sの全成分が0の行列
diag(a,b,c,d):対角成分がa,b,c,dの順に並んだ対角行列
∈:左辺が右辺の集合の元
‖・‖:・のノルム
Hereinafter, the best mode for carrying out the present invention will be described.
[First Embodiment]
<Definition of symbols used>
First, symbols used in this embodiment are defined as follows.
i: Imaginary unit A *: Complex conjugate transposed matrix of matrix A I s : Unit matrix of s × s 0 s : Matrix with all components of s × s being 0 diag (a, b, c, d): Diagonal component Is a diagonal matrix in the order of a, b, c, d ∈: the norm of the set の ・ ‖: ・ of the set whose left side is the right side

<ハードウェア構成>
図1は、本形態におけるユニタリ行列分解装置100の構成を例示したブロック図である。
図1に例示するように、この例のユニタリ行列分解装置100は、CPU(Central Processing Unit)110、入力部120、出力部130、補助記憶装置140、RAM(Random Access Memory)150、ROM(Read Only Memory)160及びバス170を有している。
<Hardware configuration>
FIG. 1 is a block diagram illustrating the configuration of a unitary matrix decomposition apparatus 100 according to this embodiment.
As illustrated in FIG. 1, a unitary matrix decomposition apparatus 100 of this example includes a CPU (Central Processing Unit) 110, an input unit 120, an output unit 130, an auxiliary storage device 140, a RAM (Random Access Memory) 150, and a ROM (Read Only memory) 160 and a bus 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を通信可能に接続している。   The CPU 110 in this example includes a control unit 111, a calculation unit 112, and a register 113, and executes various calculation processes in accordance with various programs read into the register 113. The input unit 120 is an input port for inputting data, a keyboard, a mouse, and the like. The output unit 130 is an output port for outputting data, a display, and the like. The auxiliary storage device 140 is, for example, a hard disk, an MO (Magneto-Optical disc), a semiconductor memory, or the like, and a unitary matrix decomposition program area 141 that stores a unitary matrix decomposition program for executing the unitary matrix decomposition processing of this embodiment. And a data area 142 for storing various data such as a unitary matrix G to be decomposed. The RAM 150 is an SRAM (Static Random Access Memory), a DRAM (Dynamic Random Access Memory), or the like. It has a data area 152 to be stored. The bus 170 connects the CPU 110, the input unit 120, the output unit 130, the auxiliary storage device 140, the RAM 150, and the ROM 160 so that they can communicate with each other.

<ソフトウェア構成>
図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とを有している。
<Software configuration>
FIG. 2 is a conceptual diagram illustrating the configuration of the unitary matrix decomposition program 200 stored in the unitary matrix decomposition program areas 141 and 151 of FIG.
As illustrated in FIG. 2, the unitary matrix decomposer 200 in this example, G = K · M (a product of a unitary matrix K∈κ and matrix M∈myu), to produce a matrix X satisfying X = M 2 A matrix generation program 210 for generating the matrix P, a diagonalization matrix generation program 220 for generating a matrix P for block diagonalizing the matrix X, and a first complex for generating a complex conjugate transpose matrix P * of the matrix P A conjugate transposed matrix generation program 231; a first matrix product operation program 232 for generating a block diagonal matrix B by an operation of B = P * · X · P; and a block diagonal matrix B as a block pair of the matrix M A first block diagonal matrix conversion program 233 for converting into an angular matrix Y (= P * · M · P), and a second block for generating a matrix M by an operation of M = P · Y · P * . Matrix product operation program 2 4, a second complex conjugate transposed matrix generation program 235 for generating a complex conjugate transposed matrix of a matrix M M *, the third matrix multiplication for generating the matrix K by the operation of the K = G · M * The operation program 236, the second block diagonal matrix conversion program 237 for performing the operation of Y ′ = W · Y · W * for the conversion matrix W, and K ′ = K · P and P * are larger than those. A matrix decomposition program 238 for decomposing the matrix into a small matrix and a control program 239 for controlling the unitary matrix decomposition process.

また、この例の行列生成プログラム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とを有している。
Further, the matrix generation program 210 of this example includes a third complex conjugate transpose matrix generation program 211 for generating a complex conjugate transpose matrix G * of the matrix G, and X = σ jz · G * · σ jz · G A fourth matrix product calculation program 212 for generating a matrix X by calculation.
Further, the diagonalization matrix generation program 220 of this example includes an eigenvalue / eigenvector calculation program 221 for calculating eigenvalues and eigenvectors of the matrix X, and an eigenvector u k (k is a natural number) whose corresponding eigenvalue is a positive imaginary number. ) to the eigenvectors u k + sigma generates jz · u k an odd-th column element of the matrix P, eigenvectors u k jz · u k first for generating the even-numbered columns of the elements of the matrix P Element generation program 222, and whether or not the corresponding eigenvector v t (t is a natural number) corresponding to a real number satisfies σ jz · v t = v t or σ jz · v t = −v t , σ jz · v t = v outputs eigenvector v t that satisfies t as odd-numbered column of the elements of the matrix P, σ jz · v t = even-numbered columns of eigenvectors satisfying the -v t v t matrix P And outputs as an element, if not belonging to either, (v t + σ jz · v t) / ‖v t + σ jz · v t ‖ (|| · || denotes the norm) of the normalized vector, sigma jz · v t ′ = v t ′ (t ′ ≠ t) that is linearly independent from the eigenvector vt is output as an element of the odd-numbered column of the matrix P, and (v t −σ jz · v t ) / ‖v t jz · v t ‖ of normalized vector, σ jz · v t satisfy '= -v t' eigenvector v t 'and the linearly independent ones odd-numbered column of the matrix P a second element generator 223 for outputting as an element, and eigenvector v t that satisfies an eigenvector u k + σ jz · u k and σ jz · v t = v t and odd-numbered columns of elements, the eigenvector u k - specific vector to meet the σ jz · u k and σ jz · v t = -v t And a matrix configuration program 224 for generating a matrix P and Le v t as an element of the even-numbered columns.

なお、各プログラムを構成するモジュールの少なくとも一部を他のプログラムと共用することとしてもよい。
<ハードウェアとソフトウェアとの協働>
CPU110は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置140のユニタリ行列分解プログラム領域141に格納されているユニタリ行列分解プログラム200を、RAM150のユニタリ行列分解プログラム領域151に書き込む。同様にCPU110は、補助記憶装置140のデータ領域142に格納されている分解対象のユニタリ行列等のデータを、RAM150のデータ領域152に書き込む。そして、このユニタリ行列分解プログラム200やデータが書き込まれたRAM150上のアドレスがCPU110のレジスタ113に格納される。CPU110の制御部111は、レジスタ113に格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM150上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部112に順次実行させ、その演算結果をレジスタ113に格納していく。
It should be noted that at least a part of the modules constituting each program may be shared with other programs.
<Cooperation between hardware and software>
The CPU 110 writes the unitary matrix decomposition program 200 stored in the unitary matrix decomposition program area 141 of the auxiliary storage device 140 in the unitary matrix decomposition program area 151 of the RAM 150 according to the read OS (Operating System) program. Similarly, the CPU 110 writes data such as a unitary matrix to be decomposed stored in the data area 142 of the auxiliary storage device 140 into the data area 152 of the RAM 150. The address on the RAM 150 where the unitary matrix decomposition program 200 and data are written is stored in the register 113 of the CPU 110. The control unit 111 of the CPU 110 sequentially reads these addresses stored in the register 113, reads a program and data from the area on the RAM 150 indicated by the read address, causes the calculation unit 112 to sequentially execute the operation indicated by the program, The calculation result is stored in the register 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に読み込まれることにより構成されるものである。
FIG. 3 is a block diagram illustrating a functional configuration realized by reading the unitary matrix decomposition program 200 into the CPU 110 in this way. Note that the arrows in FIG. 3 indicate the data flow, but the arrows corresponding to the data flow in and out of the control unit 495 are omitted.
Here, the memory 300 corresponds to the register 113, the data area 152 of the RAM 150, the data area 142 of the auxiliary storage device 140, and the like. In addition, the matrix generation unit 400, the diagonalization matrix generation unit 410, the first complex conjugate transposed matrix generation unit 420, the first matrix product operation unit 430, the first block diagonal matrix conversion unit 440, the second matrix The product calculation unit 450, the second complex conjugate transposed matrix generation unit 460, the third matrix product calculation unit 470, the second block diagonal matrix conversion unit 480, the matrix decomposition unit 490, and the control unit 495 respectively generate a matrix. Program 210, diagonalization matrix generation program 220, first complex conjugate transposed matrix generation program 231, first matrix product operation program 232, first block diagonal matrix conversion program 233, second matrix product operation program 234 , Second complex conjugate transposed matrix generation program 235, third matrix product operation program 236, second block diagonal matrix conversion program 237, matrix decomposition program Arm 238 and the control program 239 and is formed by respectively read into CPU 110. Further, the third complex conjugate transposed matrix generation unit 401, the fourth matrix product calculation unit 402, the eigenvalue / eigenvector calculation unit 411, the first element generation unit 412, the second element generation unit 413, and the matrix configuration unit 414 A third complex conjugate transposed matrix generation program 211, a fourth matrix product operation program 212, an eigenvalue / eigenvector calculation program 221, a first element generation program 222, a second element generation program 223, and a matrix configuration program 224, Each is configured by being read by the CPU 110.

<処理>
次に本形態におけるユニタリ行列分解装置100の処理について説明する。
図4は本形態におけるユニタリ行列分解装置100の処理の全体を説明するためのフローチャートである。まずこの処理の全体について説明する。なお、以下の各処理は、制御部495の制御のもと実行される。
まず前処理として、分解対象のユニタリ行列をリストLGの要素としてメモリ300に格納しておく(ステップS11)。次に、行列生成部400(図3)が、リストLGの先頭に一番近い4次元以上の行列を分解対象のユニタリな行列Gとしてメモリ300から読み出す(ステップS12)。なお、行列Gのサイズは2×2であるものとする。その後、この行列Gを以下に述べる処理によってY’及びG1〜G4の行列に分解し、これらをそれぞれリストLY及びLGの要素としてメモリに格納する(ステップS13)。
<Processing>
Next, processing of the unitary matrix decomposition apparatus 100 in this embodiment will be described.
FIG. 4 is a flowchart for explaining the entire processing of the unitary matrix decomposition apparatus 100 in this embodiment. First, the entire process will be described. The following processes are executed under the control of the control unit 495.
First, as preprocessing, the unitary matrix to be decomposed is stored in the memory 300 as an element of the list LG (step S11). Next, the matrix generation unit 400 (FIG. 3) reads from the memory 300 as a unitary matrix G to be decomposed, a matrix of four or more dimensions closest to the head of the list LG (step S12). Note that the size of the matrix G is 2 j × 2 j . Thereafter, the matrix G is decomposed into Y ′ and G1 to G4 matrices by the processing described below, and these are stored in the memory as elements of the lists LY and LG, respectively (step 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に出力して格納する。
[Details of Step S13]
FIG. 5 is a flowchart for explaining details of step S13 in FIG. The details of step S13 in FIG. 4 will be described below with reference to FIG.
The unitary matrix G read from the memory 300 in step S12 is input to the matrix generation unit 400. Storing the matrix generator 400, G = K · M (a product of a unitary matrix K∈κ and matrix M∈μ), to generate a matrix X satisfying X = M 2, and outputs the matrix X in the memory 300 (Step S21). In this example, first, the matrix G is input to the third complex conjugate transposed matrix generation unit 401. Then, the third complex conjugate transposed matrix generation unit 401 generates the complex conjugate transposed matrix G *, and outputs the complex conjugate transposed matrix G * to the memory 300 for storage. Next, the fourth matrix product operation unit 402 reads the matrix G and the complex conjugate transpose matrix G * from the memory 300. The read matrix G and complex conjugate transpose matrix G * are input to the fourth matrix product operation unit 402, and the fourth matrix product operation unit 402 outputs X = σ jz · G * · σ jz · G.・ (2)
The matrix X is generated by the above operation, and this matrix X is output to the memory 300 and stored.

なお、式(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)。
Incidentally, the calculation result of equation (2) is M 2 is evident from the following.
X = σ jz · G * · σ jz · G
= Θ (G * ) ・ G (From the relationship of (1))
= Θ (M *・ K *) ・ K ・ M
= Θ (M * ) ・ θ (K *) ・ K ・ M
= M ・ K * ・ K ・ M (From the relationship of (1))
= M 2 (K is a unitary matrix and K * · K is a unit matrix)
When the process of step S <b> 21 ends, the diagonalization matrix generation unit 410 next reads the matrix X from the memory 300. This matrix X is input to the diagonalization matrix generation unit 410, and the diagonalization matrix generation unit 410 generates a matrix P for block diagonalization of this matrix X, and outputs the generated matrix P to the memory 300. Store (step S22).

[ステップS22の詳細]
図6は図5におけるステップS22の詳細をそれぞれ説明するためのフローチャートである。また、図7は図6におけるステップS42の詳細を、図8は図6におけるステップS43の詳細をそれぞれ説明するためのフローチャートである。
まず、固有値・固有ベクトル算出部411に行列Xが入力され、その固有値と固有ベクトルとを算出し、
リストE1=[[虚の固有値,対応する固有ベクトル],・・・]
リストE2=[[実の固有値,対応する固有ベクトル],・・・]
となるリストE1,E2をメモリ300に出力して格納する(ステップS41)。なお、虚の固有値の数をimとし、実の固有値の数をreとする。
[Details of Step S22]
FIG. 6 is a flowchart for explaining details of step S22 in FIG. 7 is a flowchart for explaining details of step S42 in FIG. 6, and FIG. 8 is a flowchart for explaining details of step S43 in FIG.
First, the matrix X is input to the eigenvalue / eigenvector calculation unit 411, and its eigenvalue and eigenvector are calculated.
List E1 = [[imaginary eigenvalue, corresponding eigenvector], ...]
List E2 = [[real eigenvalue, corresponding eigenvector], ...]
The lists E1 and E2 are output to the memory 300 and stored (step S41). Note that the number of imaginary eigenvalues is im, and the number of real eigenvalues is 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]・・・と配列したリストとなる。
Next, the first element generation unit 412 reads the list E1 from the memory 300. The list E1 is input to the first element generation unit 412. The first element generation unit 412 calculates the eigenvector u k + σ jz · u k for the positive eigenvector u k (k is a natural number) in the list E1. generating an odd-th column element of the matrix P, generates eigenvectors u k jz · u k as even-numbered columns of the elements of the matrix P, jz · the eigenvector u k + σ jz · u k and u k - [sigma] and outputs to the memory 300 stores as a list E3 and u k (step S42). In this example (Fig. 7), the first element generator 412 the list E1 is inputted, first, a c k = 0 (step S51), substitutes the calculation results for c k +1 to c k (step S52), still select one of the positive eigenvalues that are not examined from the list E1, and extracts the corresponding eigenvector u k (step S53). The first element generator 412, relative to the eigenvector u k,
E3 [2c k −1] = u k + σ jz · u k
E3 [2c k ] = u kjz · u k
Are stored in the memory 300 as elements of the list E3 (step S54). Thereafter, the first element generation unit 412 in this example determines whether or not there is a positive eigenvalue that has not been checked in the list E1 of the memory 300, and if there is, returns to the processing in step S52 and subsequent steps. If not, the process of step S42 (FIG. 6) is terminated. In the case of the processing in this example, E3 represents a pair of eigenvectors corresponding to a pair of complex conjugate eigenvalues as [u 1 + σ jz · u 1 , u 1jz · u 1 ] [u 2 + σ jz · u 2. , U 2 −σ jz · u 2 ]...

ステップ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)。 When the process of step S <b> 42 ends, the second element generation unit 413 next reads the list E <b> 2 from the memory 300. The list E2 is input to the second element generation unit 413. The second element generation unit 413 determines that the eigenvector v t is σ jz · v t = with respect to the eigenvector v t (t is a natural number) in the list E2. It is determined whether or not v t or σ jz · v t = −v t is satisfied, and the eigenvector v t satisfying σ jz · v t = v t is set as an element of the odd-numbered column of the matrix P, and σ jz · v t The eigenvector v t satisfying = −v t is set as an element of the even-numbered column of the matrix P, and these are output to the memory 300 as a list E4 and stored (step S43). In this example, in this example (FIG. 8), the second element generation unit 413 to which the list E2 is input first sets c n = 1 and c q = 1 (step S61), and is still from the list E2. One eigenvector not checked is selected as v t (step S62). Next, the second element generation unit 413 determines whether or not this v t satisfies σ jz · v t = v t (step S63), and if so, E4 [2c n −1] = v t Is stored in the memory 300 as an element of the list E4, and calculation of c n = c n +1 is performed (step S64). If not satisfied, whether or not this v t satisfies σ jz · v t = −v t is determined. Judgment is made (step S65). The second element generation unit 413 stores E4 [2c n ] = v t in the memory 300 as an element of the list E4 only when σ jz · v t = −v t is satisfied, and c q = c q Calculation of +1 is performed (step S66). In addition, when it does not belong to either σ jz · v t = v t or σ jz · v t = −v t , the second element generation unit 413 determines that (v t + σ jz · v t ) / ‖v t + Σ jz · v t ‖ is calculated, stored in the memory 300 as an element E4 [2c n −1] of the list E4, and an operation of c n = c n +1 is performed (step S67). In this case, the second element generation unit 413 calculates (v t −σ jz · v t ) / ‖v t −σ jz · v t ‖, which is calculated as an element E4 [2c q ] of the list E4. Is stored in the memory 300 and c q = c q +1 is calculated (step S68). Next, the second element generation unit 413 deletes the linearly dependent element from the list E4 in the memory 300 (step 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の詳細]の説明終了)。
Thereafter, the second element generation unit 413 determines whether there is an eigenvector that has not been checked yet in the list E3 of the memory 300 (step S70), and if there is, returns to the processing in step S62 and subsequent steps, and exists. If not, the process of step S43 (FIG. 6) is terminated.
When the process of step S43 is completed, the matrix construction unit 414 reads the lists E3 and E4 from the memory 300, takes out the eigenvectors included in the lists E3 and E4 in order from the top, and uses them as a column P = (V 1 , V 2, ..., V im, W 1, W 2, ..., to generate a W re) (V 1, V 2, ..., element .W 1 of V im list E3, W 2, ..., W re the The elements of the list E4) are stored in the memory 300 (step S44). This eigenvector u k + sigma and eigenvector v t satisfying jz · u k and σ jz · v t = v t and odd-numbered columns of elements, the eigenvector u k jz · u k and σ jz · v t = This corresponds to generating the matrix P using the eigenvectors v t satisfying −v t as elements of even-numbered columns (end of the description of [Details of Step 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)。
When the process of step S22 is completed (returning to FIG. 5), the first complex conjugate transposed matrix generation unit 420 reads the matrix P from the memory 300. The read matrix P is input to the first complex conjugate transpose matrix generation unit 420, and the first complex conjugate transpose matrix generation unit 420 generates a complex conjugate transpose matrix P * of the matrix P, and generates the generated complex The conjugate transpose matrix P * is output and stored in the memory 300 (step S23).
Next, the first matrix product operation unit 430 reads the matrix X, the matrix P, and the complex conjugate transpose matrix P * from the memory 300. These are input to the first matrix product operation unit 430. The first matrix product operation unit 430 generates a block diagonal matrix B by the operation of B = P * · X · P, and this block diagonal matrix B Is output and stored in the memory 300 (step 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としては以下のものを例示できる。 The block diagonal matrix B stored in the memory 300 is read by the first block diagonal matrix conversion unit 440. The read block diagonal matrix B is input to the first block diagonal matrix conversion unit 440, and the first block diagonal matrix conversion unit 440 converts this into a block diagonal matrix Y (= P *) of the matrix M. (M · P), which is output to the memory 300 and stored (step S25). The conversion from the block diagonal matrix B to block diagonal matrix Y is, for example, a square matrix C aligned in the diagonal portion of the block diagonal matrix B, by replacing the square matrix D that satisfies C = D 2 Do. That is, it can be said that the block diagonal matrix B is a block diagonal matrix in which a 2 × 2 matrix is arranged in a diagonal component and the other elements are zero. Further, as described above, the block diagonal matrix B and the block diagonal matrix Y are B = P * · X · P = P * · M 2 · P = (P * · M · P) (P * · M · P) ) = Y 2 is satisfied. Therefore, the conversion from the block diagonal matrix B to the block diagonal matrix Y is performed only by replacing the square matrix C arranged in the diagonal portion of the block diagonal matrix B with the square matrix D (C = D 2 is satisfied). Is possible. Thereby, the conversion from the block diagonal matrix B to the block diagonal matrix Y can be performed at a low calculation cost. As the square matrices C and D used for this replacement, the following can be exemplified.

なお、式(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への変換を行うこととしてもよい。
In the equations (3) to (6), θ is a value determined by the components of the block diagonal matrix B. For example, when B = diag (−1, −1, −1, −1,1,1,1,1), square matrices C and D with θ = π and square matrices C and D with θ = 0. This replacement is done.
Also, a set of a plurality of types of square matrices C and D may be used for the conversion from one block diagonal matrix B to the block diagonal matrix Y. For example, by mixing the replacement of C in Equation (3) with D in Equation (4) and the replacement of C in Equation (3) with D in Equation (5), a block diagonal matrix B can be used as a block. Conversion to the diagonal matrix Y may be performed.

さらに、ここでは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))として生成し、 Further, here, an example in which replacement is performed by 2 × 2 square matrices C and D is shown, but block diagonal matrix B using 2 γ × 2 γ (γ is a natural number of 2 or more) square matrices C and D. To block diagonal matrix Y may be performed. For example, in the case of decomposition of a unitary matrix indicating a quantum Fourier transform, a block diagonal matrix B including a block of diag (1, -1, -1, 1) in a diagonal portion (for example, B = diag (1, -1, -1,1,1, -1, -1,1)),

によってブロック対角行列Bからブロック対角行列Yへの変換を行うことが望ましい。この正方行列Dは、 It is desirable to perform conversion from the block diagonal matrix B to the block diagonal matrix Y. This square matrix D is

と表すことができ、このような正方行列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の行列であることが望ましい。
This is because it is known that such a square matrix D can be realized by a simple quantum circuit.
However, in general, the square matrices C and D are desirably 2 × 2 matrices. That is, the imaginary eigenvalue generated in step S41 of FIG. 6 is always a complex conjugate pair, and the number of elements (im) corresponding to the imaginary eigenvalue of the matrix P is a multiple of 2, but this is 2 γ (γ is It is not necessarily a multiple of 2). Therefore, the number of elements corresponding to the eigenvalues of the imaginary block diagonal matrix B are Block Diagonalization by a matrix P also becomes a multiple of two, this is not necessarily a multiple of 2 gamma. This is the number of elements corresponding to the eigenvalues of the real also becomes a multiple of two, which means that this is not necessarily a multiple of 2 gamma. Therefore, if the block diagonal matrix B is replaced with 2 γ × 2 γ square matrices C and D, there may be a replacement remaining in the element corresponding to the imaginary eigenvalue and the element corresponding to the real eigenvalue. In this case, square matrices C and D having different sizes for replacing the remaining replacement part are required, and the process becomes complicated. Therefore, when the number of elements corresponding to the imaginary eigenvalues of the block diagonal matrix B and the number of elements corresponding to the real eigenvalues are not clear, the square matrices C and D are desirably 2 × 2 matrices.

ステップ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)。
When the process of step S25 ends, the second matrix product operation unit 450 then reads the block diagonal matrix Y, the matrix P, and the complex conjugate transpose matrix P * from the memory 300. The second matrix product operation unit 450 to which these are input generates a matrix M by an operation of M = P · Y · P * , and outputs the matrix M to the memory 300 for storage (step S26).
Next, the second complex conjugate transposed matrix generation unit 460 reads the matrix M from the memory 300. The second complex conjugate transposed matrix generation unit 460 to which the matrix M is input generates a complex conjugate transposed matrix M * of the matrix M, and outputs and stores the complex conjugate transposed matrix M * in the memory 300 ( Step 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)
Next, the third matrix product operation unit 470 reads the matrix G and the complex conjugate transpose matrix M * from the memory 300. These are input to the third matrix product operation unit 470. The third matrix product operation unit 470 generates a matrix K by the operation of K = G · M * , and outputs this matrix K to the memory 300 for storage. (Step S28).
Next, the second block diagonal matrix converter 480 reads the block diagonal matrix Y from the memory. The block diagonal matrix Y is input to the second block diagonal matrix converter 480, and the second block diagonal matrix converter 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>参照)。 The matrix Y 'is output to the memory 300 and stored as elements of the list LY (step S29). Note that the transformation matrix W indicated by Equation (8) does not depend on the value of the block diagonal matrix Y. Therefore, the block diagonal matrix Y can be converted into the matrix Y ′ at a low calculation cost. This matrix Y ′ conforms to the definition of the Khaneja-Glaser decomposition, and has a configuration suitable for implementation of an NMR quantum computer (M. Nakahara, Y. kondo, K. Hata, and S. Tanimura, “Demonstrating”). quantum algorithm acceleration with NMR quantum computer, "Internet <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*とに分解できたことになる。 Through the processing so far, the matrix G has been decomposed into K, P, Y ′, and P * matrices. Here, as described above, K, P, and P * are elements of the set κ. The product K ′ = K · P is also an element of the set κ. Thus, it can be seen that the matrix G can be decomposed into products of K′εκ, Yεκ ′, and P * εκ. FIG. 9A is a conceptual diagram of a matrix showing this (example of j = 3). In this figure, a blank square indicates an element of 0 in the matrix, and a colored square indicates an element of some value. As shown in this figure, the arbitrary matrix G can be decomposed into Y ′ suitable for implementation of the NMR quantum computer and checkered matrix 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に容易に分解できる。 Therefore, next, the matrix decomposition unit 490 reads the matrices K and P from the memory 300, regularly extracts the elements of K ′ = K · P, and converts the matrix K ′ into a 2 j−1 × 2 j−1 matrix G1. And G2 are output to the memory 300 and stored as elements of the list LG (step S30). FIG. 9B is a conceptual diagram showing this decomposition in the matrix K ′ (example of j = 3), and FIG. 9C is a diagram showing a quantum circuit corresponding to the decomposition result. As shown in this figure, the matrix K ′ = G1 ′ · G2 ′ can be easily decomposed into smaller matrices G1 and 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次元の基本ゲートを示す行列に分解される。
Similarly, the matrix decomposition unit 490 reads the complex conjugate transpose matrix P * from the memory 300, regularly extracts its elements, and converts this element into the product of 2 j−1 × 2 j−1 matrices G3 and G4. These are disassembled, output to the memory 300, and stored as elements of the list LG (step S31) (end of [details of step S13]).
When the process of step S13 is completed (returning to FIG. 4), the control unit 495 searches the list LG stored in the memory 300, and determines whether or not the list LG includes a matrix that has not been checked (step LG). S14). Here, if it is determined that the list LG includes a matrix that has not been examined, the control unit 495 returns the process to step S12. On the other hand, when it is determined that there is no unexamined matrix in the list LG, the control unit 495 ends the process. As a result, the process of using the above-described matrices G1, G2, G3, and G4 as the matrix G is recursively repeated and finally decomposed into a matrix that indicates a two-dimensional basic gate.

<実施例>
次に、3量子ビットの量子フーリエ変換を示すユニタリ行列を分解する場合の実施例を説明する。
リストLGの8×8の行列Gを分割対象とする(ステップ12)。ここで、行列Gは3量子ビットの量子フーリエ変換を示すユニタリ行列であるから、Gの(h,k)成分をG[h,k]と書くと
<Example>
Next, an example in the case of decomposing a unitary matrix indicating a quantum Fourier transform of 3 qubits will be described.
The 8 × 8 matrix G of the list LG is set as the division target (step 12). Here, since the matrix G is a unitary matrix indicating a quantum Fourier transform of 3 qubits, if the (h, k) component of G is written as G [h, k]

となる。 It becomes.

次に、X=σ3z・G・σ3z・Gを計算する(ステップS21)。ここでσ3z=diag(1,−1, 1,−1, 1,−1, 1,−1)となるから、
=diag(1,−1, 1,−1)
となる。
Next, X = σ 3z · G * · σ 3z · G is calculated (step S21). Here, σ 3z = diag (1, −1, 1, −1, 1, −1, 1, −1), so
d 1 = diag (1, -1,1, -1,)
It becomes.

Xを対角化して、固有値と固有ベクトルを求め、行列Pを構成すると(ステップS22,S41〜S44,S51〜S55,S61〜S67)、
となる。
When X is diagonalized to obtain eigenvalues and eigenvectors and a matrix P is constructed (steps S22, S41 to S44, S51 to S55, S61 to S67),
It becomes.

次にB=P・X・P*を計算すると(ステップS24)、
B=diag(−1, −1, −1, −1,1, 1, 1, 1,)
となる。
Next, when B = P · X · P * is calculated (step S24),
B = diag (-1, -1, -1, -1,1,1,1,1,)
It becomes.

次に、Bの対角部分の2×2のブロックを式(3)(4)に従って書き換えたものをYとする(ステップS25)。この例の場合、式(3)(4)による書き換えは
となる。
Next, Y is obtained by rewriting the 2 × 2 block in the diagonal portion of B according to the equations (3) and (4) (step S25). In the case of this example, rewriting by the equations (3) and (4) is
It becomes.

次に、M=P・Y・P*を計算すると(ステップS26)、
となる。
Next, when M = P · Y · P * is calculated (step S26),
It becomes.

次に、K=G・M*を計算すると(ステップS28)、
となる。
Next, when K = G · M * is calculated (step S28),
It becomes.

次に、YをY’=W・Y・W*に変換する(ステップS29)。
次に、K’=K・Pを計算すると、
となる。そして、図9(b)のように、
K’=G1’・G2’
Next, Y is converted into Y ′ = W · Y · W * (step S29).
Next, when K ′ = K · P is calculated,
It becomes. And as shown in FIG.
K '= G1' ・ G2 '

と分解し、G1’とG2’から図9(b)のように色付き部分の要素を抜き出して4×4のユニタリ行列G1,G2 And the elements of the colored portion are extracted from G1 'and G2' as shown in FIG. 9B, and 4 × 4 unitary matrices G1, G2 are extracted.

を構成する(ステップS30)。 (Step S30).

次に、P*を図9(b)と同様に、
Next, let P * be the same as in FIG.

と分解し、G3’とG4’から図9(b)のように色付き部分の要素を抜き出して4×4のユニタリ行列G3,G4 And the elements of the colored portion are extracted from G3 'and G4' as shown in FIG. 9B, and 4 × 4 unitary matrices G3, G4 are extracted.

を構成する。
その後、G1〜G4をGとしてステップS12以降の処理を行う。
Configure.
Thereafter, G1 to G4 are set as G, and the processes after step S12 are performed.

〔第2の実施形態〕
次に本発明における第2の実施形態について説明する。
本形態は第1の実施形態の変形例であり、第1の実施の形態でブロック対角行列Yを行列Y’に変換した代わりに、ブロック対角行列Yをそのまま基本ゲートを示す行列に分解する点のみが第1の実施の形態と相違する。以下では、第1の実施形態との相違点を中心に説明し、第1の実施の形態と共通する事項については説明を省略する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described.
This embodiment is a modification of the first embodiment. Instead of converting the block diagonal matrix Y into the matrix Y ′ in the first embodiment, the block diagonal matrix Y is decomposed into a matrix indicating a basic gate as it is. Only the difference is from the first embodiment. Below, it demonstrates centering on difference with 1st Embodiment, and abbreviate | omits description about the matter which is common in 1st Embodiment.

<ハードウェア構成>
第1の実施の形態と同様である。
<ソフトウェア構成>
図10は、本形態のユニタリ行列分解プログラム600の構成を例示した概念図である。本形態のユニタリ行列分解プログラム600と第1の実施形態のユニタリ行列分解プログラム200との相違点は、ユニタリ行列分解プログラム600が、第2のブロック対角行列変換プログラム237(図2)の代わりにブロック対角行列分解プログラム637を有する点である。
<Hardware configuration>
This is the same as in the first embodiment.
<Software configuration>
FIG. 10 is a conceptual diagram illustrating the configuration of the unitary matrix decomposition program 600 of this embodiment. The difference between the unitary matrix decomposition program 600 of the present embodiment and the unitary matrix decomposition program 200 of the first embodiment is that the unitary matrix decomposition program 600 is replaced with the second block diagonal matrix conversion program 237 (FIG. 2). This is a point having a block diagonal matrix decomposition program 637.

<ハードウェアとソフトウェアとの協働>
図11は、CPUにユニタリ行列分解プログラム600が読み込まれることにより実現される機能構成を例示したブロック図である。第1の実施の形態との相違点は、第2のブロック対角行列変換部(図3)の代わりにブロック対角行列分解部680が構成される点である。
<処理>
第1の実施の形態との相違点は図5のステップS29の処理のみである。すなわち、本形態では、ステップS29の処理の代わりにブロック対角行列Yをそのまま2×2の基本ゲートを示す行列に分解する。
<Cooperation between hardware and software>
FIG. 11 is a block diagram illustrating a functional configuration realized by reading the unitary matrix decomposition program 600 into the CPU. The difference from the first embodiment is that a block diagonal matrix decomposition unit 680 is configured instead of the second block diagonal matrix conversion unit (FIG. 3).
<Processing>
The difference from the first embodiment is only the process of step S29 in FIG. That is, in this embodiment, instead of the process of step S29, the block diagonal matrix Y is directly decomposed into a matrix indicating a 2 × 2 basic gate.

図12はこの処理を説明するための概念図である(j=3の例)。
この図に示すように、行列GはK’=K・Pとブロック対角行列Yと複素共役転置行列P*に分解され(図12(a))、ブロック対角行列Yが図12(b)(c)に示すように2×2の行列U〜Uに分解される。なお、この分解の一般化については、例えば「上坂吉則著、コロナ社出版、”量子コンピュータの基礎数理”、ISBN4−339−02376−0」等参照。
なお、本発明は上述の各実施形態に限定されるものではなく、その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
FIG. 12 is a conceptual diagram for explaining this processing (example of j = 3).
As shown in this figure, the matrix G is decomposed into K ′ = K · P, a block diagonal matrix Y and a complex conjugate transpose matrix P * (FIG. 12A), and the block diagonal matrix Y is converted to FIG. ) As shown in (c), it is decomposed into 2 × 2 matrices U 1 to U 4 . For generalization of this decomposition, see, for example, “Kanezaka Uesaka, Corona Publishing,“ Basic Mathematics of Quantum Computers ”, ISBN 4-339-02376-0”.
It should be noted that the present invention is not limited to the above-described embodiments, and other modifications can be made as appropriate without departing from the spirit of the present invention. In addition, the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary.

また、上述したユニタリ行列分離プログラム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)等を用いることができる。   The unitary matrix separation programs 200 and 600 described above can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. Specifically, for example, the magnetic recording device may be a hard disk device or a flexible Discs, magnetic tapes, etc. as optical discs, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. As the magneto-optical recording medium, MO (Magneto-Optical disc) or the like can be used, and as the semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory) or the like can be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
また、上述した実施形態とは別の実行形態として、コンピュータが可搬型記録媒体から直接このプログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
As an execution form different from the above-described embodiment, the computer may read the program directly from the portable recording medium and execute processing according to the program. Each time is transferred, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

本発明の産業上の利用分野としては、量子コンピュータを構成する任意のユニタリ変換量子回路の設計支援分野等を例示できる。本発明を適用することにより、容易に任意のユニタリ変換量子回路をCNOT等の基本ゲートに分解することができる。   As an industrial application field of the present invention, a design support field of an arbitrary unitary transformation quantum circuit constituting a quantum computer can be exemplified. By applying the present invention, an arbitrary unitary transformation quantum circuit can be easily decomposed into basic gates such as CNOT.

第1実施形態におけるユニタリ行列分解装置の構成を例示したブロック図。The block diagram which illustrated the composition of the unitary matrix decomposition device in a 1st embodiment. ユニタリ行列分解プログラムの構成を例示した概念図。The conceptual diagram which illustrated the structure of the unitary matrix decomposition | disassembly program. CPUにユニタリ行列分解プログラムが読み込まれることにより実現される機能構成を例示したブロック図。The block diagram which illustrated the functional composition realized when a unitary matrix decomposition program is read by CPU. 第1実施形態におけるユニタリ行列分解装置の処理の全体を説明するためのフローチャート。The flowchart for demonstrating the whole process of the unitary matrix decomposition | disassembly apparatus in 1st Embodiment. 図4におけるステップS12の詳細を説明するためのフローチャート。The flowchart for demonstrating the detail of step S12 in FIG. 図5におけるステップS22の詳細をそれぞれ説明するためのフローチャート。6 is a flowchart for explaining details of step S22 in FIG. 図6におけるステップS42の詳細を説明するためのフローチャート。The flowchart for demonstrating the detail of step S42 in FIG. 図6におけるステップS43の詳細を説明するためのフローチャート。The flowchart for demonstrating the detail of step S43 in FIG. (a)は、行列GをK’∈κとY∈κ’とP*∈κとの積に分解した様子を示した概念図。(b)は、行列K’の分解を示した概念図(j=3の例)。(c)は、その分解結果に対応する量子回路を示した図。(A) is the conceptual diagram which showed a mode that the matrix G was decomposed | disassembled into the product of K'εκ, Yεκ ', and P * εκ. (B) is a conceptual diagram showing the decomposition of the matrix K ′ (example of j = 3). (C) is the figure which showed the quantum circuit corresponding to the decomposition | disassembly result. 第2実施形態のユニタリ行列分解プログラムの構成を例示した概念図。The conceptual diagram which illustrated the structure of the unitary matrix decomposition | disassembly program of 2nd Embodiment. CPUにユニタリ行列分解プログラムが読み込まれることにより実現される機能構成を例示したブロック図。The block diagram which illustrated the functional composition realized when a unitary matrix decomposition program is read by CPU. 第2の実施形態におけるブロック対角行列Yの分解を説明するための概念図。The conceptual diagram for demonstrating decomposition | disassembly of the block diagonal matrix Y in 2nd Embodiment. Cosine-Sine分解を説明するための概念図。The conceptual diagram for demonstrating Cosine-Sine decomposition | disassembly.

符号の説明Explanation of symbols

100 ユニタリ行列分解装置
200,600 ユニタリ行列分解プログラム
100 unitary matrix decomposition apparatus 200,600 unitary matrix decomposition program

Claims (9)

ユニタリ行列を分解するユニタリ行列分解装置であって、
ユニタリな行列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の行列積演算手段と、
を有することを特徴とするユニタリ行列分解装置。
A unitary matrix decomposition apparatus that decomposes a unitary matrix,
Unitary matrix G is input, G = K · M (a product of a unitary matrix K∈κ and matrix M∈μ), matrix generation means for generating a matrix X satisfying X = M 2, and outputs the matrix X When,
A diagonalization matrix generating means for receiving the matrix X, generating a matrix P for block diagonalizing the matrix X, and outputting the matrix P;
The matrix P is inputted, a first complex conjugate transposed matrix generating means for generating a complex conjugate transpose matrix P * of the matrix P, and outputs the complex conjugate transpose matrix P *,
The matrix X, the matrix P, and the complex conjugate transpose matrix P * are input, a block diagonal matrix B is generated by an operation of B = P * · X · P, and the block diagonal matrix B is output. 1 matrix product computing means;
The block diagonal matrix B is input , and the square matrix C arranged in the diagonal portion of the block diagonal matrix B is replaced with a square matrix D satisfying C = D 2, thereby obtaining the block diagonal matrix B, First block diagonal matrix conversion means for converting the matrix M into a block diagonal matrix Y (= P * · M · P) and outputting the block diagonal matrix Y;
The block diagonal matrix Y, the matrix P, and the complex conjugate transpose matrix P * are input, the matrix M is generated by the operation of M = P · Y · P * , and the matrix M is output. Product operation means;
The matrix M is entered, a second complex conjugate transposed matrix generating means for generating a complex conjugate transposed matrix M * of the matrix M, and outputs the complex conjugate transposed matrix M *,
Third matrix product operation means for inputting the matrix G and the complex conjugate transpose matrix M * , generating a matrix K by calculating K = G · M * , and outputting the matrix K;
A unitary matrix decomposition apparatus.
請求項1記載のユニタリ行列分解装置であって、
上記ブロック対角行列Yが入力され、制御NOT演算を表す行列をUCNOTとし、ウォルシューアダマール変換を表す行列をHとし、r×rの単位行列をIとし、上記ブロック対角行列Yを2×2行列とし、

とし、Wを行列Wの複素共役転置行列とした場合における、Y’=W・Y・Wの演算を行い、当該行列Y’を出力する第2のブロック対角行列変換手段を、
さらに有することを特徴とするユニタリ行列分解装置。
The unitary matrix decomposition apparatus according to claim 1,
The block diagonal matrix Y is input, the matrix representing the control NOT operation and U CNOT, a matrix representing the Wal Schur Hadamard transform and H, the matrix of the r × r and I r, the block diagonal matrix Y Let 2 j × 2 j matrix,

And second block diagonal matrix conversion means for calculating Y ′ = W · Y · W * and outputting the matrix Y ′ when W * is a complex conjugate transposed matrix of the matrix W,
A unitary matrix decomposition apparatus further comprising:
請求項1記載のユニタリ行列分解装置であって、
上記行列生成手段が、
上記行列Gが入力され、その複素共役転置行列Gを生成し、当該複素共役転置行列Gを出力する第3の複素共役転置行列生成手段と、
上記行列Gと上記複素共役転置行列Gとが入力され、

とした場合における
X=σjz・G・σjz・G
の演算によって上記行列Xを生成し、当該行列Xを出力する第4の行列積演算手段と、
を有する手段である、
ことを特徴とするユニタリ行列分解装置。
The unitary matrix decomposition apparatus according to claim 1,
The matrix generation means is
The matrix G is input, and a third complex conjugate transposed matrix generating means for the complex to produce a conjugate transposed matrix G *, and outputs the complex conjugate transposed matrix G *,
The matrix G and the complex conjugate transpose matrix G * are input,

X = σ jz · G * · σ jz · G
A fourth matrix product calculating means for generating the matrix X by the calculation of and outputting the matrix X;
A means having
A unitary matrix decomposition apparatus.
請求項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を出力する行列構成手段と、
を有する手段である、
ことを特徴とするユニタリ行列分解装置。
The unitary matrix decomposition apparatus according to claim 1,
The diagonalization matrix generating means is
Eigenvalue / eigenvector calculating means for inputting the matrix X, calculating its eigenvalue and eigenvector, and outputting the eigenvalue and eigenvector;
Of the eigenvectors calculated by the eigenvalue / eigenvector calculating means, the eigenvector u k (k is a natural number) whose corresponding eigenvalue is a positive imaginary number,

In case of a, the eigenvector u k + σ jz · u k generated as odd-numbered column of the elements of the matrix P, generates eigenvectors u k jz · u k as even-numbered columns of the elements of the matrix P, a first element generating means for outputting the eigenvector u k + σ jz · u k and u k jz · u k,
Of the eigenvectors calculated by the eigenvalue / eigenvector calculation means, for the eigenvector v t (t is a natural number) whose corresponding eigenvalue is a real number, the eigenvector v t is σ jz · v t = v t or σ jz · v It is determined whether or not t = −v t is satisfied, and an eigenvector v t satisfying σ jz · v t = v t is output as an element of the odd-numbered column of the matrix P, and σ jz · v t = −v t outputs eigenvector v t as even-numbered columns of the elements of the matrix P satisfying, if not belonging to either, (v t + σ jz · v t) / ‖v t + σ jz · v t ‖ (|| · || Is an element in the odd-numbered column of the matrix P, which is linearly independent of the eigenvector v t ′ satisfying σ jz · v t ′ = v t ′ (t ′ ≠ t) and output as, (v t -σ jz v t) / ‖v t -σ jz · v t ‖ of normalized vector, σ jz · v t eigenvectors satisfy '= -v t' v t 'odd linearly independent ones of the matrix P Second element generating means for outputting as an element of the column;
The eigenvector u k ± σ jz · u k and v t is inputted, the eigenvector v t satisfying the eigenvector u k + σ jz · u k and σ jz · v t = v t and odd-numbered columns of elements, the the eigenvector v t that satisfies an eigenvector u k jz · u k and σ jz · v t = -v t to generate the matrix P as an element of the even columns, the matrix configuration means for outputting the matrix P,
A means having
A unitary matrix decomposition apparatus.
請求項4記載のユニタリ行列分解装置であって、
上記行列構成手段が、
上記固有ベクトルu+σjz・uを2α−1列目の要素とし(αは自然数)、上記固有ベクトルu−σjz・uを2α列目の要素として上記行列Pを生成する手段である、
ことを特徴とするユニタリ行列分解装置。
The unitary matrix decomposition apparatus according to claim 4, wherein
The matrix construction means is
The eigenvector u k + σ jz · u k and 2.alpha k -1 column element (alpha k is a natural number), and generates the matrix P the eigenvector u k jz · u k as an element of 2.alpha k-th column Means,
A unitary matrix decomposition apparatus.
請求項5記載のユニタリ行列分解装置であって、
上記正方行列C及びDが2×2の行列である、
ことを特徴とするユニタリ行列分解装置。
The unitary matrix decomposition apparatus according to claim 5,
The square matrices C and D are 2 × 2 matrices,
A unitary matrix decomposition apparatus.
コンピュータを、行列生成手段と、対角化行列生成手段と、第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を出力する手順と、
を有することを特徴とするユニタリ行列分解方法。
The computer includes a matrix generation unit, a diagonalization matrix generation unit, a first complex conjugate transpose matrix generation unit, a first matrix product calculation unit, a first block diagonal matrix conversion unit, a second A unitary matrix decomposition method that is executed by functioning as a unitary matrix decomposition apparatus having matrix product operation means, second complex conjugate transposed matrix generation means, and third matrix product operation means ,
Matrix generation means, on the input unitary matrix G, G = K · M (a product of a unitary matrix K∈κ and matrix M∈myu), to generate a matrix X satisfying X = M 2, the matrix A procedure for outputting X,
A procedure for generating a matrix P for diagonalizing the matrix X output by the matrix generating means and outputting the matrix P;
And procedures first complex conjugate transposed matrix generation means, wherein the pair generates a keratinization matrix generating means complex conjugate transposed matrix of the matrix P was output P *, and outputs the complex conjugate transpose matrix P *,
The first matrix product calculating means outputs the matrix X output from the matrix generating means, the matrix P output from the diagonalized matrix generating means, and the above-mentioned output from the first complex conjugate transposed matrix generating means. A block diagonal matrix B is generated by calculating B = P * · X · P using a complex conjugate transpose matrix P * and outputting the block diagonal matrix B;
The first block diagonal matrix converting means converts the square matrix C arranged in the diagonal portion of the block diagonal matrix B output from the first matrix product calculating means into a square matrix D satisfying C = D 2. By replacing the block diagonal matrix B with the block diagonal matrix Y (= P * · M · P) of the matrix M and outputting the block diagonal matrix Y;
The second matrix product calculating means is configured to output the block diagonal matrix Y output from the first block diagonal matrix converting means, the matrix P output from the diagonalization matrix generating means , and the first complex A procedure for generating a matrix M by performing an operation of M = P · Y · P * on the complex conjugate transposed matrix P * output by the conjugate transposed matrix generating means, and outputting the matrix M;
And procedures second complex conjugate transposed matrix generation means, said second matrix to produce a product operation means complex conjugate transposed matrix of the matrix M which output is M *, and outputs the complex conjugate transposed matrix M *,
The third matrix product calculating means calculates K = G · M * for the input matrix G and the complex conjugate transposed matrix M * output by the second complex conjugate transposed matrix generating means. To generate a matrix K and output the matrix K;
A unitary matrix decomposition method characterized by comprising:
請求項1からの何れかに記載のユニタリ行列分解装置としてコンピュータを機能させるためのユニタリ行列分解プログラム。 Unitary matrix decomposition program for causing a computer to function as a unitary matrix decomposition apparatus according to any one of claims 1 to 6. 請求項記載のユニタリ行列分解プログラムを格納したコンピュータ読取り可能な記録媒体。 A computer-readable recording medium storing the unitary matrix decomposition program according to claim 8 .
JP2005004418A 2005-01-11 2005-01-11 Unitary matrix decomposition apparatus, unitary matrix decomposition method, unitary matrix decomposition program, and recording medium Expired - Fee Related JP4260751B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005004418A JP4260751B2 (en) 2005-01-11 2005-01-11 Unitary matrix decomposition apparatus, unitary matrix decomposition method, unitary matrix decomposition program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005004418A JP4260751B2 (en) 2005-01-11 2005-01-11 Unitary matrix decomposition apparatus, unitary matrix decomposition method, unitary matrix decomposition program, and recording medium

Publications (2)

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

Family

ID=36801645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005004418A Expired - Fee Related JP4260751B2 (en) 2005-01-11 2005-01-11 Unitary matrix decomposition apparatus, unitary matrix decomposition method, unitary matrix decomposition program, and recording medium

Country Status (1)

Country Link
JP (1) JP4260751B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4758965B2 (en) * 2007-08-27 2011-08-31 日本電信電話株式会社 Unitary matrix decomposition method, unitary matrix decomposition apparatus, unitary matrix decomposition program, and recording medium
JP5118461B2 (en) * 2007-12-11 2013-01-16 日本電信電話株式会社 Quantum arithmetic device, inverse secondary phase conversion arithmetic device, method thereof, program and recording medium
JP5325072B2 (en) * 2009-10-22 2013-10-23 日本電信電話株式会社 Matrix decomposition apparatus, matrix decomposition method and program
US8671369B2 (en) 2009-12-08 2014-03-11 University Of Seoul Industry Cooperation Foundation Quantum Karnaugh map
WO2023021666A1 (en) * 2021-08-19 2023-02-23 富士通株式会社 Information processing device, quantum circuit generation method, and quantum circuit generation program
WO2023148827A1 (en) * 2022-02-01 2023-08-10 日本電信電話株式会社 Quantum compilation device, quantum compilation method, and program

Also Published As

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

Similar Documents

Publication Publication Date Title
Schindler et al. Quantum simulation of dynamical maps with trapped ions
Wuensche et al. Global dynamics of cellular automata: an atlas of basin of attraction fields of one-dimensional cellular automata
Nielsen Cluster-state quantum computation
JP4260751B2 (en) Unitary matrix decomposition apparatus, unitary matrix decomposition method, unitary matrix decomposition program, and recording medium
Yang et al. Scalablevit: Rethinking the context-oriented generalization of vision transformer
Yuan et al. The dual-threshold quantum image segmentation algorithm and its simulation
JP7251645B2 (en) Solution-seeking system, solution-seeking method and solution-seeking program
Melnik Mathematical and computational modeling: With applications in natural and social sciences, engineering, and the arts
CN114091363A (en) Computational fluid dynamics simulation method, device and equipment based on quantum algorithm
Candela Undergraduate computational physics projects on quantum computing
KR102028404B1 (en) Quantum RAM and quantum database utilizing quantum superposition
Saha et al. Deep Learning Discrete Calculus (DLDC): a family of discrete numerical methods by universal approximation for STEM education to frontier research
Cassel Matrix, numerical, and optimization methods in science and engineering
Cappelli et al. From Vlasov-Poisson to Schr\" odinger-Poisson: dark matter simulation with a quantum variational time evolution algorithm
Jiang et al. A deep learning framework for mesh relaxation in arbitrary Lagrangian-Eulerian simulations
JP2002042104A (en) Control system and control method using quantum soft computing
JP4758965B2 (en) Unitary matrix decomposition method, unitary matrix decomposition apparatus, unitary matrix decomposition program, and recording medium
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 (en) Unitary matrix decomposition method, unitary matrix decomposition apparatus, unitary matrix decomposition program, and recording medium
JP5325072B2 (en) Matrix decomposition apparatus, matrix decomposition method and program
US20040059765A1 (en) Method and relative quantum gate for running a grover&#39;s or a Deutsch-Jozsa&#39;s quantum algorithm
Sadowski et al. Image completion with nonnegative matrix factorization under separability assumption
Hou et al. Machine learning renormalization group for statistical physics
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