Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4366348B2 - 量子計算方法及び量子計算装置 - Google Patents
[go: Go Back, main page]

JP4366348B2 - 量子計算方法及び量子計算装置 - Google Patents

量子計算方法及び量子計算装置 Download PDF

Info

Publication number
JP4366348B2
JP4366348B2 JP2005278052A JP2005278052A JP4366348B2 JP 4366348 B2 JP4366348 B2 JP 4366348B2 JP 2005278052 A JP2005278052 A JP 2005278052A JP 2005278052 A JP2005278052 A JP 2005278052A JP 4366348 B2 JP4366348 B2 JP 4366348B2
Authority
JP
Japan
Prior art keywords
quantum
unit
qubit
calculation
qubits
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 - Lifetime
Application number
JP2005278052A
Other languages
English (en)
Other versions
JP2007087307A (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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005278052A priority Critical patent/JP4366348B2/ja
Publication of JP2007087307A publication Critical patent/JP2007087307A/ja
Application granted granted Critical
Publication of JP4366348B2 publication Critical patent/JP4366348B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers

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)

Description

本発明は、量子コンピュータ分野に関し、特に、量子コンピュータを用いて位数発見に有用な数を得る技術に関する。
j桁の2進数NとNより小さい2進数Aとを入力とし、2j+3個の量子ビットを使って、jの4乗に比例した個数の基本演算をjの3乗に比例した計算ステップ数で実行することにより、Aのmod Nに関する位数(すなわち、A=1 mod Nとなる最小の2進数R)の発見に有用な2j桁の2進数Cを高い確率で出力する量子回路の構成方法が知られている(例えば、非特許文献1参照)。ここで、「位数発見に有用な2j桁の2進数C」とは、非特許文献2の式(5.13)のcを意味する。このCをjに関する多項式個の基本演算を使った古典回路に入力することにより、Aのmod Nに関する位数R(非特許文献2ではr)を高い確率で求めることができる。
以下、非特許文献1に記載された従来の量子回路を概説する。なお、量子回路は、量子ビットに対する演算とCNOT演算とを基本演算とするが、図が複雑になるのを避けるため、以下では、これらの演算以外の演算も使って量子回路を構成する。すなわち、この量子回路に使われる全ての演算は、1量子ビットに対する演算とCNOT演算に分解できる(例えば、非特許文献3参照)。なお、各図はj=5の場合であるが、これらの量子回路を一般のjの場合に拡張することは容易である。また、入力に表れる各変数は、0又は1を表す。さらに、重ね合わせ状態に対する量子回路の出力は、各量子状態の線形結合により表現し、Nより大きい全ての数はmod Nで解釈される。また、|・〉は・を示す量子状態を意味する。
図31は、この位数発見に有用な値を発見する量子回路の従来構成を示した図である。なお、図31の構成では、量子状態がそれぞれ|0〉と|1〉である2個の量子ビットと、量子状態|0〉の2j+1個の量子ビットとに対して量子操作を行い、観測によって位数発見に有用な2j桁の2進数c2j−1…cが得られる。なお、H,X,Rは、それぞれ図32(a)(b)及び図33のように定義された演算子である。
図34は、図31におけるCU(A)=CU(A・2)の演算の詳細を示した量子回路である。図34に示すようにCU(A)は、d∈{0,1}と、U=u・・・uと、j+2個の0とをそれぞれ示す量子状態の入力に対し、d=1であれば、dとA・U mod Nの各桁(dとA・U mod N)・・・(dとA・U mod N)と、j+2個の0とをそれぞれ示す量子状態を生成し、d=0であれば、入力の量子状態をそのまま出力する。ここで、図34のCSWAPは、図35のように示すような演算子である。また、図35に用いられる各演算子の構成を図36(a)(b)及び図37に示す。なお、図31のCU(A・2)・・・CU(A・2)は、図34のAをA・2・・・A・2に置換したものになる。
図38は、図34におけるCMULT(A)MOD(N)の演算の詳細を示した量子回路である。図38に示すように、CMULT(A)MOD(N)は、dと、Uと、B=bj−1…bの最上位ビットに0を加えた値と、0とをそれぞれ示す量子状態を入力とし、d=1であれば、dとUとA・U+M mod Nの各桁と0と0とをそれぞれ示す量子状態を生成し、d=0であれば、入力の量子状態をそのまま出力する。なお、CMULT(A−1)MOD(N)は、図38のAをA−1に置換したものになる。
図39は、図38におけるQFT(量子フーリエ変換)の演算の詳細を示した量子回路である。なお、図39のK∈{2,…,6}は図40のような演算子である。また、図38のQFT−1は、QFTの逆演算を示す。
図41は、図38におけるφADD(A)MOD(N)=φADD(2・A)MOD(N)の演算の詳細を示した量子回路である。φADD(A)MOD(N)は、d,dと、最上位ビットに0を加えたBにQFTを適用した値φ(B),…,φ(B)と、0とをそれぞれ示す量子状態を入力とし、d=d=1であれば、d,dと、A+B mod NにQFTを適用した値φ(A+B mod N),…,φ(A+B mod N)と、0とをそれぞれ示す量子状態を生成し、d=d=1でなければ、入力の量子状態をそのまま出力する。なお、図41におけるφADD(A)は、図42に示すような演算子であり、最上位ビットに0を加えたBにQFTを適用した値φ(B),…,φ(B)を示す量子状態を入力とし、A+BにQFTを適用した値値φ(A+B),…,φ(A+B)を示す量子状態を生成する。なお、図42におけるσ(k∈{1,…,5})は、図43に示すような演算子である。また、φADD(A)−1は、φADD(A)の逆演算である。また、φADD(N)やφADD(N)−1は、φADD(A)やφADD(A)−1のAをNに置換した演算子である。なお、その他のφADD(A・2)MOD(N)・・・φADD(A・2)MOD(N)については、図41のAをA・2・・・A・2に置換したものになる。
S. BEAUREGARD, CIRCUIT FOR SHOR’S ALGORITHM USING 2N + 3 QUBITS, QUANTUM INFORMATION AND COMPUTATION, Vol. 3 No. 2, pp. 175‐185, 2003. PETER W. SHOR, POLYNOMIAL-TIME ALGORITHMS FOR PRIME FACTORIZATION AND DISCRETE LOGARITHMS ON A QUANTUM COMPUTER, SIAM J. COMPUT, Vol. 26, No. 5, pp. 1484‐1509, October 1997. M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information, Cambridge, 2000.
上述のように、非特許文献1の量子回路では、j桁の2進数Nと、Nより小さいj桁の2進数進数Aとから、Aのmod Nに関する位数の発見に有用な2j桁の2進数Cを高い確率で出力するためには、jの4乗に比例した個数の基本演算と、jの3乗に比例した計算ステップ数と、2j+3個の量子ビットとを必要とする。しかし、多数の量子ビットを実現し、協調的に操作するのは物理的に困難なため、量子ビット数はできるだけ少ないほうが良い。
本発明はこのような点に鑑みてなされたものであり、従来よりも少ない量子ビットを使って、位数発見に有用な2j桁の2進数Cを高い確率で求めることを可能にする技術を提供することを目的とする。
本発明では上記課題を解決するために、2進数j桁のN=nj−1…nとA=aj−1…aとをメモリに格納しておき(nh−1は2進数表記されたNのh桁目の値、ah−1は2進数表記されたAのh桁目の値)、減算部が、メモリから読み込んだNとAとからN−Aを算出する。また、COMPARISON演算部が、減算部で算出されたN−Aを用い、Nよりも小さい2進数j桁のB=bj−1…bの各桁をそれぞれ示す量子状態の量子ビットQBj−1,…,QBと、任意の量子状態の量子ビットQUj−1,…,QU,QZと、に対する第1量子操作を行い、N−A>Bの場合にのみ量子ビットQZの量子状態を反転させる。そして、COMPARISON演算部によって処理された量子ビットQZは、そのまま或いは反転されて、他の量子演算の制御ビットとして用いられる。
ここで、このCOMPARISON演算部の処理内容は、非特許文献1では、図41におけるφADD(A),φADD(N)−1及びQFT−1の処理に包含されていたものである。しかし、従来の図41の構成では、φADD(A),φADD(N)−1及びQFT−1の処理が施された量子ビットの1つ(図41の下から2個目の量子ビット)の量子状態を、CNOT演算によって他の量子ビット(図41の最下部の量子ビット)に移し、この他の量子ビットを他の量子演算〔φADD(N)〕の制御ビットとしなければならなかった。これに対し、本発明では、COMPARISON演算部によって処理された量子ビットQZそのものを他の量子演算の制御ビットとして用いることができる。そのため、従来、量子状態を移すために必要であった量子ビットを一つ削減できる。また、本発明では、COMPARISON演算部が、従来の図41におけるφADD(A),φADD(N)−1及びQFT−1が全く操作していなかった量子ビットQUj−1,…,QU(値u,…,uの量子状態を示す量子ビット)の操作も行い、量子ビットの有効利用を図っている。これも本発明の構成が、従来よりも量子ビット数を削減できる理由である。
また、本発明において好ましくは、COMPARISON演算部が、任意の量子状態の量子ビットQD,QDを制御ビットとして、上述の第1量子操作を行い、QFT演算部が、量子ビットQBj−1,…,QBに対して量子フーリエ変換操作を施す。そして、量子ビットQD,QD,QZを制御ビットとし、φADD演算部が、1を示す量子状態の量子ビットQB(k∈{j−1,…,0})のみに対し、
Figure 0004366348
(ただし、量子ビットQBの量子状態を|QB〉とし、eをネピア数とし、iを虚数単位とする)の演算を施し、第1NOT演算部が、量子ビットQZにNOT演算を施す。さらに、量子ビットQD,QD,QZを制御ビットとし、φADD−1演算部が、1を示す量子状態の量子ビットQBのみに対し、
Figure 0004366348
(ただし、N−A=(n−a)j−1…(n−a)とする)の演算を施し、第1NOT演算部が、量子ビットQZにNOT演算を施す。そして、QFT−1演算部が、量子ビットQBj−1,…,QBに対して量子フーリエ変換の逆演算操作を施し、COMPARISON演算部が、量子ビットQD,QDを制御ビットとして、量子ビットQBj−1,…,QB,QUj−1,…,QU,QZに対し、A>Bの場合にのみ量子ビットQZの量子状態を反転させる量子操作を行い、第1Toffoli演算部が、量子ビットQD,QDを制御ビットとし、量子ビットQZを目標ビットとしたToffoli演算を施す。
ここで、COMPARISON演算部の第1量子操作が施された量子ビットQZは、φADD演算部やφADD−1演算部の量子演算の制御ビットとして用いられている。これにより、従来構成に比べ量子ビット数を1つ削減できる。
また、本発明において好ましくは、COMPARISON演算部が行う第1量子操作は、HIGHBIT演算部が、量子ビットQBj−1,…,QBと、量子ビットQUj−1,…,QUと、量子ビットQZと対して第2量子操作を行い、量子ビットQZを、z(+)β〔βはA−N+Bの最上位桁、(+)は排他的論理和〕を示す量子状態とし、他の量子ビットQBj−1,…,QB、QUj−1,…,QUの量子状態を当該第2量子操作前の量子状態とし、第2NOT演算部が、量子ビットQZにNOT演算を施し、古典制御NOT演算部が、メモリから読み込まれたA−Nの桁(a−n)(h∈{j−1,…,0})が1となるhに対応する量子ビットQBのみにNOT演算を施し、第3NOT演算部が、各量子ビットQBj−1,…,QBにNOT演算を施し、第2Toffoli演算部が、各量子ビットQBj−1,…,QBを制御ビットとし、量子ビットQZを目標ビットとしたToffoli演算を施し、第3NOT演算部が、各量子ビットQBj−1,…,QBにNOT演算を施し、古典制御NOT演算部が、メモリから読み込まれたA−Nの桁(a−n)が1となるhに対応する量子ビットQBのみにNOT演算を施す操作である。
このように、HIGHBIT演算部が、量子ビットQUj−1,…,QUに対しても量子操作を行う構成をとることによって量子ビットの有効利用を図り、必要となる量子ビット数の低減を図っている。
以上のように本発明では、従来よりも少ない量子ビットを使って、位数発見に有用な2j桁の2進数Cを高い確率で求めることが可能となる。
以下、本発明の実施の形態を図面を参照して説明する。
〔第1の実施の形態〕
<機能構成>
図1は、本形態における量子計算装置1の構成を例示したブロック図である。
図1に例示するように、本形態の量子計算装置1は、量子ビット10、入力部20、古典メモリ30、減算部40、乗算部50、量子計算制御部60、量子演算部70及び観測部80を有している。また、量子演算部70は、初期量子状態生成部71、CV部72、H(アダマール)演算部、R演算部74及びXCK演算部75を有している。
図2(a)は、CV演算部72の詳細構成を例示した図である。この図に示すように、CV演算部72は、M MOD演算部101及びCSWAP演算部102を有している。図2(b)は、M MOD演算部101の詳細構成を例示した図である。この図に示すようにM MOD演算部101は、ADD MOD演算部111及びSWAP演算部112を有している。図2(c)は、ADD MOD演算部111の詳細構成を例示した図である。この図に示すようにADD MOD演算部111は、CONPARISON演算部121、QFT演算部122、QFT−1演算部123、φADD演算部124、φADD−1演算部125、NOT演算部126及びToffoli演算部127を有している。図3(a)は、CONPARISON演算部121の詳細構成を例示した図である。この図に示すようにCONPARISON演算部121は、HIGHBIT演算部131、NOT演算部132、古典制御NOT演算部133及びToffoli演算部134を有している。図3(b)は、HIGHBIT演算部131の詳細構成を例示した図である。この図に示すようにHIGHBIT演算部131は、制御NOT演算部141、E演算部142、F演算部143、Toffoli演算部144、NOT演算部145及びF−1演算部143を有している。なお、特に断りが無い限り、量子計算装置1は、量子計算制御部60の制御のもと各処理を実行する。また、各要素の機能構成の詳細やハードウェア構成の詳細については後述する。
<処理>
[処理の全体]
量子計算装置1は、入力されたj桁の2進数N=nj−1…n(nj−1,…,n∈{0,1})と、Nより小さいj桁の2進数A=aj−1…a(aj−1,…,a∈{0,1})に対し、2j+2個の量子ビットを用いたjの3乗に比例した計算ステップ数のjの4乗に比例した個数の基本演算を施し、位数発見に有用な2j桁の2進数C=c2j−1…c(cj−1,…,c∈{0,1})を高い確率で出力する。以下、この処理の詳細を説明していく。
図4は、本形態の量子計算装置1の処理の全体を説明するためのフローチャートである。また、図11は、この処理の全体を例示した量子回路である。なお、量子回路は、1量子ビットに対する演算とCNOTを基本演算とするが、図が複雑になるのを避けるため、図11では、これらの演算以外の演算も使って表現している。また、この量子回路に使われる全ての演算は,1量子ビットに対する演算とCNOTに分解できる(前述の非特許文献3参照)。また、図11は、j=5の場合の例である。また、Nより大きい全ての数はmod Nで解釈される。
図11に例示するように、本形態の量子回路は、0と1と2j個の0とをそれぞれ示す量子ビットを入力とし、位数発見に有用な2j桁の2進数C=c2j−1…cを出力するものである。この構成は,従来構成を示した図31において、上から2j+3番目の量子状態を保持する量子ビットを削除し、CU(a)をCV(a)に置換したものに相当する。以下、この量子回路を構成する処理の全体を説明する。
まず、2進数j桁のN=nj−1…nと、Nよりも小さい2進数j桁のA=aj−1…aとが入力部20から入力され、古典メモリ30(図1)に格納される(ステップS1)。なお、jは例えば予め装置に設定された値とする。次に、量子計算制御部60の制御のもと初期量子状態生成部71が、量子ビットQD,QD,QU〜QUj−1,QB〜QBj−1,QZの初期量子状態を生成する(ステップS2)。この例では、量子ビットQDの量子状態を、1を示すものとし、他の量子ビットの量子状態を、0を示すものとする。次に、H演算部73が、量子ビットQDに対してH(アダマール)演算(図32(a))を適用する(ステップS3)。なお、量子演算を適用するとは、演算に相当する量子操作を量子ビットに施すことを意味する。次に、量子計算制御部60が変数gaに0を代入して古典メモリ30に格納し、さらに乗算部50が古典メモリ30から読み出したA及びgaを用いてA・22j−ga−1を算出し、これを量子計算制御部60に送る(ステップS4)。次に、量子計算制御部60は、送られたA・22j−ga−1を用いてCV演算部72を制御し、CV演算部72は、量子ビットQDを制御ビットとして、量子ビットQD,QU〜QUj−1,QB〜QBj−1,QZに対し、CV(A・22j−ga−1)演算を適用する(ステップS5)。なお、この演算の詳細は後述する。次に、H演算部73が、量子ビットQDに対してH演算(図32(a))を適用する(ステップS6)。次に、量子計算制御部60が、古典メモリ30から変数gaを読み出し、観測部80に量子ビットQDの量子状態を観測させて、その観測結果をcgaとして古典メモリ30に格納する(ステップS7)。この観測により量子ビットQDの量子状態はcgaに縮約する(以下も同様)。
次に、量子計算制御部60が、古典メモリ30からcgaを読み出し、Xck演算部75に、k=gaとした図32(b)の量子操作を量子ビットQDに対して適用させ、さらに、H演算部73に、量子ビットQDに対するH演算(図32(a))を適用させる(ステップS8)。次に、量子計算制御部60は、古典メモリ30に格納された変数gaを読み出し、ga+1を新たなgaとして更新し、これを古典メモリ30に格納する(ステップS9)。次に、乗算部50が古典メモリ30から読み出したA及びgaを用いてA・22j−ga−1を算出し、これを量子計算制御部60に送る。量子計算制御部60は、送られたA・22j−ga−1を用いてCV演算部72を制御し、CV演算部72は、量子ビットQDを制御ビットとして、量子ビットQD,QU〜QUj−1,QB〜QBj−1,QZに対し、CV(A・22j−ga−1)演算を適用する(ステップS10)。なお、この演算の詳細は後述する。次に、R演算部74が、量子ビットQDに対してk=gaとしたR演算(図33)を適用し(ステップS11)、観測部80が量子ビットQDの量子状態を観測し、その観測結果をcgaとして古典メモリ30に格納する(ステップS12)。
次に、量子計算制御部60において、古典メモリ30に格納されたgaが2j−1であるか否かを判断する。ここで、ga=2j−1でなければ、量子計算制御部60は処理をステップS8に戻す。一方、ga=2j−1であれば、量子計算制御部60は、古典メモリ30に蓄積されたC=c2j−1…cを出力する。
[CV(A)演算の詳細]
次に、ステップS5,S11で触れたCV演算の詳細を説明する。なお、以下では、AをパラメータとしたCV(A)演算を例にとって説明するが、このAをA・22j−ga−1に置換すればCV(A・22j−ga−1)演算に一般化できる。
図5は、このCV(A)演算の詳細を説明するためのフローチャートである。また、図12は、j=5の場合におけるCV(A)演算を例示した量子回路である。
図12に例示するように、CV(A)演算を示す量子回路は、dとU=uj−1…u(uj−1,…,u∈{0,1})とj+1個の0とをそれぞれ示す量子状態の量子ビットQD,QD,QU〜QUj−1〔QUh’(h’∈{0,…,j−1})がh’に対応,QB〜QBj−1,QZを入力とし、d=1であれば、量子ビットQD,QD,QU〜QUj−1,QB〜QBj−1,QZを、dとA・U mod Nの各桁(A・U mod N)…(A・U mod N)j−1とj+1個の0とをそれぞれ示す量子状態とし、d=0であれば、入力の量子状態を維持するものである。この構成は、図34の従来構成において、上から2j+3番目の量子状態を保持する量子ビットを削除し、CMULT(A)MOD(N)をM(A)MOD(N)に置換したものに相当する。以下、このCV(A)演算の詳細を説明する。
まず、古典メモリ30からAを読み込んだ量子計算制御部60の制御のもと、M MOD演算部101(図2(a))が、量子ビットQDを制御ビットとして、量子ビットQD,QU〜QUj−1,QB〜QBj−1,QZに対し、M(A)MOD(N)演算を適用する(ステップS21)。なお、M(A)MOD(N)演算の詳細については後述する。次に、CSWAP演算部102が、量子ビットQD,QD,QU〜QUj−1,QB〜QBj−1に対しCSWAP演算(図35)を適用する(ステップS22)。次に、乗算部50(図1)が古典メモリ30に格納されたAを用いてA−1を算出し(ステップS23)、量子計算制御部60に送る。量子計算制御部60は、このA−1を用いてM MOD演算部101を制御し、M MOD演算部101は、量子ビットQDを制御ビットとして、量子ビットQD,QU〜QUj−1,QB〜QBj−1,QZに対し、M(A−1)MOD(N)演算を適用する(ステップS24)。
[M(A)MOD(N)演算の詳細]
次に、ステップS21,S24で触れたM(A)MOD(N)演算, M(A−1)MOD(N)演算の詳細を説明する。なお、以下では、AをパラメータとしたM(A)MOD(N)演算を例にとって説明するが、このAをA−1に置換すればM(A−1)MOD(N)演算となる。
図6は、このM(A)MOD(N)演算の詳細を説明するためのフローチャートである。また、図13は、j=5の場合におけるM(A)MOD(N)演算を例示した量子回路である。
図13に例示するように、M(A)MOD(N)演算を示す量子回路は、dとUとB=bj−1…b(bj−1,…,b∈{0,1})と0とをそれぞれ示す量子状態の量子ビットQD,QD,QU〜QUj−1,QB〜QBj−1〔QBh(h∈{0,…,j−1})がbhに対応,QZを入力とし、d=1であれば、dとUとA・X+B mod Nと0とをそれぞれ示す量子状態の量子ビットQD,QD,QU〜QUj−1,QB〜QBj−1を出力し、d=0であれば、入力の量子状態を維持するものである。ただし、A・X+B mod N=(A・X+B mod N)j−1…(A・X+B mod N)であり、QBh(h∈{0,…,j−1})が(A・X+B mod N)hに対応する。以下、このM(A)MOD(N)演算の詳細を説明する。
まず、古典メモリ30からAを読み込んだ量子計算制御部60の制御のもと、ADD MOD演算部111(図2(b))が、量子ビットQD,QDを制御ビットとして、量子ビットQU〜QUj−1,QB〜QBj−1,QZに対し、ADD(2・A)MOD(N)演算を適用する(ステップS31)。なお、ADD(2・A)MOD(N)演算の詳細については後述する。次に、量子計算制御部60が変数gbに1代入し、この変数gbを古典メモリ30に格納する(ステップS32)。次に、古典メモリ30から変数gbを読み込んだ量子計算制御部60の制御のもと、SWAP演算部112が、量子ビットQDと量子ビットQUgbに対し、SWAP演算を適用する(ステップS33)。なお、SWAP演算とは、図14のように3つの制御NOT演算を組み合わせた演算を意味する。ここでx,y∈{0,1}である。このSWAP演算により、入力された2つの量子ビットの量子状態が入れ替わる。
次に乗算部50が古典メモリ30からAと変数gbとを読み込み、2gb・Aを計算して量子計算制御部60に送る(ステップS34)。量子計算制御部60は、2gb・Aを用いてADD MOD演算部111を制御し、ADD MOD演算部111は、量子ビットQD,QDを制御ビットとして、量子ビットQU〜QUj−1,QB〜QBj−1,QZに対し、ADD(2gb・A)MOD(N)演算を適用する(ステップS35)。次に、古典メモリ30から変数gbを読み込んだ量子計算制御部60の制御のもと、SWAP演算部112が、量子ビットQDと量子ビットQUgbに対し、SWAP演算を適用する(ステップS36)。その後、量子計算制御部60が、古典メモリ30に格納された変数gbがj−1であるか否かを判断する(ステップS37)。ここで、gb=j−1でなければ、量子計算制御部60が、gb+1を新たな変数gbとして古典メモリ30に格納し、処理をステップS33に戻し、gb=j−1であれば、M(A)MOD(N)演算を終了する。
[ADD(A)MOD(N)演算の詳細]
次に、ステップS31,S35で触れたADD(A)MOD(N)演算, ADD(2gb・A)MOD(N)演算の詳細を説明する。なお、以下では、AをパラメータとしたADD(A)MOD(N)演算を例にとって説明するが、このAを2gb・Aに置換すればADD(2gb・A)MOD(N)演算となる。
図7は、このADD(A)MOD(N)演算の詳細を説明するためのフローチャートである。また、図15は、j=5の場合におけるADD(A)MOD(N)演算を例示した量子回路である。
図15に例示するように、ADD(A)MOD(N)演算を示す量子回路は、d,d∈{0,1}とu,…,uj−1∈{0,1}とBと0とをそれぞれ示す量子状態の量子ビットQD,QD,QU〜QUj−1,QB〜QBj−1,QZを入力とし、d=d=1であれば、d,dとu,…,uj−1とA+B mod Nと0とをそれぞれ示す量子状態の量子ビットQD,QD,QU〜QUj−1,QB〜QBj−1,QZを出力し、d=d=1でなければ、入力の量子状態を維持する。ただし、A+B mod N=(A+B mod N)j−1…(A+B mod N)であり、QBh(h∈{0,…,j−1})が(A+B mod N)hに対応する。以下、このADD(A)MOD(N)演算の詳細を説明する。
まず、減算部40が古典メモリ30から読み込んだAとNとからN−Aを算出し、これを量子計算制御部60に送る(ステップS41)。このN−Aを用いた量子計算制御部60の制御のもと、COMPARISON演算部121(図2(c))が、量子ビットQD,QDを制御ビットとして、量子ビットQD,QDがそれぞれ示す量子状態がともに1である場合にのみ、量子ビットQU〜QUj−1,QB〜QBj−1,QZに対し、COMPARISON(N−A)演算を適用する(ステップS42)。なお、詳細は後述するが、このCOMPARISON(N−A)演算は、N−A>Bの場合にのみ量子ビットQZの量子状態を反転(0の場合には1にし、1の場合には0に)させる演算である。次に、QFT演算部122が、量子ビットQB〜QBj−1に対し、QFT(量子フーリエ変換)演算(図39)を適用する(ステップS43)。
次に、古典メモリ30からAを読み込んだ量子計算制御部60の制御のもと、φADD演算部124が、量子ビットQD,QD,QZを制御ビットとして、量子ビットQD,QD,QZがそれぞれ示す量子状態が全て1である場合にのみ、量子ビットQB〜QBj−1に対するφADD(A)演算を適用する(ステップS44)。なお、φADD(A)演算は、図42及び43に示した通りである。すなわち、ステップS44では、量子ビットQD,QD,QZを制御ビットとし、量子ビットQD,QD,QZがそれぞれ示す量子状態が全て1である場合にのみ、φADD演算部124が、1を示す量子状態の量子ビットQB(k∈{j−1,…,0})のみに対し、
Figure 0004366348
(ただし、量子ビットQBの量子状態を|QB〉とし、eをネピア数とし、iを虚数単位とする)の演算を施す。
次に、NOT演算部126が、量子ビットQZに対してNOT演算を適用し(ステップS45)、φADD−1演算部125が、量子ビットQD,QD,QZを制御ビットとして、量子ビットQD,QD,QZがそれぞれ示す量子状態が全て1である場合にのみ、量子ビットQB〜QBj−1に対し、φADD(N−A)−1演算を適用する(ステップS46)。なお、φADD(N−A)−1演算とはφADD(N−A)演算の逆演算を意味する。すなわち、ステップS46では、量子ビットQD,QD,QZを制御ビットとし、量子ビットQD,QD,QZがそれぞれ示す量子状態が全て1である場合にのみ、φADD−1演算部125が、1を示す量子状態の量子ビットQBのみに対し、
Figure 0004366348
(ただし、N−A=(n−a)j−1…(n−a)とする)の演算を施す。
次に、NOT演算部126が、量子ビットQZに対してNOT演算を適用し(ステップS47)、QFT−1演算部123が、量子ビットQB〜QBj−1に対し、QFT演算の逆演算であるQFT−1演算を適用する(ステップS48)。次に、古典メモリ30からAを読み込んだ量子計算制御部60の制御のもと、COMPARISON演算部121が、量子ビットQD,QDを制御ビットとして、量子ビットQD,QDがそれぞれ示す量子状態がともに1である場合にのみ、量子ビットQU〜QUj−1,QB〜QBj−1,QZに対し、COMPARISON(A)演算を適用する(ステップS49)。なお、COMPARISON(A)の詳細については後述する。そして、Toffoli演算部127が、量子ビットQD,QDを制御ビットとし、量子ビットQZを目標ビットとしたToffoli演算を適用する(ステップS50)。
[COMPARISON(A)演算の詳細]
次に、ステップS42,S49で触れたCOMPARISON(N−A)演算, COMPARISON(A)演算の詳細を説明する。なお、以下では、AをパラメータとしたCOMPARISON(A)演算を例にとって説明するが、このAをN−Aに置換すればCOMPARISON(N−A)演算となる。
図8は、このCOMPARISON(A)演算の詳細を説明するためのフローチャートである。また、図16は、j=5の場合におけるCOMPARISON(A)演算を例示した量子回路である。
図16に例示するように、COMPARISON(A)演算を示す量子回路は、B=bj−1…bとu,…,uj−1とzとをそれぞれ示す量子ビットQB〜QBj−1,QU〜QUj−1,QZに対し、B=bj−1…bとu,…,uj−1とをそれぞれ示す量子状態の量子ビットQB〜QBj−1,QU〜QUj−1と、z(+)αを示す量子状態の量子ビットQZとを出力する。なお、(+)は排他的論理和(和のmod 2を採った値)を示す。また、αは、A>Bの場合にα=1となり、A≦Bの場合にα=0となる値である。すなわち、COMPARISON(A)演算は、A>Bの場合にのみ、量子ビットQZの量子状態を反転させる演算である。以下、このCOMPARISON(A)演算の詳細を説明する。
まず、古典メモリ30からAを読み込んだ量子計算制御部60の制御のもと、HIBIT演算部131(図3(a))が、量子ビットQU〜QUj−1,QB〜QBj−1,QZに対し、HIGHBIT(A)演算を適用する(ステップS51)。なお、HIGHBIT(A)演算の詳細については後述する。次に、NOT演算部132が、量子ビットQZに対し、NOT演算を適用する(ステップS52)。次に、古典メモリ30からAを読み込んだ量子計算制御部60の制御のもと、古典制御NOT演算部133が、Aの桁a(h∈{j−1,…,0})が1となるhに対応する量子ビットQBのみにNOT演算を適用する(ステップS53)。なお、各図においてNOT演算等の演算子を四角で囲み、その上部に符号を付したものは、この符号の値が1である場合にのみ、その四角で囲まれた演算を実行する演算子を意味する。
その後、NOT演算部132が、量子ビットQB〜QBj−1に対し、NOT演算を適用し(ステップS54)、Toffoli演算部134が、量子ビットQB〜QBj−1を制御ビットとし、量子ビットQZを目標ビットとしたToffoli演算を適用する(ステップS55)。図17にj=5の場合のToffoli演算を示す。さらにその後、NOT演算部132が、量子ビットQB〜QBj−1に対し、NOT演算を適用する(ステップS56)。そして、古典制御NOT演算部133が、Aの桁a(h∈{j−1,…,0})が1となるhに対応する量子ビットQBのみにNOT演算を適用する(ステップS57)。
[HIGHBIT(A)演算の詳細]
次に、ステップS51で触れたHIGHBIT(A)演算の詳細を説明する。
図9及び10は、このHIGHBIT(A)演算の詳細を説明するためのフローチャートである。また、図18は、j=5の場合におけるHIGHBIT(A)演算を例示した量子回路である。
図18に例示するように、HIGHBIT(A)演算を示す量子回路は、B=bj−1…bとu,…,uj−1とzとをそれぞれ示す量子ビットQB〜QBj−1,QU〜QUj−1,QZに対し、B=bj−1…bとu,…,uj−1とをそれぞれ示す量子状態の量子ビットQB〜QBj−1,QU〜QUj−1と、z(+)βを示す量子状態の量子ビットQZとを出力する。なお、βはA+Bの最上位ビットの値を意味する。以下、HIGHBIT(A)演算の詳細を説明する。
まず、制御NOT演算部141(図3(b))が、量子ビットQUj−1を制御ビットとし、量子ビットQZを目標ビットとしたCNOT演算を適用する(ステップS61)。次に、量子計算制御部60が変数gcにj−1を代入し、これを古典メモリ30に格納する(ステップS62)。
次に、古典メモリ30からAと変数gcとを読み込んだ量子計算制御部60の制御のもと、E演算部142が、量子ビットQUgc,QUgc−1,QBgcに対し、E(agc)演算を適用する(ステップS63)。
図19は、このE(agc)演算を示した量子回路である。図19に示すように、E(agc)演算は、p,r,s∈{0,1}をそれぞれ示す量子状態の3つの量子ビットQUgc−1,QBgc,QUgcを入力とする。そして、E演算部142は、まず、agc=1の場合にのみ量子ビットQBgcにNOT演算を適用する。次に、E演算部142は、量子ビットQUgc−1,QBgcを制御ビットとし、量子ビットQUgcを目標ビットとしたToffoli演算を適用し、さらに、agc=1の場合にのみ量子ビットQBgcにNOT演算を適用する。これらの操作により、3つの量子ビットQUgc−1,QBgc,QUgcの量子状態が、それぞれp,r,s(+)(agc(+)r)・pを示すものとされる。以上がE(agc)演算である。
次に、量子計算制御部60が、古典メモリ30に格納された変数gcが2であるか否かを判断する(ステップS64)。ここで、gc=2でなければ、量子計算制御部60は、gc−1を新たなgcとして古典メモリ30に格納した後(ステップS65)、処理をステップS63に戻す。一方、gc=2であれば、量子計算制御部60は、古典メモリからAの要素aを読み込み、a=1の場合にのみ、制御NOT演算部141に、量子ビットQBを制御ビットとし、量子ビットQUを目標ビットとした制御NOT演算を適用させ、NOT演算部145に、量子ビットQBへのNOT演算を適用させる(ステップS66)。次に、量子計算制御部60は、古典メモリからAの要素aを読み込み、a=1の場合にのみ、Toffoli演算部144に、量子ビットQB,QBを制御ビットとし、量子ビットQUを目標ビットとしたToffoli演算を適用させる(ステップS67)。
次に、古典メモリ30から変数gcとAの要素agcとを読み込んだ量子計算制御部60の制御のもと、F演算部143が、量子ビットQUgc,QUgc−1,QBgcに対し、F(agc)演算を適用する(ステップS68)。
図20は、このF(agc)演算を示した量子回路である。図20に示すように、F(agc)演算は、p,r,s∈{0,1}をそれぞれ示す量子状態の3つの量子ビットQUgc−1,QBgc,QUgcを入力とする。そして、F演算部143は、まず、agc=1の場合にのみ量子ビットQBgcを制御ビットとし、量子ビットQUgcを目標ビットとした制御NOT演算を適用し、さらに量子ビットQUgcにNOT演算を適用する。次に、F演算部143は、量子ビットQUgc−1,QBgcを制御ビットとし、量子ビットQUgcを目標ビットとしたToffoli演算を適用する。これらの操作により、3つの量子ビットQUgc−1,QBgc,QUgcの量子状態が、それぞれp,agc(+)r,s(+)p・agc(+)agc・r(+)r・pを示すものとなる。以上がF(agc)演算である。
次に、量子計算制御部60が、古典メモリ30に格納された変数gcがj−1であるか否かを判断する(ステップS69)。ここで、gc=j−1でなければ、量子計算制御部60は、gc+1を新たなgcとして古典メモリ30に格納した後(ステップS70)、処理をステップS68に戻す。一方、gc=j−1であれば、制御NOT演算部141が、量子ビットQUj−1を制御ビットとし、量子ビットQZを目標ビットとしたCNOT演算を適用する(ステップS71)。次に、古典メモリ30から変数gcとAの要素agcとを読み込んだ量子計算制御部60の制御のもと、F演算部143が、量子ビットQUgc,QUgc−1,QBgcに対し、F(agc)演算の逆演算であるF(agc−1演算を適用する(ステップS72)。
次に、量子計算制御部60が、古典メモリ30に格納された変数gcが2であるか否かを判断する(ステップS73)。ここで、gc=2でなければ、量子計算制御部60は、gc−1を新たなgcとして古典メモリ30に格納した後(ステップS74)、処理をステップS72に戻す。一方、gc=2であれば、量子計算制御部60は、古典メモリからAの要素aを読み込み、a=1の場合にのみ、Toffoli演算部144に、量子ビットQB,QBを制御ビットとし、量子ビットQUを目標ビットとしたToffoli演算を適用させる(ステップS75)。
次に、量子計算制御部60は、古典メモリからAの要素aを読み込み、a=1の場合にのみ、NOT演算部145に、量子ビットQBへのNOT演算を適用させ、制御NOT演算部141に、量子ビットQBを制御ビットとし、量子ビットQUを目標ビットとした制御NOT演算を適用させる(ステップS76)。
次に、古典メモリ30からAと変数gcとを読み込んだ量子計算制御部60の制御のもと、E演算部142が、量子ビットQUgc,QUgc−1,QBgcに対し、E(agc)演算を適用する(ステップS77)。次に、量子計算制御部60が、古典メモリ30に格納された変数gcがj−1であるか否かを判断する(ステップS78)。ここで、gc=j−1でなければ、量子計算制御部60は、gc+1を新たなgcとして古典メモリ30に格納した後(ステップS79)、処理をステップS77に戻す。一方、gc=j−1であれば、HIGHBIT(A)演算を終了させる。
〔第2の実施の形態〕
本形態は、第1の実施の形態の変形例である。第1の実施の形態では、A=aj−1…aを古典情報として取り扱っていたが、第2の実施の形態では、A=aj−1…aを量子情報として取り扱う。なお、以下では、第1の実施の形態との相違点を中心に説明し、第1の実施の形態と共通する事項については説明を省略する。
<構成>
図21は、本形態における量子計算装置200の機能構成を例示したブロック図である。
第1の実施の形態の量子計算装置1と第2の実施の形態の量子計算装置200との構成上の相違点は、第1の実施の形態で古典情報として取り扱っていたA=aj−1…aの各桁a,…,aj−1の値を示す量子状態とする量子ビットQA,…QAj−1を量子ビット10に追加した量子ビット210を用いる点、量子計算部270の初期量子状態生成部271やCV演算部272が、この量子ビットQA,…QAj−1の量子情報を用いて各処理を実行する点である。
図22(a)は、本形態のCV演算部272が有するCONPARISON演算部321の詳細構成を例示した図である。この図に示すようにCONPARISON演算部321は、HIGHBIT演算部331、NOT演算部332、制御NOT演算部333及びToffoli演算部334を有している。図22(b)は、HIGHBIT演算部331の詳細構成を例示した図である。この図に示すようにHIGHBIT演算部331は、制御NOT演算部341、E演算部342、F演算部343、Toffoli演算部344、NOT演算部345及びF−1演算部343を有している。なお、その他の詳細構成については第1の実施の形態と同様であるため説明を省略する。
<処理>
以下では第1の実施の形態との相違点を中心に説明する。
[初期量子状態生成]
第1の実施の形態では、初期量子状態生成部71が、量子ビットQD,QD,QU〜QUj−1,QB〜QBj−1,QZの初期量子状態を生成していたが(ステップS2)、本形態の初期量子状態生成部271(図21)は、さらにQA〜QAj−1の初期量子状態も生成する。具体的には、古典メモリ30からA=aj−1…aを読み込んだ量子計算制御部60の制御のもと、初期量子状態生成部271が、量子ビットQA,…QAj−1の量子状態を、それぞれA=aj−1…aの各桁a,…,aj−1の値を示す量子状態とする。
[CV演算]
第1の実施の形態では、A=aj−1…aを古典情報としてCV演算を行っていたが、本形態では、量子ビットQA,…QAj−1を用い、A=aj−1…aを量子情報としてCV演算を行う。以下では、CONPARISON演算とHIGHBIT演算のみを説明する。その他の演算については、量子ビットQA,…QAj−1を用いたCONPARISON演算とHIGHBIT演算の結果を用いる以外は、第1の実施の形態と同様である。
[CONPARISON演算の詳細]
図23は、本形態のCONPARISON演算の詳細を説明するためのフローチャートである。また、図26は、j=5の場合における本形態のCOMPARISON演算を例示した量子回路である。
図26に例示するように、本形態のCOMPARISON演算を示す量子回路は、A=aj−1…aとB=bj−1…bとu,…,uj−1とzとをそれぞれ示す量子ビットQA〜QAj−1,QB〜QBj−1,QU〜QUj−1,QZに対し、A=aj−1…aとB=bj−1…bとu,…,uj−1とをそれぞれ示す量子状態の量子ビットQA〜QAj−1,QB〜QBj−1,QU〜QUj−1と、z(+)αを示す量子状態の量子ビットQZとを出力する。また、αは、A>Bの場合にα=1となり、A≦Bの場合にα=0となる値である。すなわち、COMPARISON演算は、A>Bの場合にのみ、量子ビットQZの量子状態を反転させる演算である。以下、このCOMPARISON演算の詳細を説明する。
まず、NOT演算部332(図22(a))が、量子ビットQA〜QAj−1に対してNOT演算を適用する(ステップS101)。次に、古典メモリ30からAを読み込んだ量子計算制御部60の制御のもと、HIBIT演算部331が、量子ビットQU〜QUj−1,QA〜QAj−1,QB〜QBj−1,QZに対し、HIGHBIT演算を適用する(ステップS102)。なお、HIGHBIT演算の詳細については後述する。次に、NOT演算部332が、量子ビットQA〜QAj−1,QZに対してNOT演算を適用する(ステップS103)。次に、量子計算制御部60の制御のもと、制御NOT演算部333が、量子ビットQA〜QAj−1を制御ビットとし、量子ビットQB〜QBj−1を目標ビットとした制御NOT演算を適用する(ステップS104)。その後、NOT演算部332が、量子ビットQB〜QBj−1に対し、NOT演算を適用し(ステップS105)、Toffoli演算部334が、量子ビットQB〜QBj−1を制御ビットとし、量子ビットQZを目標ビットとしたToffoli演算を適用する(ステップS106)。さらにその後、NOT演算部332が、量子ビットQB〜QBj−1に対し、NOT演算を適用する(ステップS107)。そして、量子計算制御部60の制御のもと、制御NOT演算部333が、量子ビットQA〜QAj−1を制御ビットとし、量子ビットQB〜QBj−1を目標ビットとした制御NOT演算を適用する(ステップS108)。
[HIGHBIT演算の詳細]
次に、ステップS102で触れたHIGHBIT演算の詳細を説明する。
図24及び25は、このHIGHBIT演算の詳細を説明するためのフローチャートである。また、図27は、j=5の場合における、このHIGHBIT演算を例示した量子回路である。
図27に例示するように、HIGHBIT演算を示す量子回路は、A=aj−1…aとB=bj−1…bとu,…,uj−1とzとをそれぞれ示す量子ビットQB〜QBj−1,QU〜QUj−1,QZに対し、B=bj−1…bとu,…,uj−1とをそれぞれ示す量子状態の量子ビットQA〜QAj−1,QB〜QBj−1,QU〜QUj−1と、z(+)βを示す量子状態の量子ビットQZとを出力する。なお、βはA+Bの最上位ビットの値を意味する。以下、HIGHBIT演算の詳細を説明する。
まず、制御NOT演算部341(図22(b))が、量子ビットQUj−1を制御ビットとし、量子ビットQZを目標ビットとしたCNOT演算を適用する(ステップS111)。次に、量子計算制御部60が変数gcにj−1を代入し、これを古典メモリ30に格納する(ステップS112)。
次に、古典メモリ30から変数gcを読み込んだ量子計算制御部60の制御のもと、E演算部142が、量子ビットQUgc,QUgc−1,QAgc,QBgcに対し、E演算を適用する(ステップS113)。
図28は、このE演算を示した量子回路である。図28に示すように、E(演算は、p,q,r,s∈{0,1}をそれぞれ示す量子状態の4つの量子ビットQUgc−1,QAgc,QBgc,QUgcを入力とする。そして、E演算部142は、まず、量子ビットQAgcを制御ビットとし、量子ビットQBgcを目標ビットとした制御NOT演算を適用する。次に、E演算部142は、量子ビットQUgc−1,QBgcを制御ビットとし、量子ビットQUgcを目標ビットとしたToffoli演算を適用し、さらに、量子ビットQAgcを制御ビットとし、量子ビットQBgcを目標ビットとした制御NOT演算を適用する。これらの操作により、4つの量子ビットQUgc−1,QAgc,QBgc,QUgcの量子状態が、それぞれp,q,r,s(+)(q(+)r)・pを示すものとなる。以上がE演算である。
次に、量子計算制御部60が、古典メモリ30に格納された変数gcが2であるか否かを判断する(ステップS114)。ここで、gc=2でなければ、量子計算制御部60は、gc−1を新たなgcとして古典メモリ30に格納した後(ステップS115)、処理をステップS113に戻す。一方、gc=2であれば、量子計算制御部60の制御のもと、Toffoli演算部344は、量子ビットQA,QBを制御ビットとし、量子ビットQUを目標ビットとしたToffoli演算を適用する(ステップS116)。次に、制御NOT演算部341は、
量子ビットQAを制御ビットとし、量子ビットQBを目標ビットとした制御NOT演算を適用する(ステップS117)。さらに、Toffoli演算部344は、量子ビットQA,QB,QBを制御ビットとし、量子ビットQUを目標ビットとしたToffoli演算を適用する(ステップS118)。図30は、このようなToffoli演算を示した量子回路である。なお図30では、それぞれの量子状態が、p,q,r,sである量子ビットQA,QB,QB,QUを入力とした例を示している。
次に、F演算部343が、量子ビットQUgc,QUgc−1 ,QAgc,QBgcに対し、F演算を適用する(ステップS119)。
図29は、このF演算を示した量子回路である。図29に示すように、F演算は、p,q,r,s∈{0,1}をそれぞれ示す量子状態の4つの量子ビットQUgc−1,QAgc,QBgc,QUgcを入力とする。そして、F演算部343は、まず、量子ビットQAgc,QBgcを制御ビットとし、量子ビットQUgcを目標ビットとしたToffoli演算を適用し、さらにQAgcを制御ビットとし、量子ビットQBgcを目標ビットとした制御NOT演算を適用する。次に、E演算部142は、量子ビットQUgc−1,QBgcを制御ビットとし、量子ビットQUgcを目標ビットとしたToffoli演算を適用する。これらの演算により、4つの量子ビットQUgc−1,QAgc,QBgc,QUgcの量子状態が、それぞれp,q,q(+)r,s(+)p・q(+)q・r(+)r・pを示すものとなる。以上がF演算である。
次に、量子計算制御部60が、古典メモリ30に格納された変数gcがj−1であるか否かを判断する(ステップS120)。ここで、gc=j−1でなければ、量子計算制御部60は、gc+1を新たなgcとして古典メモリ30に格納した後(ステップS121)、処理をステップS119に戻す。一方、gc=j−1であれば、制御NOT演算部141が、量子ビットQUj−1を制御ビットとし、量子ビットQZを目標ビットとしたCNOT演算を適用する(ステップS122)。
次に、古典メモリ30から変数gcとAの要素agcとを読み込んだ量子計算制御部60の制御のもと、F−1演算部346が、量子ビットQUgc,QUgc−1,QAgc,QBgcに対し、F演算の逆演算であるF−1演算を適用する(ステップS123)。
次に、量子計算制御部60が、古典メモリ30に格納された変数gcが2であるか否かを判断する(ステップS124)。ここで、gc=2でなければ、量子計算制御部60は、gc−1を新たなgcとして古典メモリ30に格納した後(ステップS125)、処理をステップS123に戻す。一方、gc=2であれば、Toffoli演算部344は、量子ビットQA,QB,QBを制御ビットとし、量子ビットQUを目標ビットとしたToffoli演算を適用する(ステップS126)。次に、制御NOT演算部341は、
量子ビットQAを制御ビットとし、量子ビットQBを目標ビットとした制御NOT演算を適用する(ステップS127)。さらに、
Toffoli演算部344は、量子ビットQA,QBを制御ビットとし、量子ビットQUを目標ビットとしたToffoli演算を適用する(ステップS128)。
次に、古典メモリ30から変数gcを読み込んだ量子計算制御部60の制御のもと、E演算部142が、量子ビットQUgc,QUgc−1,QAgc,QBgcに対し、E演算を適用する(ステップS129)。次に、量子計算制御部60が、古典メモリ30に格納された変数gcがj−1であるか否かを判断する(ステップS130)。ここで、gc=j−1でなければ、量子計算制御部60は、gc+1を新たなgcとして古典メモリ30に格納した後(ステップS131)、処理をステップS129に戻す。一方、gc=j−1であれば、HIGHBIT演算を終了させる。
〔ハードウェア構成〕
次に各実施の形態の量子計算装置1,200のハードウェア構成を例示する。
本形態の量子演算装置1は、量子コンピュータと古典コンユータとの組合せ、或いは量子コンピュータ単体で実現できる。量子コンピュータの実現する物理系としては、例えば、イオントラップを用いる方法(J. I. Cirac and P. Zoller, Quantum computations with cold trapped ions, Physical Review Letter 74;4091, 1995)、量子ビットとして光子の偏光や光路を用いる方法(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)、量子ドット中の電子スピンを用いる方法(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を実現するための具体的なハードウェア構成を例示する。
<量子ビット>
イオントラップ量子コンピュータでは、例えば、イオンの基底状態と励起状態を利用して量子ビットを実現する。また、核スピンを量子ビットとして用いる場合には、例えば、「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(ミリケルビン)オーダー以下に冷却してスピンの向きを揃えた後、所定の電磁波パルスを印加して生成してもよい。また、量子ビットとして光子の偏光を用いる場合には、例えば、パラメトリックダウンコンバージョン(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.」等参照。)により生成された複数個の単一光子を用いる。この場合、各量子ビットの初期量子状態は、例えば、他の演算の量子回路による操作によって得られたものを用いる。また、パラメトリックダウンコンバージョン等により生成された単一光子に、ビームスプリッタや偏光回転素子等によって実現されるウォルシューアダマール変換、CNOT、回転等の操作を行い、上述の初期量子状態を生成することとしてもよい。
その他、上記の文献に記載された方法で量子ビットを用意することとしてもよい。
また、演算前後や演算途中において量子ビットの量子状態を保存する必要がある場合には、例えば、量子ドット内の電子準位、核スピン、あるいは超伝導体内部の電荷(クーパー対)量を量子ビットとして用いてデータを保存する量子メモリ等を用いてもよい(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)、
1127708374343_6
、Y.Nakamura, Yu. A. Pashkin and J.S.Tsai, Nature 398(1999)768)。
<CNOT演算>
イオントラップ量子コンピュータでは、例えば、イオンを直線上に並べ、各イオンに狙いを定めたレーザービーム照射によってCNOT演算を実現する。また、量子ビットとして光子の偏光を用いる場合には、例えば、偏光ビームスプリッタ等を用い、「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演算を実現してもよい。
<量子ビット単体操作>
イオントラップ量子コンピュータでは、例えば、イオンを直線上に並べ、各イオンに狙いを定めたレーザービーム照射によって量子ビット単体の操作を実現する。核スピンを量子ビットとして用いる場合には、電磁波パルスやレーザービーム照射によって各処理を実現する。また、量子ビットとして光子の偏光を用いる場合には、例えば、偏光回転素子等によって実現する。
<量子計算制御部60・古典メモリ30>
量子計算制御部60は、例えば公知のコンピュータに所定のプログラムを実行させて実現してもよいし、上述の量子コンピュータによって実現してもよい。また、古典メモリ30は、DRAM、SRAM、フラッシュメモリ、NV(Nonvolatile)RAM等の読書き可能な半導体メモリである。また、古典メモリ30の代わりに上述の量子メモリを用いてもよい。
なお、本発明は上述の実施の形態に限定されるものではなく、その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
本発明の利用分野としては、例えば、RSA等の因数分解の困難性に安全性の根拠をおく暗号方式の安全性評価装置等を例示できる。
図1は、第1の実施の形態における量子計算装置の構成を例示したブロック図である。 図2(a)は、第1の実施の形態におけるCV演算部の詳細構成を例示した図である。図2(b)は、M MOD演算部の詳細構成を例示した図である。図2(c)は、ADD MOD演算部の詳細構成を例示した図である。 図3(a)は、第1の実施の形態におけるCONPARISON演算部の詳細構成を例示した図である。図3(b)は、HIGHBIT演算部の詳細構成を例示した図である。 図4は、第1の実施の形態の量子計算装置の処理の全体を説明するためのフローチャートである。 図5は、CV(A)演算の詳細を説明するためのフローチャートである。 図6は、このM(A)MOD(N)演算の詳細を説明するためのフローチャートである。 図7は、ADD(A)MOD(N)演算の詳細を説明するためのフローチャートである。 図8は、COMPARISON(A)演算の詳細を説明するためのフローチャートである。 図9は、HIGHBIT(A)演算の詳細を説明するためのフローチャートである。 図10は、HIGHBIT(A)演算の詳細を説明するためのフローチャートである。 図11は、第1の実施の形態の量子計算装置の処理の全体を例示した量子回路である。 図12は、j=5の場合におけるCV(A)演算を例示した量子回路である。 図13は、j=5の場合におけるM(A)MOD(N)演算を例示した量子回路である。 図14は、SWAP演算を示した量子回路である。 図15は、j=5の場合におけるADD(A)MOD(N)演算を例示した量子回路である。 図16は、j=5の場合におけるCOMPARISON(A)演算を例示した量子回路である。 図17は、j=5の場合のToffoli演算を示した量子回路である。 図18は、j=5の場合におけるHIGHBIT(A)演算を例示した量子回路である。 図19は、E(agc)演算を示した量子回路である。 図20は、F(agc)演算を示した量子回路である。 図21は、第2の実施の形態における量子計算装置の機能構成を例示したブロック図である。 図22(a)は、第2の実施の形態のCV演算部が有するCONPARISON演算部の詳細構成を例示した図である。図22(b)は、HIGHBIT演算部の詳細構成を例示した図である。 図23は、第2の実施の形態のCONPARISON演算の詳細を説明するためのフローチャートである。 図24は、HIGHBIT演算の詳細を説明するためのフローチャートである。 図25は、HIGHBIT演算の詳細を説明するためのフローチャートである。 図26は、j=5の場合における、第2の実施の形態のCOMPARISON演算を例示した量子回路である。 図27は、j=5の場合における、第2の実施の形態のHIGHBIT演算を例示した量子回路である。 図28は、E演算を示した量子回路である。 図29は、F演算を示した量子回路である。 図30は、Toffoli演算を示す量子回路である。 図31は、位数発見に有用な値を発見する量子回路の従来構成を示した図である。 図32(a)は、図31の演算子Hを示す量子回路であり、図32(b)は、図31の演算子Xを示す量子回路である。 図33は、図31の演算子Rを示す量子回路である。 図34は、図31におけるCU(A)=CU(A・2)の演算の詳細を示した量子回路である。 図35は、図34のCSWAP演算を示す量子回路である。 図36(a)は、NOT演算を示す量子回路であり、図36(b)は、制御NOT演算を示す量子回路である。 図37は、Toffoli演算を示す量子回路である。 図38は、図34におけるCMULT(A)MOD(N)の演算の詳細を示した量子回路である。 図39は、図38におけるQFTの演算の詳細を示した量子回路である。 図40は、図39の演算子K∈{2,…,6}を示した量子回路である。 図41は、図38におけるφADD(A)MOD(N)=φADD(2・A)MOD(N)の演算の詳細を示した量子回路である。 図42は、図41におけるφADD(A)演算の詳細を示した量子回路である。 図43は、図42における演算子σ(k∈{1,…,5})を示した量子回路である。
符号の説明
1,200 量子計算装置

Claims (5)

  1. 2進数j桁のN=nj−1…nと、2進数j桁の j−1 、2進数j桁のB=b j−1 …b とから、F+B mod Nを算出する量子計算方法であって、
    (a)メモリに上記Nととを格納するステップと、
    (b)減算部が、上記メモリから読み込んだNととからN−を算出するステップと、
    (c)第1COMPARISON演算部が、上記減算部算出たN−を用い、前記B=bj−1…bの各桁をそれぞれ示す量子状態の量子ビットQBj−1, … ,QBと、任意の量子状態の量子ビットQUj−1,… QU,QZと、に対し、前記N−FとBとを比較する第1量子操作を行い、N−>Bの場合にのみ量子ビットQZの量子状態を反転させるステップと、
    (d)QFT演算部が、前記第1COMPARISON演算部が演算した結果の量子ビットQB j−1 ,…,QB にQFT(量子フーリエ変換)演算を適用するステップと、
    (e)φADD演算部が、前記第1COMPARISON演算部が演算した結果の量子ビットQZが1を示す量子状態のときのみ、前記QFT演算部が演算した結果の前記量子ビットQB j−1 ,…,QB のうち1を示す量子状態の量子ビットQB (0≦k≦j−1)に対し、
    Figure 0004366348
    (ただし、量子ビットQB の量子状態を|QB 〉とし、eをネピア数とし、iを虚数単位とする)の演算を施すステップと、
    (f)第1NOT演算部が、前記第1COMPARISON演算部が演算した結果の量子ビットQZにNOT演算を施すステップと、
    (g)φADD −1 演算部が、前記第1NOT演算部が演算した結果の量子ビットQZが1を示す量子状態のときのみ、前記φADD演算部が演算した結果の量子ビットQB j−1 ,…,QB のうち1を示す量子状態の量子ビットQB (0≦k≦j−1)に対し、
    Figure 0004366348
    (ただし、N−F=(n−f) j−1 …(n−f) とする)の演算を施すステップと、
    (h)第2NOT演算部が、前記第1NOT演算部が演算した結果の量子ビットQZにNOT演算を施すステップと、
    (i)QFT −1 演算部が、前記φADD −1 演算部が演算した結果の量子ビットQB j−1 ,…,QB にQFT演算の逆演算を適用するステップと、
    (j)第2COMPARISON演算部が、前記FとBと用い、前記QFT −1 演算部が演算した結果の量子ビットQB j−1 ,… ,QB と、前記第1COMPARISON演算部が演算した結果の量子ビットQU j−1 ,…,QU と前記第2NOT演算部が演算した結果の量子ビットQZと、に対し、前記FとBとを比較する第1量子操作を行い、F>Bの場合にのみ前記第2NOT演算部が演算した結果の量子ビットQZの量子状態を反転させる量子操作を行うステップと、を実行し、
    前記第2COMPARISON演算部が演算した結果の量子ビットQB ・・・QB j−1 を前記F+B mod Nの各桁に対応する量子状態を表す量子ビットとして出力することを特徴とする量子計算方法。
  2. 請求項1に記載のF+B mod Nを算出する量子計算方法を用いて、前記2進数j桁のN=n j−1 …n と、前記Nよりも小さい2進数j桁のA=a j−1 …a とから、A =1 mod Nを満たす最小のRの算出に有用な値C=c 2j−1 ・・・c を計算する量子計算方法であって、
    初期量子状態生成部が、0と1と2j個の0とをそれぞれ示す量子ビットQD ,QD ,QU ,・・・QU j−1 ,QB ,・・・,QB j−1 ,QZを生成するステップと、
    (A)H演算部が、量子ビットQD にアダマール演算を適用するステップと、
    (B)第1乗算部が、前記Aと変数gaとからA・2 2j−ga−1 を算出するステップと、
    (C)第1M MOD演算部が、量子ビットQD とQD とが1を示す量子状態のときのみ、量子ビットQU ,・・・QU j−1 ,QB ,・・・,QB j−1 ,QZとに対し、前記第1乗算部が算出したA・2 2j−ga−1 から計算した2 ・A・2 2j−ga−1 を前記Fとして請求項1に記載のステップ(a)〜(j)を実行し、その結果の量子ビットQD とQD を制御ビットとしQZを標的ビットとするToffoli演算を適用し、さらに、変数gb=1からj−1まで、量子ビットQD とU gb にSWAP演算を適用し、前記変数gbと前記第1乗算部が算出したA・2 2j−ga−1 とから計算した2 gb ・A・2 2j−ga−1 を前記Fとして請求項1に記載のステップ(a)〜(j)を適用し、その結果の量子ビットQD とQU gb にSWAP演算を適用する演算を繰り返すステップと、
    (D)CSWAP演算部が、量子ビットQD ,QD ,QU ,・・・QU j−1 ,QB ,・・・,QB j−1 に対し、QD をQU として、k=0からj−1について、QB を制御ビットとしQU を目標ビットとした制御NOT演算を適用し、QD とQU を制御ビットとしQB を目標ビットとしたToffoli演算を適用し、QB を制御ビットとしQU を目標ビットとした制御NOT演算を適用するステップと、
    (E)第2乗算部が、前記第1乗算部で算出したA・2 2j−ga−1 から(A・2 2j−ga−1 −1 を算出するステップと、
    (F)第2M MOD演算部が、量子ビットQD とQD とが1を示す量子状態のときのみ、量子ビットQU ,・・・QU j−1 ,QB ,・・・,QB j−1 ,QZとに対し、前記第2乗算部が算出した(A・2 2j−ga−1 −1 から計算した2 ・(A・2 2j−ga−1 −1 を前記Fとして請求項1に記載の(a)〜(j)を適用し、その結果の量子ビットQD とQD を制御ビットとしQZを標的ビットとするToffoli演算を適用し、さらに、その結果の量子ビットに対して、変数gb=0からj−1まで、量子ビットQD とU gb にSWAP演算を適用し、前記変数gbと前記第2乗算部が算出した(A・2 2j−ga−1 −1 とから計算した2 gb ・(A・2 2j−ga−1 −1 を前記Fとして請求項1に記載のステップ(a)〜(j)を適用し、その結果の量子ビットQD とQU gb にSWAP演算を適用する演算を繰り返すステップと、
    (G)観測部が、量子ビットQD の量子状態を観測し、その結果を前記c ga として前記メモリに格納するステップと、
    (H)X ck 演算部が、前記観測部で観測した結果c ga が1のときのみ、量子ビットQD の量子状態を反転させるステップと、
    (I)R 演算部が、量子ビットQD が1を示す量子状態のときのみ、QD
    Figure 0004366348
    (ただし、量子ビットQD の量子状態を|QD >とする)の演算を施すステップと、
    量子計算制御部が、変数gaに0を代入して上記ステップ(A)〜(F)を順に実行させ、その結果の量子ビットに対して上記ステップ(A)を実行させ、更に、上記ステップ(G)を実行させ、その結果の量子ビットに対して、変数ga=1からga=2j−1まで順番にgaを1ずつ増やしながら上記ステップ(H),(A)〜(F),(I),(G)を順に実行させ、前記観測部が観測したc ga (ga=0,・・・,2j−1)を前記A =1 mod Nを満たす最小のRの算出に有用な値Cの各桁として出力することを特徴とする量子計算方法。
  3. 請求項1又は2に記載の量子計算方法であって、
    上記第1COMPARISON演算部が行う上記第1量子操作は、
    HIGHBIT演算部が、量子ビットQBj−1,…,QBと、量子ビットQUj−1,…,QUと、量子ビットQZと対して第2量子操作を行い、量子ビットQZを、z(+)β〔βはN−F+Bの最上位桁、(+)は排他的論理和〕を示す量子状態とし、他の量子ビットQBj−1,…,QB、QUj−1,…,QUの量子状態を当該第2量子操作前の量子状態とするステップと、
    NOT演算部が、量子ビットQZにNOT演算を施すステップと、
    古典情報によって制御される第4NOT演算部が、上記メモリから読み込まれた古典情報である−Fの桁(n−f(h∈{j−1,…,0})の値が1となるhに対応する量子ビットQBのみにNOT演算を施すステップと、
    NOT演算部が、各量子ビットQBj−1,…,QBにNOT演算を施すステップと、
    第2Toffoli演算部が、各量子ビットQBj−1,…,QBを制御ビットとし、量子ビットQZを目標ビットとしたToffoli演算を施すステップと、
    NOT演算部が、各量子ビットQBj−1,…,QBにNOT演算を施すステップと、
    古典情報によって制御される第7NOT演算部が、上記メモリから読み込まれた古典情報である−Fの桁(n−f の値が1となるhに対応する量子ビットQBのみにNOT演算を施すステップと、
    を有することを特徴とする量子計算方法。
  4. 2進数j桁のN=nj−1…nと、2進数j桁の j−1 、2進数j桁のB=b j−1 …b とから、F+B mod Nを算出する量子計算装置であって、
    上記Nととを格納するメモリと、
    上記メモリから読み込んだNととからN−を算出する減算部と、
    上記減算部算出たN−を用い、前記B=bj−1…bの各桁をそれぞれ示す量子状態の量子ビットQBj−1, … ,QBと、任意の量子状態の量子ビットQUj−1,… QU,QZと、に対し、前記N−FとBとを比較する第1量子操作を行い、N−>Bの場合にのみ量子ビットQZの量子状態を反転させる第1COMPARISON演算部と、
    前記第1COMPARISON演算部が演算した結果の量子ビットQB j−1 ,…,QB にQFT(量子フーリエ変換)演算を適用するQFT演算部と、
    前記第1COMPARISON演算部が演算した結果の量子ビットQZが1を示す量子状態のときのみ、前記QFT演算部が演算した結果の前記量子ビットQB j−1 ,…,QB のうち1を示す量子状態の量子ビットQB (0≦k≦j−1)に対し、
    Figure 0004366348
    (ただし、量子ビットQB の量子状態を|QB 〉とし、eをネピア数とし、iを虚数単位とする)の演算を施すφADD演算部と、
    前記第1COMPARISON演算部が演算した結果の量子ビットQZにNOT演算を施す第1NOT演算部と、
    前記第1NOT演算部が演算した結果の量子ビットQZが1を示す量子状態のときのみ、前記φADD演算部が演算した結果の量子ビットQB j−1 ,…,QB のうち1を示す量子状態の量子ビットQB (0≦k≦j−1)に対し、
    Figure 0004366348
    (ただし、N−F=(n−f) j−1 …(n−f) とする)の演算を施すφADD −1 演算部と、
    前記第1NOT演算部が演算した結果の量子ビットQZにNOT演算を施す第2NOT演算部と、
    前記φADD −1 演算部が演算した結果の量子ビットQB j−1 ,…,QB にQFT演算の逆演算を適用するQFT −1 演算部と、
    前記FとBと用い、前記QFT −1 演算部が演算した結果の量子ビットQB j−1 ,… ,QB と、前記第1COMPARISON演算部が演算した結果の量子ビットQU j−1 ,…,QU と前記第2NOT演算部が演算した結果の量子ビットQZと、に対し、前記FとBとを比較する第1量子操作を行い、F>Bの場合にのみ前記第2NOT演算部が演算した結果の量子ビットQZの量子状態を反転させる量子操作を行う第2COMPARISON演算部と、を有し、
    前記第2COMPARISON演算部が演算した結果の量子ビットQB ・・・QB j−1 を前記F+B mod Nの各桁に対応する量子状態を表す量子ビットとして出力することを特徴とする量子計算装置。
  5. 請求項1に記載のF+B mod Nを算出する量子計算方法を用いて、前記2進数j桁のN=n j−1 …n と、前記Nよりも小さい2進数j桁のA=a j−1 …a とから、A =1 mod Nを満たす最小のRの算出に有用な値C=c 2j−1 ・・・c を計算する量子計算装置であって、
    0と1と2j個の0とをそれぞれ示す量子ビットQD ,QD ,QU ,・・・QU j−1 ,QB ,・・・,QB j−1 ,QZを生成する初期量子状態生成部と、
    量子ビットQD にアダマール演算を適用するH演算部と、
    前記Aと変数gaとからA・2 2j−ga−1 を算出する第1乗算部と、
    量子ビットQD とQD とが1を示す量子状態のときのみ、量子ビットQU ,・・・QU j−1 ,QB ,・・・,QB j−1 ,QZとに対し、前記第1乗算部が算出したA・2 2j−ga−1 から計算した ・A・2 2j−ga−1 を前記Fとして請求項1に記載のステップ(a)〜(j)を実行し、その結果の量子ビットQD とQD を制御ビットとしQZを標的ビットとするToffoli演算を適用し、さらに、変数gb=1からj−1まで、量子ビットQD とU gb にSWAP演算を適用し、前記変数gbと前記第1乗算部が算出したA・2 2j−ga−1 とから計算した2 gb ・A・2 2j−ga−1 を前記Fとして請求項1に記載のステップ(a)〜(j)を適用し、その結果の量子ビットQD とQU gb にSWAP演算を適用する演算を繰り返す第1M MOD演算部と、
    量子ビットQD ,QD ,QU ,・・・QU j−1 ,QB ,・・・,QB j−1 に対し、QD をQU として、k=0からj−1について、QB を制御ビットとしQU を目標ビットとした制御NOT演算を適用し、QD とQU を制御ビットとしQB を目標ビットとしたToffoli演算を適用し、QB を制御ビットとしQU を目標ビットとした制御NOT演算を適用するCSWAP演算部と、
    前記第1乗算部で算出したA・2 2j−ga−1 から(A・2 2j−ga−1 −1 を算出する第2乗算部と、
    量子ビットQD とQD とが1を示す量子状態のときのみ、量子ビットQU ,・・・QU j−1 ,QB ,・・・,QB j−1 ,QZとに対し、前記第2乗算部が算出した(A・2 2j−ga−1 −1 から計算した2 ・(A・2 2j−ga−1 −1 を前記Fとして請求項1に記載の(a)〜(j)を適用し、その結果の量子ビットQD とQD を制御ビットとしQZを標的ビットとするToffoli演算を適用し、さらに、その結果の量子ビットに対して、変数gb=0からj−1まで、量子ビットQD とU gb にSWAP演算を適用し、前記変数gbと前記第2乗算部が算出した(A・2 2j−ga−1 −1 とから計算した2 gb ・(A・2 2j−ga−1 −1 を前記Fとして請求項1に記載のステップ(a)〜(j)を適用し、その結果の量子ビットQD とQU gb にSWAP演算を適用する演算を繰り返す第2M MOD演算部と、
    量子ビットQD の量子状態を観測し、その結果を前記c ga として前記メモリに格納する観測部と、
    前記観測部で観測した結果c ga が1のときのみ、量子ビットQD の量子状態を反転させるX ck 演算部と、
    量子ビットQD が1を示す量子状態のときのみ、QD
    Figure 0004366348
    (ただし、量子ビットQD の量子状態を|QD >とする)の演算を施すR 演算部と、
    変数gaに0を代入し、上記H演算部の処理(A)、上記第1乗算部の処理(B)、上記第1M MOD演算部の処理(C)、上記CSWAP演算部の処理(D)、上記第2乗算部の処理(E)、及び上記第2M MOD演算部の処理(F)を順に実行させ、その結果の量子ビットに対して上記処理(A)を実行させ、更に、上記観測部の処理(G)を実行させ、その結果の量子ビットに対して、変数ga=1からga=2j−1まで順番にgaを1ずつ増やしながら上記X ck 演算部の処理(H)、上記処理(A)〜(F),上記R 演算部の処理(I),上記処理(G)を順に実行させ、前記観測部が観測したc ga (ga=0,・・・,2j−1)を前記A =1 mod Nを満たす最小のRの算出に有用な値Cの各桁として出力させる量子計算制御部と、
    を有することを特徴とする量子計算装置。
JP2005278052A 2005-09-26 2005-09-26 量子計算方法及び量子計算装置 Expired - Lifetime JP4366348B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005278052A JP4366348B2 (ja) 2005-09-26 2005-09-26 量子計算方法及び量子計算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005278052A JP4366348B2 (ja) 2005-09-26 2005-09-26 量子計算方法及び量子計算装置

Publications (2)

Publication Number Publication Date
JP2007087307A JP2007087307A (ja) 2007-04-05
JP4366348B2 true JP4366348B2 (ja) 2009-11-18

Family

ID=37974205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005278052A Expired - Lifetime JP4366348B2 (ja) 2005-09-26 2005-09-26 量子計算方法及び量子計算装置

Country Status (1)

Country Link
JP (1) JP4366348B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8957699B2 (en) * 2012-10-26 2015-02-17 Northrop Grumman Systems Corporation Efficient Toffoli state generation from low-fidelity single qubit magic states

Also Published As

Publication number Publication date
JP2007087307A (ja) 2007-04-05

Similar Documents

Publication Publication Date Title
Wang et al. Qudits and high-dimensional quantum computing
Bhatia et al. An efficient quantum computing technique for cracking RSA using Shor’s algorithm
Shen et al. Scalable implementation of boson sampling with trapped ions
JP4847914B2 (ja) 量子加算演算方法及び量子加算演算装置
Hey Quantum computing: an introduction
US20050133780A1 (en) Quantum-state-generating apparatus, Bell measurement apparatus, quantum gate apparatus, and method for evaluating fidelity of quantum gate
WO2007006144A1 (en) Systems, methods and apparatus for factoring numbers
Herrman et al. Continuous-time quantum walks on dynamic graphs
JP5227942B2 (ja) 量子誤り推定装置、量子誤り推定方法、そのプログラム、量子誤り訂正装置、量子誤り訂正方法
JP5351862B2 (ja) 量子演算方法、量子演算装置
JP5204698B2 (ja) 量子演算方法、量子演算装置、量子回路
JP4700413B2 (ja) 量子演算装置及び量子回路を用いた量子演算方法
Kim et al. Distributed variational quantum algorithm with many-qubit for optimization challenges
JP5129646B2 (ja) 量子回路、量子演算装置及び量子演算方法
Hughes Cryptography, quantum computation and trapped ions
Hughes Quantum computation
Niemann et al. Synthesis of quantum circuits for dedicated physical machine descriptions
JP4366348B2 (ja) 量子計算方法及び量子計算装置
JP4332167B2 (ja) 近似量子フーリエ変換を行う量子回路、近似量子フーリエ変換演算方法および装置
JP6182123B2 (ja) 量子演算方法
Kenarangui et al. " Quantum supremacy" challenged. Instantaneous noise-based logic with benchmark demonstrations
Iftemi et al. Quantum computing applications and impact for cyber physical systems
JP4829623B2 (ja) 量子演算方法及び量子演算装置
Freegarde et al. Algorithmic cooling in a momentum state quantum computer
Anand How quantum computing powers the future of artificial intelligence

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090612

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

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

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

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4366348

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130828

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

EXPY Cancellation because of completion of term