JP5204698B2 - 量子演算方法、量子演算装置、量子回路 - Google Patents

量子演算方法、量子演算装置、量子回路 Download PDF

Info

Publication number
JP5204698B2
JP5204698B2 JP2009067704A JP2009067704A JP5204698B2 JP 5204698 B2 JP5204698 B2 JP 5204698B2 JP 2009067704 A JP2009067704 A JP 2009067704A JP 2009067704 A JP2009067704 A JP 2009067704A JP 5204698 B2 JP5204698 B2 JP 5204698B2
Authority
JP
Japan
Prior art keywords
qubit
quantum
control
target
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.)
Active
Application number
JP2009067704A
Other languages
English (en)
Other versions
JP2010218513A (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 JP2009067704A priority Critical patent/JP5204698B2/ja
Publication of JP2010218513A publication Critical patent/JP2010218513A/ja
Application granted granted Critical
Publication of JP5204698B2 publication Critical patent/JP5204698B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、量子演算方法、量子演算装置、量子回路に関する。より詳しくは、加算、減算、比較に係る量子回路、並びにこの量子回路に則った量子演算方法、量子演算装置に関する。
近年、量子コンピュータのための種々の量子回路が検討されている。特に、1994年に因数分解問題や離散対数問題を効率的に解く量子コンピュータ上のアルゴリズム(Shorのアルゴリズム)が提案されたことを契機に、効率的な量子回路の研究が盛んに行われている。その一つに加算のための量子回路(以下、量子加算回路と云う。)がある。効率的な量子加算回路は、Shorのアルゴリズムを効率的に実行する観点からも有用である。
量子回路は、[1]非巡回的であること、[2]ファンイン(FANIN)の禁止、[3]ファンアウト(FANOUT)の禁止、[4]量子ゲートがユニタリー性を持つことなど、古典回路と異なる制約を受けるため、所定の条件を満足する量子回路を構成することは一般的に容易ではない。このような制約の下で量子加算回路を構成する場合に、ファンアウト(FANOUT)の禁止を受けて、補助キュービット(ancillary qubit)を用いる量子加算回路が提案されている(非特許文献1参照)。また、補助キュービットを用いない量子加算回路も提案されている(非特許文献2参照)。ここで量子加算は、nビット(n=1,2,・・・)の2つの2進数a=an-1…a0及びb=bn-1…b0と、0または1のzとが入力として与えられたとき、a+b=sn…s0を計算し、z(+XOR)snとsn-1…s0とaとを出力する演算であり、式(1)で表される演算である。ただし、(+XOR)あるいは○と+との組合せ記号は、2を法とする加算(排他的論理和)を表す。また、式(1)において、○と×との組合せ記号はテンソル積を表す。
Figure 0005204698
図1−図4を参照して、非特許文献2に開示された量子加算回路を概説する。図1−図4では、n=5の場合の量子加算回路を例示している。なお、1枚の図面に収まらないため、便宜的に4枚の図面に分けてこの量子加算回路を示している。この量子回路は、図1に示す量子回路から図4に示す量子回路までを順番に接続して得られる。この量子加算回路は、リプルキャリーアプローチ(ripple-carry approach)と呼ばれる手法に基づいた回路構成を持つ。ここで、繰り上がり用のキャリービットci(0≦i≦n)を式(2)のように定義する。
Figure 0005204698
このとき、si(0≦i≦n)はキャリービットciを用いて式(3)で与えられる。
Figure 0005204698
非特許文献2に開示された量子加算回路は、式(1)で表される出力を得るため、式(4)で表されるMAJゲートの作用を利用している。このように、MAJゲートは状態|z(+XOR)ci〉を状態|z(+XOR)ci+1〉に変更する。なおMAJゲートは、図8に示す量子ゲートである。
Figure 0005204698
式(4)で表されるMAJゲートの作用を利用するため、まず、図1に示す量子回路では、8個の制御NOT(CNOT; controlled NOT)ゲートを使って、1≦i≦n−1について|z(+XOR)bi〉および|z(+XOR)ai〉が求められる。制御NOTゲートは、図9に示す量子ゲートである。
そして、図2に示す量子回路では、|b0〉と|a0〉と|z〉に作用する1個の制御制御NOTゲートと4個のMAJゲートを用いて、1≦i≦n−1について|bi(+XOR)ci〉および|ai(+XOR)ci〉と、|z(+XOR)c5〉=|z(+XOR)s5〉が求められる。制御制御NOT(controlled-controlled NOT)ゲートは、図10に示す量子ゲートである。nを1以上の整数とし、Uを2×2のユニタリー行列として、2n×2nのユニタリー行列Λn-1Uを式(5)のように定め、これをn-キュービットの一般Toffoliゲートと呼ぶ。制御制御NOTゲートは、式(5)で表されるn-キュービットの一般Toffoliゲート(general Toffoli gate)の特別な場合である(n=3;U=N;NはNOT演算を表すユニタリー作用素)。そこで、制御制御NOTゲートを単にToffoliゲートとも呼ぶ。
Figure 0005204698
次に、図3に示す量子回路および図4に示す量子回路(但し、図4に示す量子回路の破線枠部を除く。)では、1≦i≦n−1について、状態|bi(+XOR)ci〉を変更することなく状態|ai(+XOR)ci〉が状態|ai〉に変更される。
そして、図4の破線枠部に示す量子回路では、0≦i≦n−1について、|ai〉を制御キュービット(control qubit)とし、|bi(+XOR)ci〉を標的キュービット(target qubit)として、制御NOTゲートを適用することによって、式(1)に示す所望の出力が得られる。
なお、量子計算や量子アルゴリズムなどについては、非特許文献3に詳しい。
S. A. Cuccaro, T. G. Draper, S. A. Kutin and D. P. Moulton, A new quantum ripple-carry addition circuit, The Eighth Workshop on Quantum Information Processing, 2005. Y. Takahashi and N. Kunihiro, A linear-size quantum circuit for addition with no ancillary qubits, Quantum Information and Computation, Vol. 5 No. 6, pp.440-448, 2005. M. A. Nielsen and I. L. Chuang, "Quantum Computation and Quantum Information", Cambridge UniversityPress, 2000.
量子回路が効率的であるか否かを評価する指標として、入力桁数nに対する、その量子回路で使われるキュービット(量子ビットとも云う)の数、基本演算数(サイズ)、計算ステップ数(深さ)が用いられる。キュービットの数は2n+1よりも小さくすることはできないので、補助キュービットの個数が着目される。基本演算は、1キュービットに対する演算と2キュービットに対する演算であり、基本演算数は量子回路で使われている基本演算の個数である。計算ステップ数は、量子回路で使われている基本演算を並列に行える演算からなるグループに分割したときのグループの個数である。ただし、異なるキュービットに対する演算は並列に行えると仮定する。
一般的には、多数のキュービットを協調的に操作することは物理的に困難であると予想され、補助キュービットの個数はできるだけ少ないことが好ましい。また、基本演算の個数が多いほど演算誤りの発生する可能性が大きくなるため、基本演算数はできるだけ少ないほうがよい。また、少ない計算時間のためには計算ステップ数は少ない方がよい。
非特許文献1に開示される量子加算回路は補助キュービットを一つ用いているが、非特許文献2に開示される量子加算回路は補助キュービットを用いていない。
非特許文献2に開示される量子加算回路は、2個のユニタリーゲートと、6n−6個の制御NOTゲートと、4n−5個のToffoliゲートを用いて構成されるので、基本演算数は10n−9である(全ての演算は単一量子ビットに対する1量子ビット演算と制御NOT演算に分解できるので(上記非特許文献3参照)、ToffoliゲートによるToffoli演算を基本演算としている。)。また、計算ステップ数は8n−7である。補助キュービットを使わずに、10n−9個よりも少ない基本演算数を持つ量子加算回路は知られていない。
そこで本発明は、このような実情に鑑みて、補助キュービットを使うことなく、従来よりも効率的な量子演算技術を提供することを目的とする。
本発明では、2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a+b=sn…s0〔sj∈{0,1},j∈{0,…,n}〕と、z(+XOR)sn〔(+XOR)は2を法とする加算を表す。〕とを算出する量子演算(量子加算)は、nを1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、次のような演算を行う。即ち、nが2以上の整数である場合には、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算と、nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算と、p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対するToffoli演算と、nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行い、さらに、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対するToffoli演算を行う量子演算と、nが3以上の整数である場合には、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算と、p=0,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算である。
また、本発明では、2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−b=sn-1…s0〔si∈{0,1},i∈{0,…,n−1}〕とその符号sn〔sn∈{0,1}〕とを算出する量子演算(量子減算)は、nを1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、次のような演算を行う。即ち、p=0,・・・,n−1について、キュービットApに対するNOT演算と、nが2以上の整数である場合には、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算と、nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算と、p=0,1,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対するToffoli演算と、nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行い、さらに、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対するToffoli演算を行う量子演算と、nが3以上の整数である場合には、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算と、p=0,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算と、p=0,・・・,nとr=0,・・・,n−1について、キュービットBrに対するNOT演算とキュービットApに対するNOT演算を行う量子演算である。
また、本発明では、2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−bの符号yを算出する量子演算(量子比較演算)は、nを1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、次のような演算を行う。即ち、p=0,・・・,n−1について、キュービットApに対するNOT演算と、nが2以上の整数である場合には、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算と、nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算と、p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対するToffoli演算と、nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対するToffoli演算と、nが3以上の整数である場合には、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算と、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算と、p=0,・・・,nについて、キュービットApに対するNOT演算である。
本発明に拠れば、補助キュービットを使わずに、量子加算が7n−6個の基本演算数と5n−3個の計算ステップ数で実現できる。また、この量子加算を利用して、補助キュービットを使わずに、量子減算が10n−5個の基本演算数と5n−1個の計算ステップ数で実現できる。また、この量子減算を応用して、補助キュービットを使わずに、量子比較演算が8n−5個の基本演算数と4n個の計算ステップ数で実現できる。これらの演算では、基本演算数が従来よりも少ないから、演算誤りの発生する可能性が低い。
従来の量子加算回路(ステージ1)。 従来の量子加算回路(ステージ2)。 従来の量子加算回路(ステージ3)。 従来の量子加算回路(ステージ4)。 本発明の一実施形態である5ビットの量子回路(量子加算)。 本発明の一実施形態である5ビットの量子回路(量子減算)。 本発明の一実施形態である5ビットの量子回路(量子比較演算)。 MAJゲート。 制御NOTゲート。 Toffoliゲート。 SWAPゲートを用いた量子回路の等価変換を示す図。 SWAPゲート。 本発明の一実施形態である5ビットの量子回路(量子加算)における演算処理フロー。 本発明の一実施形態である5ビットの量子回路(量子減算)における演算処理フロー。 本発明の一実施形態である5ビットの量子回路(量子比較演算)における演算処理フロー。
〔量子加算〕
まず、図5および図13を参照して、加算のための量子回路100を説明する。以下、加算のための量子回路100を量子加算回路100と呼称する。
既述のとおり、量子加算は、nビット(入力桁数n)の2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とが入力として与えられたとき、a+b=sn…s0〔sj∈{0,1},j∈{0,…,n}〕を計算し、z(+XOR)snとsn-1…s0とaとを出力する演算であり、式(1)で表される演算である。ただし、nは1以上の整数である。また、繰り上がり用のキャリービットci(0≦i≦n)は式(2)のように定義され、si(0≦i≦n)はキャリービットciを用いて式(3)で与えられる。
この演算を行う量子加算回路100は、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とする。キュービットBiの初期状態は|bi〉である(i∈{0,…,n−1})。キュービットAiの初期状態は|ai〉である(i∈{0,…,n−1})。キュービットAの初期状態は|z〉である。つまり、量子加算回路100の入力状態は式(6)で表される。図5では5ビット(n=5)の量子加算回路100を例示している。
Figure 0005204698
量子加算回路100は、ステージ1からステージ6までの最大6個の量子回路で構成されている。
nが2以上の整数である場合、ステージ1の量子回路は、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対して制御NOTゲートを適用する量子回路である。基本演算は制御NOT演算であり、基本演算数はn−1である。
第1量子演算部は、これらの制御NOT演算を実行する(ステップS1)。これらの制御NOT演算は並列実行可能であり、計算ステップ数は1である。
ステージ1を経た時点での出力状態は式(7)で表される。
Figure 0005204698
nが1である場合、量子加算回路100はステージ1の量子回路を持たない。
nが2以上の整数である場合、ステージ1に続くステージ2の量子回路は、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対して制御NOTゲートを適用する量子回路である。基本演算は制御NOT演算であり、基本演算数はn−1である。
第2量子演算部は、これらの制御NOT演算を実行する(ステップS2)。これらの制御NOT演算はp=n−1,・・・,1の順番で実行されるため、計算ステップ数はn−1である。
ステージ2を経た時点での出力状態は式(8)で表される。
Figure 0005204698
nが1である場合、量子加算回路100はステージ2の量子回路を持たない。
ステージ2に続くステージ3の量子回路は、p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対してToffoliゲートを適用する量子回路である。基本演算はToffoli演算であり、基本演算数はnである。
第3量子演算部は、これらのToffoli演算を実行する(ステップS3)。これらのToffoli演算はp=0,・・・,n−1の順番で実行されるため、計算ステップ数はnである。
ステージ3を経た時点での出力状態は式(9)で表される。
Figure 0005204698
nが2以上の整数である場合、ステージ3に続くステージ4の量子回路は、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対して制御NOTゲートを適用し、さらに、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対してToffoliゲートを適用する量子回路である。基本演算は制御NOT演算とToffoli演算であり、基本演算数はそれぞれn−1であり計2n−2である。
第4量子演算部は、これらの制御NOT演算とToffoli演算を実行する(ステップS4)。これらの制御NOT演算とToffoli演算はp=n−1,・・・,1の順番で実行されるため、計算ステップ数はそれぞれn−1であり計2n−2である。
ステージ4を経た時点での出力状態は式(10)で表される。
Figure 0005204698
nが1である場合、量子加算回路100はステージ4の量子回路を持たない。
nが3以上の整数である場合には、ステージ4に続くステージ5の量子回路は、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対して制御NOTゲートを適用する量子回路である。基本演算は制御NOT演算であり、基本演算数はn−2である。
第5量子演算部は、これらの制御NOT演算を実行する(ステップS5)。これらの制御NOT演算はp=1,・・・,n−2の順番で実行されるため、計算ステップ数はそれぞれn−2である。
ステージ5を経た時点での出力状態は式(11)で表される。
Figure 0005204698
nが1または2である場合、量子加算回路100はステージ5の量子回路を持たない。
ステージ5に続くステージ6の量子回路は、p=0,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対して制御NOTゲートを適用する量子回路である。基本演算は制御NOT演算であり、基本演算数はnである。
第6量子演算部は、これらの制御NOT演算を実行する(ステップS6)。これらの制御NOT演算は並列実行可能であり、計算ステップ数は1である。
ステージ6を経た時点での出力状態は式(12)で表され、この出力状態が量子加算回路100の出力状態である。
Figure 0005204698
本発明の量子加算回路の特徴の一つは、ステージ3を経た時点での出力状態が式(9)で表されるように、キャリービットciが初期状態|ai〉を与えられたキュービットAiに蓄えられることにある。これは、MAJゲートを二つの制御NOTゲートを含む前段部と一つのToffoliゲートを含む後段部に分けて、MAJゲートの作用を複合的に利用することで達成される。具体的には、前段部を用いて、ステージ2を経た時点で、式(8)で表される出力状態を得る。そして、この出力状態において、キュービットB0およびキュービットA0を制御キュービットとし、キュービットA1を標的キュービットとして、キュービットB0とキュービットA0とキュービットA1に対してToffoliゲートを適用すると、式(13)で表される状態を得ることは、式(14)で表されるToffoliゲートの作用から容易に理解される。ただし、式(14)では1≦i≦n−1であり、anをzと看做すものとする。
Figure 0005204698
従って、後段部を用いてToffoliゲートを順次適用することによって式(9)で表される状態を得ることができる。
n≧2の場合、ステージ1からステージ6までの基本演算数と計算ステップ数をそれぞれ加算することによって、量子加算回路100の基本演算数は7n−6、計算ステップ数は5n−3である。
〔量子減算〕
次に、図6および図14を参照して、減算のための量子回路200を説明する。以下、減算のための量子回路200を量子減算回路200と呼称する。
量子減算は、nビット(入力桁数n)の2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とが入力として与えられたとき、a−b=sn-1…s0〔si∈{0,1},i∈{0,…,n−1}〕を計算し、z(+XOR)snとsn-1…s0とaとを出力する演算であり、式(15)で表される演算である。sn〔sn∈{0,1}〕は、a−bの2進数表現であるsn-1…s0の符号を表し、b≦aならば1、それ以外ならば0である。ここでは、負の数を表すために2の補数を用いることとする。つまり、sn=0の場合、a−b=sn-1…s0は、絶対値が[a−b−1]である負の数を表す。ここで[X]はXの1の補数を表す。このとき、符号snを考慮したビット列sn…s0についてsn…s0=[[a]+b]が成り立つ。なお、nは1以上の整数である。
Figure 0005204698
ここで便宜的にキャリービットdi(0≦i≦n)を式(16)のように定義する。
Figure 0005204698
また、ti(0≦i≦n)をキャリービットdiを用いて式(17)のように定義する。
Figure 0005204698
このとき、si(0≦i≦n)はtiを用いて式(18)で与えられる。
Figure 0005204698
n…s0=[[a]+b]が成り立つため、量子減算回路200は、量子加算回路100を用いて構成される。量子減算回路200は、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とする。キュービットBiの初期状態は|bi〉である(i∈{0,…,n−1})。キュービットAiの初期状態は|ai〉である(i∈{0,…,n−1})。キュービットAの初期状態は|z〉である。つまり、量子減算回路200の入力状態は式(6)で表される。図6では5ビット(n=5)の量子減算回路200を例示している。
量子減算回路200は、ステージ0、ステージ1、・・・、ステージ7までの最大8個の量子回路で構成されている。
ステージ0の量子回路は、p=0,・・・,n−1について、キュービットApに対してNOTゲートを適用する量子回路である。基本演算はNOT演算であり、基本演算数はnである。
第0量子演算部は、これらのNOT演算を実行する(ステップS0)。これらのNOT演算は並列実行可能であり、計算ステップ数は1である。
ステージ0を経た時点での出力状態は式(19)で表される。
Figure 0005204698
ステージ1からステージ6までは、量子加算回路100と同じである。但し、各ステージを経た時点での出力状態はn≧3の場合に式(20)のとおりである。
Figure 0005204698
ステージ6に続くステージ7の量子回路は、p=0,・・・,nとr=0,・・・,n−1について、キュービットBrに対してNOTゲートを適用し、キュービットApに対してNOTゲートを適用する量子回路である。基本演算はNOT演算であり、基本演算数は2n+1である。
第7量子演算部は、これらのNOT演算を実行する(ステップS7)。これらのNOT演算は並列実行可能であり、計算ステップ数は1である。
ステージ7を経た時点での出力状態は式(21)で表され、この出力状態が量子減算回路200の出力状態である。
Figure 0005204698
n≧2の場合、ステージ0からステージ7までの基本演算数と計算ステップ数をそれぞれ加算することによって、量子減算回路200の基本演算数は10n−5、計算ステップ数は5n−1である。
〔量子比較演算〕
次に、図7および図15を参照して、比較のための量子回路300を説明する。以下、比較のための量子回路300を量子比較回路300と呼称する。
量子比較演算は、nビット(入力桁数n)の2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とが入力として与えられたとき、a−b=sn-1…s0〔si∈{0,1},i∈{0,…,n−1}〕の符号yを計算し、z(+XOR)yとbとaとを出力する演算であり、式(22)で表される演算である。y〔y∈{0,1}〕は、a−bの2進数表現であるsn-1…s0の符号を表し、b≦aならば1、それ以外ならば0である。ここでは、負の数を表すために2の補数を用いることとする。つまり、y=0の場合、a−b=sn-1…s0は、絶対値が[a−b−1]である負の数を表す。ここで[X]はXの1の補数を表す。このとき、符号yを考慮したビット列ysn-1…s0についてysn-1…s0=[[a]+b]が成り立つ。なお、nは1以上の整数である。
Figure 0005204698
キャリービットdi(0≦i≦n)は式(16)のように定義される。このとき、y=dnである。
n…s0=[[a]+b]が成り立つため、量子比較回路300は、量子減算回路200を利用して構成される。但し、si(0≦i≦n−1)を計算する必要がないので、量子減算回路200を一部変形して利用する。量子比較回路300は、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とする。キュービットBiの初期状態は|bi〉である(i∈{0,…,n−1})。キュービットAiの初期状態は|ai〉である(i∈{0,…,n−1})。キュービットAの初期状態は|z〉である。つまり、量子比較回路300の入力状態は式(6)で表される。図7では5ビット(n=5)の量子比較回路300を例示している。
量子比較回路300は、ステージ0、ステージ1、ステージ2、ステージ3、ステージ4a、ステージ5、ステージ6a、ステージ7aまでの最大8個の量子回路で構成されている。
ステージ0からステージ3までは、量子減算回路200と同じである。
nが2以上の整数である場合、ステージ3に続くステージ4aの量子回路は、p=n−1,・・・,1について、順に、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対してToffoliゲートを適用する量子回路である。基本演算はToffoli演算であり、基本演算数はn−1である。
第4a量子演算部は、これらのToffoli演算を実行する(ステップS4a)。これらのToffoli演算はp=n−1,・・・,1の順番で実行されるため、計算ステップ数はn−1である。
ステージ4aを経た時点での出力状態は式(23)で表される。
Figure 0005204698
nが1である場合、量子比較回路300はステージ4aの量子回路を持たない。
ステージ4aに続くステージ5の量子回路は、量子加算回路100に含まれるステージ5の量子回路と同じである。但し、ステージ5を経た時点での出力状態はn≧3の場合に式(24)のとおりである。
Figure 0005204698
ステージ5に続くステージ6aの量子回路は、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対して制御NOTゲートを適用する量子回路である。基本演算は制御NOT演算であり、基本演算数はn−1である。
第6a量子演算部は、これらの制御NOT演算を実行する(ステップS6a)。これらの制御NOT演算は並列実行可能であり、計算ステップ数は1である。
ステージ6aを経た時点での出力状態は式(25)で表される。
Figure 0005204698
ステージ6aに続くステージ7aの量子回路は、p=0,・・・,nについて、キュービットApに対してNOTゲートを適用する量子回路である。基本演算はNOT演算であり、基本演算数はn+1である。
第7a量子演算部は、これらのNOT演算を実行する(ステップS7a)。これらのNOT演算は並列実行可能であり、計算ステップ数は1である。
ステージ7aを経た時点での出力状態は式(26)で表され、この出力状態が量子比較回路300の出力状態である。
Figure 0005204698
n≧2の場合、ステージ0からステージ7aまでの基本演算数と計算ステップ数をそれぞれ加算することによって、量子比較回路300の基本演算数は8n−5、計算ステップ数は4nである。
〔近傍2量子ビット演算〕
量子演算において、キュービットの状態が物理的な状態であるところ、隣り合うキュービットよりも離れたキュービットに基づく作用を受けるとすると、一般的に演算誤りのリスクが高まる。そこで、隣り合うキュービット間の量子演算である近傍2量子ビット演算を用いる量子回路が好ましい。
量子加算回路100、量子減算回路200、量子比較回路300では、容易に近傍2量子ビット演算を用いる量子回路に変更することができる。この変換は、図11に示すように、近傍2量子ビット演算ではない制御NOT演算とToffoli演算をSWAPゲートを用いて近傍2量子ビット演算である制御NOT演算とToffoli演算に変更することで達成される。SWAPゲートは、図12に示す量子ゲートである。
〔量子演算装置〕
次に、本発明の量子回路に則って量子演算を行う量子演算装置について説明する。本発明の量子演算装置は、本発明の量子回路から明らかなように、実施形態に応じて、第0量子演算部、第1量子演算部、第2量子演算部、第3量子演算部、第4量子演算部、第5量子演算部、第6量子演算部、第7量子演算部、第4a量子演算部、第6a量子演算部、第7a量子演算部のいずれかを含む。さらに、各量子演算部は、実施形態に応じた基本量子演算部(NOT演算部、制御NOT演算部、Toffoli演算部)を含む。つまり、本発明の量子回路に示した量子ゲートが、量子演算装置の基本量子演算部に相当する。なお、全ての演算は単一量子ビットに対する1量子ビット演算と制御NOT演算に分解できる(上記非特許文献3参照)。
量子演算装置は、量子コンピュータ単体で実現できる。量子コンピュータの実現する物理系としては、例えば、イオントラップを用いる方法(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 UniversityPress, Chapter 7 Physical Realization」に詳しい。
<量子ビット>
イオントラップ量子コンピュータでは、例えば、イオンの基底状態と励起状態を利用して量子ビットを実現する。また、核スピンを量子ビットとして用いる場合には、例えば、「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)、http://www.snf.unsw.edu.au/、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演算を実現してもよい。
<量子ビット単体操作>
イオントラップ量子コンピュータでは、例えば、イオンを直線上に並べ、各イオンに狙いを定めたレーザービーム照射によって量子ビット単体の操作を実現する。核スピンを量子ビットとして用いる場合には、電磁波パルスやレーザービーム照射によって各処理を実現する。また、量子ビットとして光子の偏光を用いる場合には、例えば、偏光回転素子等によって実現する。
なお、本発明は上述の実施の形態に限定されるものではなく、その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。例えば量子加算回路100では、制御NOT演算とToffoli演算を基本演算としている。しかしながら、本発明の量子回路に使われる全ての演算は単一量子ビットに対する1量子ビット演算と制御NOT演算に分解できるので(上記非特許文献3参照)、ここでの基本演算以外の演算を用いて量子加算回路100と等価な量子回路を構成できる。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
ところで、本発明の量子回路に則って量子演算を行う手順自体は、古典コンピュータで決定することができる。本発明の量子回路に則って量子演算を行う手順は、本発明の量子回路を入力側から出力側に向かって順に行う各計算ステップである。
具体的には、例えば図5で示した量子加算回路100を例とすると、ステージ1からステージ6の各量子回路における量子演算を行う手順をそれぞれ決定し量子回路の入力側から出力側に向かって順に手順を並べることで、量子加算回路100に則って量子演算を行う手順を決定できる。ただし、1計算ステップで並行演算可能であれば、これらの演算を並行するものを1手順とすればよい。
換言すれば、この古典コンピュータは、図13に示したステップS1−ステップS6の手順を決定して出力するものといえる。
このような古典コンピュータ、つまり、本発明の量子回路における量子演算の手順を決定する量子演算手順決定装置は、いわゆる古典的な装置構成で実現される。例えばパーソナルコンピュータに例示されるように、記憶装置(例えばRAM、ROMやハードディスク)、演算処理装置(例えばCPU)、入力・出力装置(例えばキーボード、ディスプレイ)、これらの装置間でデータのやり取りが可能に接続するバスなどを備えた古典コンピュータによって実現することができる。
この場合、例えば図5の例でステージ1からステージ6の各量子回路における量子演算を行う手順をそれぞれ決定するための各プログラム、量子回路の入力側から出力側に向かって順に手順を並べるためのプログラムを記憶装置に記憶しておき、必要に応じて演算処理装置がプログラムを読み込んで解釈実行することで、ステージ1からステージ6の各量子回路における量子演算を行う手順をそれぞれ決定する各機能、量子回路の入力側から出力側に向かって順に手順を並べる機能を実現する。また各プログラムは、コンピュータ読み取り可能な記録媒体(例えばCD−R、DVD−RAM、MO)に記録することもできる。

Claims (7)

  1. 2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a+b=sn…s0〔sj∈{0,1},j∈{0,…,n}〕と、z(+XOR)sn〔(+XOR)は2を法とする加算を表す。〕とを算出する量子演算装置であって、
    nを1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、
    nが2以上の整数である場合には、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う量子演算部と、
    nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う量子演算部と、
    p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対するToffoli演算を行う量子演算部と、
    nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行い、さらに、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対するToffoli演算を行う量子演算部と、
    nが3以上の整数である場合には、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う量子演算部と、
    p=0,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う量子演算部と
    を含む量子演算装置。
  2. 2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−b=sn-1…s0〔si∈{0,1},i∈{0,…,n−1}〕とその符号sn〔sn∈{0,1}〕とを算出する量子演算装置であって、
    nを1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、
    p=0,・・・,n−1について、キュービットApに対するNOT演算を行う量子演算部と、
    nが2以上の整数である場合には、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う量子演算部と、
    nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う量子演算部と、
    p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対するToffoli演算を行う量子演算部と、
    nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行い、さらに、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対するToffoli演算を行う量子演算部と、
    nが3以上の整数である場合には、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う量子演算部と、
    p=0,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う量子演算部と、
    p=0,・・・,nとr=0,・・・,n−1について、キュービットBrに対するNOT演算とキュービットApに対するNOT演算を行う量子演算部と
    を含む量子演算装置。
  3. 2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−bの符号yを算出する量子演算装置であって、
    nを1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、
    p=0,・・・,n−1について、キュービットApに対するNOT演算を行う量子演算部と、
    nが2以上の整数である場合には、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う量子演算部と、
    nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う量子演算部と、
    p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対するToffoli演算を行う量子演算部と、
    nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対するToffoli演算を行う量子演算部と、
    nが3以上の整数である場合には、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う量子演算部と、
    p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う量子演算部と、
    p=0,・・・,nについて、キュービットApに対するNOT演算を行う量子演算部と
    を含む量子演算装置。
  4. 2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a+b=sn…s0〔sj∈{0,1},j∈{0,…,n}〕と、z(+XOR)sn〔(+XOR)は2を法とする加算を表す。〕とを算出する量子演算方法であって、
    nが1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、
    nが2以上の整数である場合には、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う第1量子演算ステップと、
    nが2以上の整数である場合には、第1量子演算ステップに続いて、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う第2量子演算ステップと、
    第2量子演算ステップに続いて、p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対するToffoli演算を行う第3量子演算ステップと、
    nが2以上の整数である場合には、第3量子演算ステップに続いて、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行い、さらに、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対するToffoli演算を行う第4量子演算ステップと、
    nが3以上の整数である場合には、第4量子演算ステップに続いて、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う第5量子演算ステップと、
    第5量子演算ステップに続いて、p=0,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う第6量子演算ステップと
    を含む量子演算方法。
  5. 2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−b=sn-1…s0〔si∈{0,1},i∈{0,…,n−1}〕とその符号sn〔sn∈{0,1}〕とを算出する量子演算方法であって、
    nを1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、
    p=0,・・・,n−1について、キュービットApに対するNOT演算を行う第0量子演算ステップと、
    nが2以上の整数である場合には、第0量子演算ステップに続いて、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う第1量子演算ステップと、
    nが2以上の整数である場合には、第1量子演算ステップに続いて、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う第2量子演算ステップと、
    第2量子演算ステップに続いて、p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対するToffoli演算を行う第3量子演算ステップと、
    nが2以上の整数である場合には、第3量子演算ステップに続いて、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行い、さらに、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対するToffoli演算を行う第4量子演算ステップと、
    nが3以上の整数である場合には、第4量子演算ステップに続いて、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う第5量子演算ステップと、
    第5量子演算ステップに続いて、p=0,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う第6量子演算ステップと、
    第6量子演算ステップに続いて、p=0,・・・,nとr=0,・・・,n−1について、キュービットBrに対するNOT演算とキュービットApに対するNOT演算を行う第7量子演算ステップと
    を含む量子演算方法。
  6. 2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a−bの符号yを算出する量子演算方法であって、
    nを1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、
    p=0,・・・,n−1について、キュービットApに対するNOT演算を行う第0量子演算ステップと、
    nが2以上の整数である場合には、第0量子演算ステップに続いて、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う第1量子演算ステップと、
    nが2以上の整数である場合には、第1量子演算ステップに続いて、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う第2量子演算ステップと、
    第2量子演算ステップに続いて、p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対するToffoli演算を行う第3量子演算ステップと、
    nが2以上の整数である場合には、第3量子演算ステップに続いて、p=n−1,・・・,1について、順に、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対するToffoli演算を行う第4量子演算ステップと、
    nが3以上の整数である場合には、第4量子演算ステップに続いて、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対する制御NOT演算を行う第5量子演算ステップと、
    第5量子演算ステップに続いて、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対する制御NOT演算を行う第6量子演算ステップと、
    第6量子演算ステップに続いて、p=0,・・・,nについて、キュービットApに対するNOT演算を行う第7量子演算ステップと
    を含む量子演算方法。
  7. 2つの2進数a=an-1…a0〔ai∈{0,1},i∈{0,…,n−1}〕及びb=bn-1…b0〔bi∈{0,1},i∈{0,…,n−1}〕と、0または1のz〔z∈{0,1}〕とに対し、a+b=sn…s0〔sj∈{0,1},j∈{0,…,n}〕と、z(+XOR)sn〔(+XOR)は2を法とする加算を表す。〕とを算出する量子回路であって、
    nを1以上の整数とし、n個のキュービットBi(i∈{0,…,n−1})と、n+1個のキュービットAj(j∈{0,…,n})を演算対象とし、キュービットBiの初期状態を|bi〉とし(i∈{0,…,n−1})、キュービットAiの初期状態を|ai〉とし(i∈{0,…,n−1})、キュービットAの初期状態を|z〉として、
    nが2以上の整数である場合には、p=1,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対して制御NOTゲートを適用する量子回路と、
    nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対して制御NOTゲートを適用する量子回路と、
    p=0,・・・,n−1について、順に、キュービットBpおよびキュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットBpとキュービットApとキュービットAp+1に対してToffoliゲートを適用する量子回路と、
    nが2以上の整数である場合には、p=n−1,・・・,1について、順に、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対して制御NOTゲートを適用し、さらに、キュービットBp-1およびキュービットAp-1を制御キュービットとし、キュービットApを標的キュービットとして、キュービットBp-1とキュービットAp-1とキュービットApに対してToffoliゲートを適用する量子回路と、
    nが3以上の整数である場合には、p=1,・・・,n−2について、順に、キュービットApを制御キュービットとし、キュービットAp+1を標的キュービットとして、キュービットApとキュービットAp+1に対して制御NOTゲートを適用する量子回路と、
    p=0,・・・,n−1について、キュービットApを制御キュービットとし、キュービットBpを標的キュービットとして、キュービットBpとキュービットApに対して制御NOTゲートを適用する量子回路と
    から構成された量子回路。
JP2009067704A 2009-03-19 2009-03-19 量子演算方法、量子演算装置、量子回路 Active JP5204698B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009067704A JP5204698B2 (ja) 2009-03-19 2009-03-19 量子演算方法、量子演算装置、量子回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009067704A JP5204698B2 (ja) 2009-03-19 2009-03-19 量子演算方法、量子演算装置、量子回路

Publications (2)

Publication Number Publication Date
JP2010218513A JP2010218513A (ja) 2010-09-30
JP5204698B2 true JP5204698B2 (ja) 2013-06-05

Family

ID=42977234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009067704A Active JP5204698B2 (ja) 2009-03-19 2009-03-19 量子演算方法、量子演算装置、量子回路

Country Status (1)

Country Link
JP (1) JP5204698B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922457B2 (en) * 2017-10-19 2021-02-16 University Of Maryland Automated optimization of large-scale quantum circuits with continuous parameters
KR102100368B1 (ko) 2018-05-17 2020-04-14 한국과학기술원 양자 데이터베이스를 위한 효과적 양자 메모리 구조
CN111580782B (zh) * 2019-07-09 2022-07-15 沈阳工业大学 量子n位全加器
KR102204081B1 (ko) * 2020-07-24 2021-01-15 한양대학교 에리카산학협력단 효율적인 양자 모듈러 곱셈기 및 양자 모듈러 곱셈 방법
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
CN115936127B (zh) * 2021-09-30 2024-06-14 本源量子计算科技(合肥)股份有限公司 一种基于量子技术的数值比较方法、装置及量子计算机

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4829623B2 (ja) * 2006-01-27 2011-12-07 日本電信電話株式会社 量子演算方法及び量子演算装置
JP4847914B2 (ja) * 2007-04-16 2011-12-28 日本電信電話株式会社 量子加算演算方法及び量子加算演算装置
JP5129646B2 (ja) * 2008-05-01 2013-01-30 日本電信電話株式会社 量子回路、量子演算装置及び量子演算方法

Also Published As

Publication number Publication date
JP2010218513A (ja) 2010-09-30

Similar Documents

Publication Publication Date Title
Wang et al. Qudits and high-dimensional quantum computing
JP4847914B2 (ja) 量子加算演算方法及び量子加算演算装置
JP5204698B2 (ja) 量子演算方法、量子演算装置、量子回路
Mohammadi et al. Design and optimization of reversible bcd adder/subtractor circuit for quantum and nanotechnology based systems
JP4700413B2 (ja) 量子演算装置及び量子回路を用いた量子演算方法
JP5227942B2 (ja) 量子誤り推定装置、量子誤り推定方法、そのプログラム、量子誤り訂正装置、量子誤り訂正方法
Swathi et al. Implementation of reversible logic gates with quantum gates
Lin et al. Optimized quantum gate library for various physical machine descriptions
JP4332167B2 (ja) 近似量子フーリエ変換を行う量子回路、近似量子フーリエ変換演算方法および装置
Liu Comparisons of Conventional Computing and Quantum Computing Approaches
JP5129646B2 (ja) 量子回路、量子演算装置及び量子演算方法
Haghparast et al. Optimization approaches for designing quantum reversible arithmetic logic unit
JP6182123B2 (ja) 量子演算方法
Noorallahzadeh et al. A new design of parity-preserving reversible multipliers based on multiple-control toffoli synthesis targeting emerging quantum circuits
Mummadi et al. Fundamentals of quantum computation and basic quantum gates
JP5351862B2 (ja) 量子演算方法、量子演算装置
Shafaei et al. Reversible logic synthesis of k-input, m-output lookup tables
US11868848B2 (en) Systems and methods for controlled quantum information processing with a trans-radix basis component
JP4366348B2 (ja) 量子計算方法及び量子計算装置
JP5496921B2 (ja) 量子演算方法、量子演算装置
Chen et al. Quantum-dot cellular automata as a potential technology for designing nano-scale computers: Exploring the state-of-the-art techniques and suggesting the opportunities for the future
Tutul et al. Shallow Depth Factoring Based on Quantum Feasibility Labeling and Variational Quantum Search
JP4829623B2 (ja) 量子演算方法及び量子演算装置
Abdollahi et al. Reversible logic synthesis by quantum rotation gates
Moghimi et al. Toward Designing High-Speed Cost-Efficient Quantum Reversible Carry Select Adders

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101207

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130215

R150 Certificate of patent or registration of utility model

Ref document number: 5204698

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

Year of fee payment: 3

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