JP4700413B2 - 量子演算装置及び量子回路を用いた量子演算方法 - Google Patents

量子演算装置及び量子回路を用いた量子演算方法 Download PDF

Info

Publication number
JP4700413B2
JP4700413B2 JP2005160200A JP2005160200A JP4700413B2 JP 4700413 B2 JP4700413 B2 JP 4700413B2 JP 2005160200 A JP2005160200 A JP 2005160200A JP 2005160200 A JP2005160200 A JP 2005160200A JP 4700413 B2 JP4700413 B2 JP 4700413B2
Authority
JP
Japan
Prior art keywords
qubits
quantum
qubit
cnot
maj
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.)
Active
Application number
JP2005160200A
Other languages
English (en)
Other versions
JP2006338185A (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 JP2005160200A priority Critical patent/JP4700413B2/ja
Publication of JP2006338185A publication Critical patent/JP2006338185A/ja
Application granted granted Critical
Publication of JP4700413B2 publication Critical patent/JP4700413B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Complex Calculations (AREA)

Description

本発明は、量子回路を用いて量子演算を行う技術に関する。
近年、従来の情報理論では解決が難しかった問題を、微細な世界に適用される物理法則である量子力学の原理を応用して解決する技術が注目を集めている。例えば、量子コンピュータは、量子力学の世界特有の現象である重ね合わせ状態を利用し、複数の演算を並列的に実行することができる(量子並列性)。そして、この量子並列性及び観測による状態の縮退により、量子コンピュータは、因数分解などの問題に対し、現在のコンピュータよりはるかに高速に計算が可能であることが示唆されている。
例えば非特許文献1及び2では、量子コンピュータにおいて、2つの2進数a=an−1…a及びb=bn−1…bと、0または1のzとが入力として与えられたとき、a+b=s…sを計算し、z(+)sとsn−1…sとaとを出力とする量子回路が開示されている。ただし、α(+)βは、αとβとのmod2での加算(排他的論理和)を示す。
図21は、この非特許文献1に開示された量子回路を示した図である。
この図に示すように、図21の量子回路は、MAJ(Majorrity)量子回路とUMA(UnMajorrity and And)量子回路とCNOT演算とによって構成される。ここで、量子回路とは、CNOT演算等の量子基本演算(操作)の組合せを意味する。また、MAJ量子回路は、3個のキュービット(量子ビット)がそれぞれ示すx,y,zのマジョリティxy(+)yz(+)zxを計算する量子回路であり、図23(a)のように定義される。この図に示すように、MAJ演算は、それぞれ図24(b)(c)のように定義されるCNOT演算とトフォリ(Toffoli)演算とによって構成される。また、図24(b)(c)におけるNOT演算は図24(a)のように定義される。また、UMA量子回路は、図23(b)のように定義される。この図に示すように、UMA量子回路も、CNOT演算とトフォリ(Toffoli)演算とによって構成される。なお、図面における
Figure 0004700413
は、前述した(+)と同じ排他的論理和を示す。
この非特許文献1の量子回路では、2つの2進数a=an−1…a及びb=bn−1…bを示す2n個のキュービット|a>,…,|an−1>,|b>,…,|bn−1>と、0または1のzを示す1個のキュービット|z>と、補助ビットである1個のキュービット|0>を入力として用いる。なお、図21は、a,bがそれぞれ5キュービット(n=5)によって表される場合の例であるが、これをnキュービットビット同士の加算回路に拡張することは容易である。
また、この量子回路の場合、演算処理を実行するために必要な基本演算(この例ではCNOT演算とトフォリ演算)数は、a,bの桁数に比例して増加する。さらに、演算処理を実行するために必要な計算ステップ数も、a,bの桁数に比例して増加する。ここで、入力桁数に比例した基本演算数のことを「線形サイズ」といい、入力桁数に比例した計算ステップ数のことを「線形深さ」という。すなわち、非特許文献1の量子回路は、線形サイズ・線形深さで演算を行う量子回路である。
図22(a)は、非特許文献2に開示された量子回路を示した図である。
この図に示すように、図21の量子回路は、図22(b)に示す量子フーリエ変換回路「QFT(Quantum Fourier Transform)」と、図24(e)に示す制御回転R(k=1,2,…,6)とによって構成される。なお、図22(b)は、6キュービットに対する量子フーリエ変換を行う量子回路の例であるが、これをnキュービットに対する量子フーリエ変換を行う量子回路に拡張することは容易である。また、図22(b)における「H」は、図24(d)に示すアダマール(Hadamard)変換演算を示す。なお、QFT−1は、QFTの逆演算を示す。
また、この非特許文献2の量子回路では、2つの2進数a=an−1…a及びb=bn−1…bを示す2n個のキュービット|a>,…,|an−1>,|b>,…,|bn−1>と、0または1のzを示す1個のキュービット|z>とを入力として用いる。なお、図22(a)は、a,bがそれぞれ5キュービット(n=5)によって表される場合の例であるが、これをnキュービットビット同士の加算回路に拡張することは容易である。
ここで、量子フーリエ変換は線形深さの演算で実現できることが知られている。また、図22(a)を構成する制御回転Rも線形深さの演算で実現できる。よって、非特許文献2の量子回路は、補助ビットを用いることなく、線形深さで演算を行う量子回路である。
S. A. Cuccaro, T. G. Draper, S. A. Kutin, A new quantum ripple-carry addition circuit,[online], [平成17年5月25日検索],インターネット<http://arxiv.org/abs/quant-ph/0410184>,2004 T. G. Draper, Addition on a Quantum Computer,[online], [平成17年5月25日検索],インターネット<http://arxiv.org/abs/quant-ph/0008033>,2000
上述の非特許文献1の量子回路は、線形サイズ・線形深さによって演算を行う量子回路であるが、補助ビットが1つ必要となる。一方、非特許文献2の量子回路は、補助ビットを用いることなく線形深さで演算を行う量子回路であるが、入力桁数に対して2乗に比例した個数の基本演算を必要とする(線形サイズではない)。
通常、多数のキュービットを実現し、これらを協調的に操作することは物理的に困難である。よって、補助ビットはできるだけ少ないほうが良い。また、基本演算の個数が多いほど誤りが発生する可能性が大きくなるため、基本演算の個数はできるだけ少ないほうが良い。しかし、従来は、線形サイズ・線形深さで補助ビットを用いずに演算を行う量子回路は提案されていなかった。
本発明はこのような点に鑑みてなされたものであり、線形サイズ・線形深さで補助ビットを用いずに量子計算を行う技術的思想を提供することを目的とする。
以上の課題を解決するために、以下の発明が提供される。
第1の本発明では、2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a+b=s…s〔s∈{0,1},j∈{0,…,n}〕と、z(+)sを算出する。
第1の本発明では、まず、それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1を対象とし、値分配部において、キュービットQ2n+1,Qk+2(k=1,…,2n−2)に対するCNOT演算操作を行う。
また、MAJ計算部において、キュービットQ,Q,Q2n+1に対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、その繰り返しの後、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作を行う。
また、第1逆計算部において、キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返す。
そして、第2逆計算部において、キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Q2r+4(r=1,…,n−2)に対するトフォリ演算操作を行い、その操作の後、キュービットQに対するNOT演算操作を行い、さらにキュービットQ,Q,Qに対するトフォリ演算操作を行い、その操作の後、キュービットQ2t,Q2t−1(t=1,…,n)に対するCNOT演算操作を行う。
これにより、補助ビットを用いることなく、線形サイズ・線形深さで加算演算を行うことができる。
第2の本発明では、2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕に対し、(a+b)mod2=sn−1…s〔(s∈{0,1}〕を算出する。
第2の本発明では、まず、それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>である2n個のキュービットQ,Q,…,Q2nを対象とし、値分配部において、キュービットQ2n,Qk+2(k=1,…,2n−3)に対するCNOT演算操作を行う。
また、MAJ計算部において、キュービットQ,Q,Q2nに対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2nに対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、キュービットQ2n,Q2n−1に対するCNOT演算操作を行う。
また、第1逆計算部において、キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返す。
そして、第2逆計算部において、キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Q2r+4(r=1,…,n−2)に対するトフォリ演算操作を行い、その操作の後、キュービットQに対するNOT演算操作を行い、さらにキュービットQ,Q,Qに対するトフォリ演算操作を行い、その操作の後、キュービットQ2t,Q2t−1(t=1,…,n)に対するCNOT演算操作を行う。
これにより、補助ビットを用いることなく、線形サイズ・線形深さで2を法とした加算演算を行うことができる。
第3の本発明では、2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−b=sn−1…s〔s∈{0,1}〕とその符号s〔s∈{0,1}〕とを算出する。
第3の本発明では、まず、それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1を対象とし、第1否定演算部において、キュービットQ2h(h=1,…,n)に対するNOT演算操作を行う。
また、値分配部において、キュービットQ2n+1,Qk+2(k=1,…,2n−2)に対するCNOT演算操作を行う。
また、MAJ計算部において、キュービットQ,Q,Q2n+1に対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、その繰り返しの後、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作を行う。
また、第1逆計算部において、キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返す。
また、第2逆計算部において、キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Q2r+4(r=1,…,n−2)に対するトフォリ演算操作を行い、その操作の後、キュービットQに対するNOT演算操作を行い、さらにキュービットQ,Q,Qに対するトフォリ演算操作を行い、その操作の後、キュービットQ2t,Q2t−1(t=1,…,n)に対するCNOT演算操作を行う。
そして、第2否定演算部において、キュービットQ(u=1,…,2n+1)に対するNOT演算操作を行う。
これにより、補助ビットを用いることなく、線形サイズ・線形深さで減算演算を行うことができる。
第4の本発明では、2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−bの符号yを算出する。
第4の本発明では、まず、それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1を対象とし、第1否定演算部において、キュービットQ2k(k=1,…,n)に対するNOT演算操作を行う。
また、値分配部において、キュービットQ2n+1,Qk+2(k=1,…,2n−2)に対するCNOT演算操作を行う。
また、MAJ計算部において、キュービットQ,Q,Q2n+1に対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、その繰り返しの後、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作を行う。
また、第1逆計算部において、キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ,Q2q+3に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返す。
また、第2逆計算部において、キュービットQに対するNOT演算操作を行い、その操作の後、キュービットQ,Q,Q2r+4に対するトフォリ演算操作とキュービットQ,Q,Q2r+3に対するトフォリ演算操作とをr=n−2からr=1までrを1ずつ減少させる順序で繰り返し、その繰り返しの後、キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Qに対するトフォリ演算操作を行い、キュービットQ,Q,Qに対するトフォリ演算操作を行う。
そして、第2否定演算部において、キュービットQ2u(u=1,…,n)に対するNOT演算操作とキュービットQ2n+1に対するNOT演算操作とを行う。
これにより、補助ビットを用いることなく、線形サイズ・線形深さで比較演算を行うことができる。
本発明では、補助ビットを用いることなく、線形サイズ・線形深さで量子演算を行うことができる。
以下、本発明の実施の形態を図面を参照して説明する。
〔第1の実施の形態〕
第1の実施の形態は、2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a+b=s…s〔s∈{0,1},j∈{0,…,n}〕と、z(+)sとを算出し、sn−1…sとz(+)sとaとを出力する例である。すなわち、本形態では、補助ビットを用いることなく、線形サイズ・線形深さで加算演算を行う。
<ブロック構成>
図1は、第1の実施の形態における量子演算装置1の構成を例示したブロック図である。
この図に例示するように、本形態の量子演算装置1は、CNOT演算操作部11を具備する値分配部10と、トフォリ演算操作部21及びMAJ演算操作部22を具備するMAJ計算部20と、CNOT演算操作部31及びトフォリ演算操作部32を具備する第1逆計算部30と、NOT演算操作部41、トフォリ演算操作部42及びCNOT演算操作部43を具備する第2逆計算部40と、メモリ51を具備する制御部50と、2n+1個のキュービット(Q,Q,…,Q2n+1)60とを有している。なお、2n+1個のキュービット60それぞれの初期量子状態は、上述の入力値a,b,zに対応する|b>,|a>,…,|bn−1>,|an−1>,|z>である。
<ハードウェア構成>
本形態の量子演算装置1は、量子コンピュータによって実現できる。量子コンピュータの実現する物理系としては、例えば、キュービットとして光子の偏光や光路を用いる方法(Y. Nakamura, M. Kitagawa, K. Igeta, In 3-rd Proc. Asia-Pacific Phys. Comf., World Scientific, Singapore, 1988)、液体中の各スピンを用いる方法(Gershenfield, Chuang, Bulk spin resonance quantum computation, Science, 275;350, 1997)、シリコン結晶中の核スピンを用いる方法(B. E. Kane, A silicon-based nuclear spin quantum computer, Nature 393, 133, 1998)、イオントラップを用いる方法(J. I. Cirac and P. Zoller, Quantum computations with cold trapped ions, Physical Review Letter 74;4091, 1995)、量子ドット中の電子スピンを用いる方法(D. Loss and D. P. DiVincenzo, Quantum computation with quantum dots, Physical Review A 57, 120-126, 1998)、超伝導素子を用いる方法(Y. Nakamura, Yu. A. Pashkin and J. S. Tsai, Coherent control of macroscopic quantum states in a single-cooper pair box, Nature 393, 786-788, 1999)等を例示できる。また、それぞれの物理系に対する量子コンピュータの実現方法については、「http://www.ipa.go.jp/security/fy11/report/contents/crypto/crypto/report/QuantumComputers/contents/doc/qc_survey.pdf」や「M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information, Cambridge University Press, Chapter 7 Physical Realization」に詳しい。
以下に、量子演算装置1を実現するための具体的なハードウェア構成を例示する。
<キュービット60>
キュービットとして光子の偏光を用いる場合には、例えば、パラメトリックダウンコンバージョン(PDC:parametric down conversion)(例えば、「P. G. Kwiat, K. Mattle, H. Weinfurter, A. Zeilinger, A. V. Sergienko, and Y. Shih, “New high-intensity source of polarization-entangled photon pairs,” Phys. Rev. Lett. ,75:4337-4341, 1995.」「P. G. Kwiat, E. Waks, A. G. White, I. Appelbaum, and P. H. Eberhard, “Ultrabright source of polarization-entangled photons,” Phys. Rev. A, 60:R773-R776, 1999.」等参照。)により生成された2n+1個の単一光子を用いる。また、キュービット60それぞれの初期量子状態は、例えば、他の演算の量子回路による操作によって得られたものを用いる。また、パラメトリックダウンコンバージョン等により生成された単一光子に、ビームスプリッタや偏光回転素子等によって実現されるウォルシューアダマール変換、CNOT、R回転等の操作を行い、上述の初期量子状態を生成することとしてもよい。
また、核スピンをキュービットとして用いる場合には、例えば、「T. D. Ladd, et al., "All-Silicon quantum computer," Phys. Rev. Lett., vol. 89, no. 1, 017901-1‐017901-4, July 1, 2002.」に記載されているようにSi(111)基板等に各キュービットを生成する。なお、キュービットの初期量子状態は、例えば、他の演算の量子回路による操作によって得られたものを用いてもよいし、各キュービットが生成された基板をmK(ミリケルビン)オーダー以下に冷却してスピンの向きを揃えた後、所定の電磁波パルスを印加して生成してもよい。
その他、上記の文献に記載された方法でキュービットを用意することとしてもよい。
また、演算前後や演算途中においてキュービットの量子状態を保存する必要がある場合には、例えば、量子ドット内の電子準位、核スピン、あるいは超伝導体内部の電荷(クーパー対)量をキュービットとして用いてデータを保存する量子メモリ等を用いてもよい(A.Barenco, D.Deutsch, and A.Ekert, Phys. Rev. Lett.74,4083(1995)、松枝秀明 電子情報通信学会誌 A Vol.J81-A No.12(1998)1978、T.H.Oosterkamp et.al., Nature 395,873(1998)、D.Loss and D.P. DiVincenzo, Phys. Rev. A57(1998) 120. T.Oshima, quant-ph/0002004, http://arxiv.org/abs/quant-ph/0002004、B.E.Kane, A silicon-based nuclear spin quantum computer, Nature, 393, 133(1998)、
1117524573359_1
、Y.Nakamura, Yu. A. Pashkin and J.S.Tsai, Nature 398(1999)768)。
<CNOT演算操作部11,31,43>
キュービットとして光子の偏光を用いる場合には、例えば、偏光ビームスプリッタ等を用い、「T.B. Pittman, M.J. Fitch, B.C. Jacobs, J.D. Franson: “Experimental Controlled-NOT Logic Gate for Single Photons in the Coincidence Basis,” quant-ph/0303095, http://arxiv.org/abs/quant-ph/0303095」記載のPittman et al. 方式によってCNOT演算を実現できる。
また、核スピンをキュービットとして用いる場合には、例えば、所定の電磁波パルスをキュービットに印加することによってCNOT演算を実現できる。
また、キュービットとしてイオントラップを用いる場合には、キュービットを構成する個々のイオンにレーザービームを照射することによってCNOT演算を実現できる。
その他、上記の文献に記載された方法でCNOT演算を実現してもよい。
<トフォリ演算操作部21,32,42,MAJ演算操作部22,NOT演算操作部41>
キュービットとして光子の偏光を用いる場合には、上述のCNOTの構成や偏光回転素子等を用い、各演算を実現できる。核スピンをキュービットやイオントラップとして用いる場合には、上述の電磁波パルスやレーザービーム照射によって各処理を実現できる。
<制御部50・メモリ51>
制御部50は、例えば公知のコンピュータに所定のプログラムを実行させて実現してもよいし、上述の量子コンピュータによって実現してもよい。また、メモリ51は、DRAM、SRAM、フラッシュメモリ、NV(Nonvolatile)RAM等の読書き可能な半導体メモリでもよいし、上述の量子メモリでもよい。
<処理>
次に、本形態における量子演算装置1の処理について説明する。
図2及び図3は、第1の実施の形態における量子演算装置1の処理を説明するためのフローチャートである。また、図4(a)は、ステップS1からS4による量子操作を示した量子回路であり、図4(b)は、ステップS5からS11による量子操作を示した量子回路であり、図5(a)は、ステップS12からS16による量子操作を示した量子回路であり、図5(b)は、ステップS17からS27による量子操作を示した量子回路である。なお、図4及び図5はn=5の場合の例である。
量子演算装置1は、制御部50の制御のもと、初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービット(Q,Q,…,Q2n+1)60に対し、以下の各処理を実行する。
[図4(a)]
まず、制御部50は、変数kに1を代入しメモリ51に格納する(ステップS1)。次に、制御部50はメモリ51に格納された変数kを読み込み、この変数kに応じた命令を値分配部10に与える。これに対し、値分配部10は、CNOT演算操作部11においてキュービットQ2n+1,Qk+2に対するCNOT演算操作(制御ビットQ2n+1,目標ビットQk+2)を行う(ステップS2)。次に、制御部50は、メモリ51に格納された変数kを読み込み、この変数kが2n−2であるか否かを判断する(ステップS3)。なお、nは事前に設定される値である。ここで、k=2n−2でなければ、制御部50は、メモリ51の変数kに1を加えた値を新たなkとしてメモリ51に格納し、処理をステップS2に戻す(ステップS4)。
[図4(b)]
一方、k=2n−2であれば、制御部50は、MAJ計算部20に指示を与え、MAJ計算部20は、トフォリ演算操作部21において、キュービットQ,Q,Q2n+1に対するトフォリ演算操作(制御ビットQ,Q,目標ビットQ2n+1)を行う(ステップS5)。次に、制御部50は、変数pに1を代入しメモリ51に格納する(ステップS6)。次に、制御部50はメモリ51に格納された変数pを読み込み、この変数pに応じた命令をMAJ計算部20に与える。これを受けたMAJ計算部20は、MAJ演算操作部22において、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作(図23(a)の入力(1)としてQ2p+1、入力(2)としてQ2p+2、入力(3)としてQ2n+1)を行う(ステップS7)。次に、MAJ計算部20は、トフォリ演算操作部21において、キュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作(制御ビットQ2p+1,Q2p+2、目標ビットQ)を行う(ステップS8)。
次に、制御部50は、メモリ51に格納された変数pを読み込み、この変数pがn−2であるか否かを判断する(ステップS9)。ここで、p=n−2でなければ、制御部50は、メモリ51の変数pに1を加えた値を新たなpとしてメモリ51に格納し、処理をステップS7に戻す(ステップS10)。一方、p=n−2であれば、MAJ計算部20に命令を与え、MAJ計算部20は、MAJ演算操作部22において、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作(図23(a)の入力(1)としてQ2n−1、入力(2)としてQ2n、入力(3)としてQ2n+1)を行う(ステップS11)。
[図5(a)]
次に、制御部50は、変数qにn−2を代入しメモリ51に格納する(ステップS12)。次に、制御部50はメモリ51に格納された変数qを読み込み、この変数qに応じた命令を第1逆計算部30に与える。これを受けた第1逆計算部30は、CNOT演算操作部31において、キュービットQ,Q2q+4に対するCNOT演算操作(制御ビットQ、目標ビットQ2q+4)を行う(ステップS13)。次に、トフォリ演算操作部32において、キュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作(制御ビットQ2q+1,Q2q+2、目標ビットQ)を行う(ステップS14)。
次に、制御部50は、メモリ51に格納された変数qを読み込み、この変数qが1であるか否かを判断する(ステップS15)。ここで、q=1でなければ、制御部50は、メモリ51の変数qから1を引いた値を新たなqとしてメモリ51に格納し、処理をステップS13に戻す(ステップS16)。
[図5(b)]
一方、q=1でなければ、制御部50は、第2逆計算部40に指示を与え、第2逆計算部40は、NOT演算操作部41において、キュービットQに対するNOT演算操作を行う(ステップS17)。次に、制御部50は、変数rにn−2を代入しメモリ51に格納する(ステップS18)。次に、制御部50は、メモリ51に格納された変数rを読み込み、この変数rに応じた命令を第2逆計算部40に与える。これを受けた第2逆計算部40は、トフォリ演算操作部42において、キュービットQ,Q,Q2r+4に対するトフォリ演算操作(制御ビットQ,Q、目標ビットQ2r+4)を行う(ステップS19)。
次に、制御部50は、メモリ51に格納された変数rを読み込み、この変数rが1であるか否かを判断する(ステップS20)。ここで、r=1でなければ、制御部50は、メモリ51の変数rから1を引いた値を新たなrとしてメモリ51に格納し、処理をステップS19に戻す(ステップS21)。一方、r=1であれば、NOT演算操作部41において、キュービットQに対するNOT演算操作を行い(ステップS22)、トフォリ演算操作部42において、キュービットQ,Q,Qに対するトフォリ演算操作(制御ビットQ,Q、目標ビットQ)を行う(ステップS23)。
次に、制御部50は、変数tに1を代入しメモリ51に格納する(ステップS24)。次に、制御部50は、メモリ51に格納された変数tを読み込み、この変数tに応じた命令を第2逆計算部40に与える。これを受けた第2逆計算部40は、Q2t,Q2t−1に対するCNOT演算操作(制御ビットQ2t、目標ビットQ2t−1)を行う(ステップS25)。
次に、制御部50は、メモリ51に格納された変数tを読み込み、この変数tがnであるか否かを判断する(ステップS26)。ここで、t=nでなければ、制御部50は、メモリ51の変数tに1を加算した値を新たなtとしてメモリ51に格納し、処理をステップS25に戻す(ステップS27)。一方、t=nであれば、制御部50は、処理を終了させる。
以上の処理により、キュービットQ2f+1(f=0,…,n−1)の量子状態がそれぞれaとbとの合計値の各桁を示すsとなり、キュービットQ2f+2の量子状態がそれぞれaの各桁を示すaとなり、キュービットQ2n+1の量子状態がz(+)sとなる。そして、これらの処理において補助ビットは不要であり、これらは線形サイズ・線形深さの演算である。
〔第2の実施の形態〕
第2の実施の形態では、2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕に対し、(a+b)mod2=sn−1…s〔s∈{0,1}〕を算出し、sn−1…sとaとを出力する。すなわち、本形態では、補助ビットを用いることなく、線形サイズ・線形深さで2を法とした加算演算を行う。以下では、第1の実施の形態との相違点を中心に説明し、第1の実施の形態と共通する事項については説明を省略する。
<ブロック構成>
図6は、第2の実施の形態における量子演算装置100の構成を例示したブロック図である。なお、この図において第1の実施の形態と共通する事項については、図1と同じ符号を付した。
この図に例示するように、本形態の量子演算装置100は、CNOT演算操作部111を具備する値分配部110と、トフォリ演算操作部121、MAJ演算操作部122及びCNOT演算操作部123を具備するMAJ計算部120と、CNOT演算操作部31及びトフォリ演算操作部32を具備する第1逆計算部30と、NOT演算操作部41、トフォリ演算操作部42及びCNOT演算操作部43を具備する第2逆計算部40と、メモリ51を具備する制御部50と、2n個のキュービット(Q,Q,…,Q2n)160とを有している。なお、2n個のキュービット160それぞれの初期量子状態は、上述の入力値a,bに対応する|b>,|a>,…,|bn−1>,|an−1>である。
<ハードウェア構成>
第1の実施の形態と同様であるため、説明を省略する。
<処理>
次に、本形態における量子演算装置100の処理について説明する。
図7及び図8は、第2の実施の形態における量子演算装置100の処理を説明するためのフローチャートである。また、図9(a)は、ステップS41からS44による量子操作を示した量子回路であり、図9(b)は、ステップS45からS51による量子操作を示した量子回路である。なお、図9はn=5の場合の例である。
量子演算装置100は、制御部50の制御のもと、初期量子状態が|b>,|a>,…,|bn−1>,|an−1>である2n個のキュービット(Q,Q,…,Q2n)160に対し、以下の各処理を実行する。
[図9(a)]
まず、制御部50は、変数kに1を代入しメモリ51に格納する(ステップS41)。次に、制御部50はメモリ51に格納された変数kを読み込み、この変数kに応じた命令を値分配部110に与える。これに対し、値分配部110は、CNOT演算操作部111においてキュービットQ2n,Qk+2に対するCNOT演算操作(制御ビットQ2n,目標ビットQk+2)を行う(ステップS42)。
次に、制御部50は、メモリ51に格納された変数kを読み込み、この変数kが2n−3であるか否かを判断する(ステップS43)。ここで、k=2n−3でなければ、制御部50は、メモリ51の変数kに1を加えた値を新たなkとしてメモリ51に格納し、処理をステップS42に戻す(ステップS44)。
[図9(b)]
一方、k=2n−3であれば、制御部50は、MAJ計算部120に指示を与え、MAJ計算部120は、トフォリ演算操作部121において、キュービットQ,Q,Q2nに対するトフォリ演算操作(制御ビットQ,Q,目標ビットQ2n)を行う(ステップS45)。
次に、制御部50は、変数pに1を代入しメモリ51に格納する(ステップS46)。次に、制御部50はメモリ51に格納された変数pを読み込み、この変数pに応じた命令をMAJ計算部120に与える。これを受けたMAJ計算部120は、MAJ演算操作部122において、キュービットQ2p+1,Q2p+2,Q2nに対するMAJ演算操作(図23(a)の入力(1)としてQ2p+1、入力(2)としてQ2p+2、入力(3)としてQ2n)を行う(ステップS47)。次に、MAJ計算部120は、トフォリ演算操作部121において、キュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作(制御ビットQ2p+1,Q2p+2、目標ビットQ)を行う(ステップS48)。
次に、制御部50は、メモリ51に格納された変数pを読み込み、この変数pがn−2であるか否かを判断する(ステップS49)。ここで、p=n−2でなければ、制御部50は、メモリ51の変数pに1を加えた値を新たなpとしてメモリ51に格納し、処理をステップS47に戻す(ステップS50)。一方、p=n−2であれば、MAJ計算部120に命令を与え、MAJ計算部120は、CNOT演算操作部123において、キュービットQ2n,Q2n−1に対するCNOT演算操作(制御ビットQ2n、目標ビットQ2n−1)を行う(ステップS51)。
その後、第1の実施の形態におけるステップS12からS27と同じ処理をキュービット160に対して実行する(ステップS62からS77)。
以上の処理により、キュービットQ2f+1(f=0,…,n−1)の量子状態がそれぞれ(a+b)mod2の各桁を示すsとなり、キュービットQ2f+2の量子状態がそれぞれaの各桁を示すaとなる。そして、これらの処理において補助ビットは不要であり、これらは線形サイズ・線形深さの演算である。
〔第3の実施の形態〕
第3の実施の形態では、2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−b=sn−1…s〔s∈{0,1}〕とその符号s〔s∈{0,1}〕とを算出し、z(+)sとsn−1…sとaとを出力する。ここで、符号sは、b≦aであれば1、b>aであれば0である。また、負の数の表現には、2の補数表現を用いる。すなわち、r=rn−1…rを正の数としたとき、−rをr’n−1…r’で表す。ここでr’はrの否定(ビットの反転)を表す。すなわち、本形態では、補助ビットを用いることなく、線形サイズ・線形深さで減算演算を行う。以下では、第1の実施の形態との相違点を中心に説明し、第1の実施の形態と共通する事項については説明を省略する。
<ブロック構成>
図10は、第3の実施の形態における量子演算装置200の構成を例示したブロック図である。なお、この図において第1の実施の形態と共通する事項については、図1と同じ符号を付した。
この図に例示するように、本形態の量子演算装置200は、CNOT演算操作部11を具備する値分配部10と、トフォリ演算操作部21、MAJ演算操作部22を具備するMAJ計算部20と、CNOT演算操作部31及びトフォリ演算操作部32を具備する第1逆計算部30と、NOT演算操作部41、トフォリ演算操作部42及びCNOT演算操作部43を具備する第2逆計算部40と、NOT演算操作部271を具備する第1否定演算部270と、NOT演算操作部281を具備する第2否定演算部280と、メモリ51を具備する制御部50と、2n+1個のキュービット(Q,Q,…,Q2n+1)60とを有している。なお、2n+1個のキュービット60それぞれの初期量子状態は、上述の入力値a,b,zに対応する|b>,|a>,…,|bn−1>,|an−1>,|z>である。
<ハードウェア構成>
第1の実施の形態と同様であるため、説明を省略する。
<処理>
次に、本形態における量子演算装置200の処理について説明する。
図11から図13は、第3の実施の形態における量子演算装置200の処理を説明するためのフローチャートである。また、図14(a)は、ステップS81からS84による量子操作を示した量子回路であり、図14(b)は、ステップS112からS114による量子操作を示した量子回路である。なお、図14はn=5の場合の例である。
量子演算装置200は、制御部50の制御のもと、それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービット(Q,Q,…,Q2n+1)60に対し、以下の各処理を実行する。
[図14(a)]
まず、制御部50は、変数hに1を代入しメモリ51に格納する(ステップS81)。次に、制御部50はメモリ51に格納された変数hを読み込み、この変数hに応じた命令を第1否定演算部270に与える。これに対し、第1否定演算部270は、NOT演算操作部271において、キュービットQ2hに対するNOT演算操作を行う(ステップS82)。
次に、制御部50は、メモリ51に格納された変数hを読み込み、この変数hがnであるか否かを判断する(ステップS83)。ここで、h=nでなければ、制御部50は、メモリ51の変数hに1を加えた値を新たなhとしてメモリ51に格納し、処理をステップS82に戻す(ステップS84)。
一方、h=nであれば、制御部50は、第1の実施の形態におけるステップS1からS27と同じ処理を行う(ステップS81からS111)。
[図14(b)]
そして、ステップS110において制御部50がt=nであると判断した場合、制御部50は、変数uに1を代入しメモリ51に格納する(ステップS112)。次に、制御部50はメモリ51に格納された変数uを読み込み、この変数uに応じた命令を第2否定演算部280に与える。これに対し、第2否定演算部280は、NOT演算操作部281において、キュービットQに対するNOT演算操作を行う(ステップS113)。
次に、制御部50は、メモリ51に格納された変数uを読み込み、この変数uが2n+1であるか否かを判断する(ステップS114)。ここで、u=2n+1でなければ、制御部50は、メモリ51の変数uに1を加えた値を新たなuとしてメモリ51に格納し、処理をステップS113に戻す(ステップS115)。一方、u=2n+1であれば、制御部50は、処理を終了させる。
以上の処理により、キュービットQ2f+1(f=0,…,n−1)の量子状態がそれぞれa−bの各桁を示すsとなり、キュービットQ2f+2の量子状態がそれぞれaの各桁を示すaとなり、キュービットQ2n+1の量子状態がz(+)sとなる。そして、これらの処理において補助ビットは不要であり、これらは線形サイズ・線形深さの演算である。
〔第4の実施の形態〕
第4の実施の形態では、2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−bの符号yを算出し、z(+)yとaとbとを出力する。すなわち、本形態では、補助ビットを用いることなく、線形サイズ・線形深さでaとbの比較演算を行う。以下では、第1,3の実施の形態との相違点を中心に説明し、第1,3の実施の形態と共通する事項については説明を省略する。
<ブロック構成>
図15は、第4の実施の形態における量子演算装置300の構成を例示したブロック図である。なお、この図において第1,3の実施の形態と共通する事項については、図1及び図10と同じ符号を付した。
この図に例示するように、本形態の量子演算装置300は、CNOT演算操作部11を具備する値分配部10と、トフォリ演算操作部21、MAJ演算操作部22を具備するMAJ計算部20と、CNOT演算操作部331及びトフォリ演算操作部332を具備する第1逆計算部330と、NOT演算操作部341及びトフォリ演算操作部342を具備する第2逆計算部340と、NOT演算操作部271を具備する第1否定演算部270と、NOT演算操作部381を具備する第2否定演算部380と、メモリ51を具備する制御部50と、2n+1個のキュービット(Q,Q,…,Q2n+1)60とを有している。なお、2n+1個のキュービット60それぞれの初期量子状態は、上述の入力値a,b,zに対応する|b>,|a>,…,|bn−1>,|an−1>,|z>である。
<ハードウェア構成>
第1の実施の形態と同様であるため、説明を省略する。
<処理>
次に、本形態における量子演算装置300の処理について説明する。
図16から図18は、第4の実施の形態における量子演算装置300の処理を説明するためのフローチャートである。また、図19(a)は、ステップS136からS141による量子操作を示した量子回路であり、図19(b)は、ステップS142からS150による量子操作を示した量子回路である。図20は、ステップS151からS155による量子操作を示した量子回路である。なお、図19及び図20はn=5の場合の例である。
量子演算装置300は、制御部50の制御のもと、それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1に対し、以下の各処理を実行する。
まず、第3の実施の形態におけるステップS81からS95と同じ処理を行う(ステップS121からS135)。
[図19(a)]
次に、制御部50は、変数qにn−2を代入しメモリ51に格納する(ステップS136)。そして、制御部50はメモリ51に格納された変数qを読み込み、この変数qに応じた命令を第1逆計算部330に与える。これに対し、第1逆計算部330は、CNOT演算操作部331において、キュービットQ,Q2q+4に対するCNOT演算操作を行い(ステップS137)、キュービットQ,Q2q+3に対するCNOT演算操作を行う(ステップS138)。また、トフォリ演算操作部342において、キュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作を行う(ステップS139)。
次に、制御部50は、メモリ51に格納された変数qを読み込み、この変数qが1であるか否かを判断する(ステップS140)。ここで、q=1でなければ、制御部50は、メモリ51の変数qから1を減じた値を新たなqとしてメモリ51に格納し、処理をステップS137に戻す(ステップS141)。
[図19(b)]
一方、q=1であれば、制御部50は、第2逆計算部340に指示を与え、これを受けた第2逆計算部340は、NOT演算操作部341において、キュービットQに対するNOT演算操作を行う(ステップS142)。
次に、制御部50は、変数rにn−2を代入しメモリ51に格納する(ステップS143)。そして、制御部50はメモリ51に格納された変数rを読み込み、この変数rに応じた命令を第2逆計算部340に与える。これに対し、第2逆計算部340は、トフォリ演算操作部342において、キュービットQ,Q,Q2r+4に対するトフォリ演算操作を行い(ステップS144)、キュービットQ,Q,Q2r+3に対するトフォリ演算操作を行う(ステップS145)。
次に、制御部50は、メモリ51に格納された変数rを読み込み、この変数rが1であるか否かを判断する(ステップS146)。ここで、r=1でなければ、制御部50は、メモリ51の変数rから1を減じた値を新たなrとしてメモリ51に格納し、処理をステップS144に戻す(ステップS147)。一方、r=1であれば、制御部50は、第2逆計算部340に指示を与え、これを受けた第2逆計算部340は、NOT演算操作部341において、キュービットQに対するNOT演算操作を行う(ステップS148)。次に、トフォリ演算操作部342において、キュービットQ,Q,Qに対するトフォリ演算操作を行い(ステップS149)、キュービットQ,Q,Qに対するトフォリ演算操作を行う(ステップS150)。
[図20]
次に、制御部50は、変数uに1を代入しメモリ51に格納する(ステップS151)。そして、制御部50は、第2否定演算部380に指示を与え、これを受けた第2否定演算部380は、NOT演算操作部381において、キュービットQ2u対するNOT演算操作を行う(ステップS152)。次に、制御部50は、メモリ51に格納された変数uを読み込み、この変数uがnであるか否かを判断する(ステップS153)。ここで、u=nでなければ、制御部50は、メモリ51の変数uに1を加えた値を新たなuとしてメモリ51に格納し、処理をステップS152に戻す(ステップS154)。一方、u=nであれば、制御部50は、第2否定演算部380に指示を与え、これを受けた第2否定演算部380は、NOT演算操作部381において、キュービットQ2n+1対するNOT演算操作を行う(ステップS155)。
以上の処理により、キュービットQ2f+1(f=0,…,n−1)の量子状態がそれぞれbの各桁を示すbとなり、キュービットQ2f+2の量子状態がそれぞれaの各桁を示すaとなり、キュービットQ2n+1の量子状態がz(+)yとなる。そして、これらの処理において補助ビットは不要であり、これらは線形サイズ・線形深さの演算である。
なお、本発明は上述の実施の形態に限定されるものではない。例えば、本発明の趣旨を逸脱しない範囲で各処理の順序を入れ換えてもよく、複数の基本演算を同時に実行してもよい。例えば、第1の実施の形態において、ステップS17の操作を、p=1におけるステップS7の操作と同時に実行してもよい。また、第3の実施の形態におけるステップS81からS84の処理の代わりに、h=1からnに対応する全てのキュービットQ2hのNOT演算を同時に行うこととしてもよい。これにより、より演算ステップ数を低減させることができる。
また、上述の実施の形態では特に述べなかったが、各キュービットの量子状態を複数の入力値の重ね合わせ状態とし、複数の演算を並行に処理することとしてもよい。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
例えば、本発明を量子コンピュータに適用することにより、演算速度や演算精度の向上を実現できる。
図1は、第1の実施の形態における量子演算装置1の構成を例示したブロック図である。 図2は、第1の実施の形態における量子演算装置1の処理を説明するためのフローチャートである。 第1の実施の形態における量子演算装置1の処理を説明するためのフローチャートである。 図4(a)は、ステップS1からS4による量子操作を示した量子回路であり、図4(b)は、ステップS5からS11による量子操作を示した量子回路である。 図5(a)は、ステップS12からS16による量子操作を示した量子回路であり、図5(b)は、ステップS17からS27による量子操作を示した量子回路である。 図6は、第2の実施の形態における量子演算装置の構成を例示したブロック図である。 図7は、第2の実施の形態における量子演算装置の処理を説明するためのフローチャートである。 図8は、第2の実施の形態における量子演算装置の処理を説明するためのフローチャートである。 図9(a)は、ステップS41からS44による量子操作を示した量子回路であり、図9(b)は、ステップS45からS51による量子操作を示した量子回路である。 図10は、第3の実施の形態における量子演算装置の構成を例示したブロック図である。 図11は、第3の実施の形態における量子演算装置の処理を説明するためのフローチャートである。 図12は、第3の実施の形態における量子演算装置の処理を説明するためのフローチャートである。 図13は、第3の実施の形態における量子演算装置の処理を説明するためのフローチャートである。 図14(a)は、ステップS81からS84による量子操作を示した量子回路であり、図14(b)は、ステップS112からS114による量子操作を示した量子回路である。 図15は、第4の実施の形態における量子演算装置の構成を例示したブロック図である。 図16は、第4の実施の形態における量子演算装置の処理を説明するためのフローチャートである。 図17は、第4の実施の形態における量子演算装置の処理を説明するためのフローチャートである。 図18は、第4の実施の形態における量子演算装置の処理を説明するためのフローチャートである。 図19(a)は、ステップS136からS141による量子操作を示した量子回路であり、図19(b)は、ステップS142からS150による量子操作を示した量子回路である。 図20は、ステップS151からS155による量子操作を示した量子回路である。 図21は、非特許文献1に開示された量子回路を示した図である。 図22(a)は、非特許文献2に開示された量子回路を示した図である。図22(b)は、量子フーリエ変換回路を示した図である。 図23(a)は、MAJ量子回路を示した図であり、図23(b)は、UMA量子回路を示した図である。 図24(a)はNOT演算の定義を、(b)はCNOT演算の定義を、(c)はトフォリ演算の定義を、(d)はアダマール変換演算の定義を、(e)は制御回転演算の定義を、それぞれ示した図である。
符号の説明
1,100,200,300 量子演算装置

Claims (8)

  1. 2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a+b=s…s〔s∈{0,1},j∈{0,…,n}〕と、z(+)s〔α(+)βはαとβとの排他的論理和を示す〕とを算出する量子演算装置であって、
    それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1を対象とし、キュービットQ2n+1,Qk+2(k=1,…,2n−2)に対するCNOT演算操作を行う値分配部と、
    キュービットQ,Q,Q2n+1に対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、その繰り返しの後、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作を行うMAJ計算部と、
    キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返す第1逆計算部と、
    キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Q2r+4(r=1,…,n−2)に対するトフォリ演算操作を行い、その操作の後、キュービットQに対するNOT演算操作を行い、さらにキュービットQ,Q,Qに対するトフォリ演算操作を行い、その操作の後、キュービットQ2t,Q2t−1(t=1,…,n)に対するCNOT演算操作を行う第2逆計算部と、
    を有することを特徴とする量子演算装置。
  2. 2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕に対し、(a+b)mod2=sn−1…s〔s∈{0,1}〕を算出する量子演算装置であって、
    それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>である2n個のキュービットQ,Q,…,Q2nを対象とし、キュービットQ2n,Qk+2(k=1,…,2n−3)に対するCNOT演算操作を行う値分配部と、
    キュービットQ,Q,Q2nに対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2nに対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、キュービットQ2n,Q2n−1に対するCNOT演算操作を行うMAJ計算部と、
    キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返す第1逆計算部と、
    キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Q2r+4(r=1,…,n−2)に対するトフォリ演算操作を行い、その操作の後、キュービットQに対するNOT演算操作を行い、さらにキュービットQ,Q,Qに対するトフォリ演算操作を行い、その操作の後、キュービットQ2t,Q2t−1(t=1,…,n)に対するCNOT演算操作を行う第2逆計算部と、
    を有することを特徴とする量子演算装置。
  3. 2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−b=sn−1…s〔s∈{0,1}〕とその符号s〔s∈{0,1}〕とを算出する量子演算装置であって、
    それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1を対象とし、キュービットQ2h(h=1,…,n)に対するNOT演算操作を行う第1否定演算部と、
    キュービットQ2n+1,Qk+2(k=1,…,2n−2)に対するCNOT演算操作を行う値分配部と、
    キュービットQ,Q,Q2n+1に対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、その繰り返しの後、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作を行うMAJ計算部と、
    キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返す第1逆計算部と、
    キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Q2r+4(r=1,…,n−2)に対するトフォリ演算操作を行い、その操作の後、キュービットQに対するNOT演算操作を行い、さらにキュービットQ,Q,Qに対するトフォリ演算操作を行い、その操作の後、キュービットQ2t,Q2t−1(t=1,…,n)に対するCNOT演算操作を行う第2逆計算部と、
    キュービットQ(u=1,…,2n+1)に対するNOT演算操作を行う第2否定演算部と、
    を有することを特徴とする量子演算装置。
  4. 2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−bの符号yを算出する量子演算装置であって、
    それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1を対象とし、キュービットQ2k(k=1,…,n)に対するNOT演算操作を行う第1否定演算部と、
    キュービットQ2n+1,Qk+2(k=1,…,2n−2)に対するCNOT演算操作を行う値分配部と、
    キュービットQ,Q,Q2n+1に対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、その繰り返しの後、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作を行うMAJ計算部と、
    キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ,Q2q+3に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返す第1逆計算部と、
    キュービットQに対するNOT演算操作を行い、その操作の後、キュービットQ,Q,Q2r+4に対するトフォリ演算操作とキュービットQ,Q,Q2r+3に対するトフォリ演算操作とをr=n−2からr=1までrを1ずつ減少させる順序で繰り返し、その繰り返しの後、キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Qに対するトフォリ演算操作を行い、キュービットQ,Q,Qに対するトフォリ演算操作を行う第2逆計算部と、
    キュービットQ2u(u=1,…,n)に対するNOT演算操作とキュービットQ2n+1に対するNOT演算操作とを行う第2否定演算部と、
    を有することを特徴とする量子演算装置。
  5. 2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a+b=s…s〔s∈{0,1},j∈{0,…,n}〕と、z(+)s〔α(+)βはαとβとの排他的論理和を示す〕とを算出する量子回路を用いた量子演算方法であって、
    それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1を対象とし、値分配部において、キュービットQ2n+1,Qk+2(k=1,…,2n−2)に対するCNOT演算操作を行うステップと、
    MAJ計算部において、キュービットQ,Q,Q2n+1に対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、その繰り返しの後、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作を行うステップと、
    第1逆計算部において、キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返すステップと、
    第2逆計算部において、キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Q2r+4(r=1,…,n−2)に対するトフォリ演算操作を行い、その操作の後、キュービットQに対するNOT演算操作を行い、さらにキュービットQ,Q,Qに対するトフォリ演算操作を行い、その操作の後、キュービットQ2t,Q2t−1(t=1,…,n)に対するCNOT演算操作を行うステップと、
    を有することを特徴とする量子回路を用いた量子演算方法。
  6. 2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕に対し、(a+b)mod2=sn−1…s〔s∈{0,1}〕を算出する量子回路を用いた量子演算方法であって、
    それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>である2n個のキュービットQ,Q,…,Q2nを対象とし、値分配部において、キュービットQ2n,Qk+2(k=1,…,2n−3)に対するCNOT演算操作を行うステップと、
    MAJ計算部において、キュービットQ,Q,Q2nに対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2nに対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、キュービットQ2n,Q2n−1に対するCNOT演算操作を行うステップと、
    第1逆計算部において、キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返すステップと、
    第2逆計算部において、キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Q2r+4(r=1,…,n−2)に対するトフォリ演算操作を行い、その操作の後、キュービットQに対するNOT演算操作を行い、さらにキュービットQ,Q,Qに対するトフォリ演算操作を行い、その操作の後、キュービットQ2t,Q2t−1(t=1,…,n)に対するCNOT演算操作を行うステップと、
    を有することを特徴とする量子回路を用いた量子演算方法。
  7. 2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−b=sn−1…s〔s∈{0,1}〕とその符号s〔s∈{0,1}〕とを算出する量子回路を用いた量子演算方法であって、
    それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1を対象とし、第1否定演算部において、キュービットQ2h(h=1,…,n)に対するNOT演算操作を行うステップと、
    値分配部において、キュービットQ2n+1,Qk+2(k=1,…,2n−2)に対するCNOT演算操作を行うステップと、
    MAJ計算部において、キュービットQ,Q,Q2n+1に対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、その繰り返しの後、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作を行うステップと、
    第1逆計算部において、キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返すステップと、
    第2逆計算部において、キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Q2r+4(r=1,…,n−2)に対するトフォリ演算操作を行い、その操作の後、キュービットQに対するNOT演算操作を行い、さらにキュービットQ,Q,Qに対するトフォリ演算操作を行い、その操作の後、キュービットQ2t,Q2t−1(t=1,…,n)に対するCNOT演算操作を行うステップと、
    第2否定演算部において、キュービットQ(u=1,…,2n+1)に対するNOT演算操作を行うステップと、
    を有することを特徴とする量子回路を用いた量子演算方法。
  8. 2つの2進数a=an−1…a〔a∈{0,1},i∈{0,…,n−1}〕及びb=bn−1…b〔b∈{0,1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−bの符号yを算出する量子回路を用いた量子演算方法であって、
    それぞれの初期量子状態が|b>,|a>,…,|bn−1>,|an−1>,|z>である2n+1個のキュービットQ,Q,…,Q2n+1を対象とし、第1否定演算部において、キュービットQ2k(k=1,…,n)に対するNOT演算操作を行うステップと、
    値分配部において、キュービットQ2n+1,Qk+2(k=1,…,2n−2)に対するCNOT演算操作を行うステップと、
    MAJ計算部において、キュービットQ,Q,Q2n+1に対するトフォリ演算操作を行い、その操作の後、キュービットQ2p+1,Q2p+2,Q2n+1に対するMAJ演算操作とキュービットQ2p+1,Q2p+2,Qに対するトフォリ演算操作とをp=1からp=n−2までpを1ずつ増加させる順序で繰り返し、その繰り返しの後、キュービットQ2n−1,Q2n,Q2n+1に対するMAJ演算操作を行うステップと、
    第1逆計算部において、キュービットQ,Q2q+4に対するCNOT演算操作とキュービットQ,Q2q+3に対するCNOT演算操作とキュービットQ2q+1,Q2q+2,Qに対するトフォリ演算操作とをq=n−2からq=1までqを1ずつ減少させる順序で繰り返すステップと、
    第2逆計算部において、キュービットQに対するNOT演算操作を行い、その操作の後、キュービットQ,Q,Q2r+4に対するトフォリ演算操作とキュービットQ,Q,Q2r+3に対するトフォリ演算操作とをr=n−2からr=1までrを1ずつ減少させる順序で繰り返し、その繰り返しの後、キュービットQに対するNOT演算操作を行い、キュービットQ,Q,Qに対するトフォリ演算操作を行い、キュービットQ,Q,Qに対するトフォリ演算操作を行うステップと、
    第2否定演算部において、キュービットQ2u(u=1,…,n)に対するNOT演算操作とキュービットQ2n+1に対するNOT演算操作とを行うステップと、
    を有することを特徴とする量子回路を用いた量子演算方法。
JP2005160200A 2005-05-31 2005-05-31 量子演算装置及び量子回路を用いた量子演算方法 Active JP4700413B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005160200A JP4700413B2 (ja) 2005-05-31 2005-05-31 量子演算装置及び量子回路を用いた量子演算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005160200A JP4700413B2 (ja) 2005-05-31 2005-05-31 量子演算装置及び量子回路を用いた量子演算方法

Publications (2)

Publication Number Publication Date
JP2006338185A JP2006338185A (ja) 2006-12-14
JP4700413B2 true JP4700413B2 (ja) 2011-06-15

Family

ID=37558709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005160200A Active JP4700413B2 (ja) 2005-05-31 2005-05-31 量子演算装置及び量子回路を用いた量子演算方法

Country Status (1)

Country Link
JP (1) JP4700413B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019204678A1 (en) * 2018-04-20 2019-10-24 Google Llc Performing unitary iteration and indexed operations

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4829623B2 (ja) * 2006-01-27 2011-12-07 日本電信電話株式会社 量子演算方法及び量子演算装置
US8957699B2 (en) * 2012-10-26 2015-02-17 Northrop Grumman Systems Corporation Efficient Toffoli state generation from low-fidelity single qubit magic states
US10922457B2 (en) * 2017-10-19 2021-02-16 University Of Maryland Automated optimization of large-scale quantum circuits with continuous parameters
US10803215B2 (en) * 2018-12-18 2020-10-13 International Business Machines Corporation Incremental generation of quantum circuits
US20230316121A1 (en) * 2020-07-24 2023-10-05 Industry-University Cooperation Foundation Hanyang University Erica Campus Efficient quantum modular multiplier and quantum modular multiplication method
KR102214836B1 (ko) * 2020-07-24 2021-02-09 한양대학교 에리카산학협력단 효율적인 양자 모듈러 곱셈기 및 양자 모듈러 곱셈 방법
KR102204081B1 (ko) * 2020-07-24 2021-01-15 한양대학교 에리카산학협력단 효율적인 양자 모듈러 곱셈기 및 양자 모듈러 곱셈 방법
CN112214200B (zh) * 2020-09-30 2023-12-15 本源量子计算科技(合肥)股份有限公司 一种量子减法运算方法、装置、电子装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019204678A1 (en) * 2018-04-20 2019-10-24 Google Llc Performing unitary iteration and indexed operations
US11675763B2 (en) 2018-04-20 2023-06-13 Google Llc Performing unitary iteration and indexed operations

Also Published As

Publication number Publication date
JP2006338185A (ja) 2006-12-14

Similar Documents

Publication Publication Date Title
JP4700413B2 (ja) 量子演算装置及び量子回路を用いた量子演算方法
García-Álvarez et al. Digital quantum simulation of minimal AdS/CFT
Wang et al. Qudits and high-dimensional quantum computing
JP4847914B2 (ja) 量子加算演算方法及び量子加算演算装置
Khan et al. Quantum ternary parallel adder/subtractor with partially-look-ahead carry
JP5227942B2 (ja) 量子誤り推定装置、量子誤り推定方法、そのプログラム、量子誤り訂正装置、量子誤り訂正方法
Herrman et al. Continuous-time quantum walks on dynamic graphs
JP5204698B2 (ja) 量子演算方法、量子演算装置、量子回路
Hegade et al. Digitized adiabatic quantum factorization
JP5129646B2 (ja) 量子回路、量子演算装置及び量子演算方法
JP4332167B2 (ja) 近似量子フーリエ変換を行う量子回路、近似量子フーリエ変換演算方法および装置
André et al. Dark path holonomic qudit computation
JP6182123B2 (ja) 量子演算方法
Liu Comparisons of Conventional Computing and Quantum Computing Approaches
Fujiwara et al. General method for realizing the conditional phase-shift gate and a simulation of Grover’s algorithm in an ion-trap system
JP4366348B2 (ja) 量子計算方法及び量子計算装置
Chen et al. Quantum-hpc framework with multi-gpu-enabled hybrid quantum-classical workflow: Applications in quantum simulations
Delgado Generation of Control by SU (2) Reduction for the Anisotropic Ising Model
JP5351862B2 (ja) 量子演算方法、量子演算装置
JP4829623B2 (ja) 量子演算方法及び量子演算装置
Agrell et al. Gradient-Based Optimization of Lattice Quantizers
Dejen et al. A Review of Quantum Computing
Tutul et al. Shallow Depth Factoring Based on Quantum Feasibility Labeling and Variational Quantum Search
Tame et al. Scalable method for demonstrating the Deutsch-Jozsa and Bernstein-Vazirani algorithms using cluster states
Kundu et al. QCA based Majority Voter Design using IBMQ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110304

R150 Certificate of patent or registration of utility model

Ref document number: 4700413

Country of ref document: JP

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