JP3896057B2 - Quantum computer algorithm conversion apparatus and method, quantum computer algorithm conversion program, and recording medium recording the program - Google Patents
Quantum computer algorithm conversion apparatus and method, quantum computer algorithm conversion program, and recording medium recording the program Download PDFInfo
- Publication number
- JP3896057B2 JP3896057B2 JP2002258904A JP2002258904A JP3896057B2 JP 3896057 B2 JP3896057 B2 JP 3896057B2 JP 2002258904 A JP2002258904 A JP 2002258904A JP 2002258904 A JP2002258904 A JP 2002258904A JP 3896057 B2 JP3896057 B2 JP 3896057B2
- Authority
- JP
- Japan
- Prior art keywords
- algorithm
- quantum
- variable name
- variable
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B82—NANOTECHNOLOGY
- B82Y—SPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
- B82Y10/00—Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Chemical & Material Sciences (AREA)
- Mathematical Physics (AREA)
- Nanotechnology (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Crystallography & Structural Chemistry (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は量子アルゴリズムを循環配列型量子コンピュータ用のアルゴリズムに変換する方法および装置に関する。
【0002】
【従来の技術】
現在広く利用されているコンピュータにくらべ、原理的にはるかに高速に問題を解くことのできる「量子コンピュータ」と呼ばれるコンピュータが提案されている。量子の世界特有の現象である量子重ね合わせ状態を利用すると、古典計算機におけるビット(0または1を表現する単位)を拡張し、0、1、に加えて0と1の重ね合わせを表現することが可能である。このようなビットの拡張概念はキュービットと呼ばれ、量子コンピュータはキュービットの演算により実現される。量子コンピュータを実現すれば因数分解などの問題に対して現在のコンピュータよりもはるかに高速な計算が可能なことから、世界中の多くの研究機関で開発が進められている。
【0003】
量子コンピュータは現在主に2つの方向から研究が進められている。一つは、量子コンピュータの演算を実行するための基本素子である量子ゲートの開発である。二つ目は、量子ゲートが実現できたときにその上で動作する量子コンピュータ用アルゴリズムに関する研究である。
【0004】
量子ゲートが実現する基本演算は、従来のコンピュータで可能な演算とはまったく異なると予想されている。量子アルゴリズムは開発された量子ゲートの基本演算をもとに研究されることが本来望ましいが、量子ゲートは未開発のため現在のところ妥当と思われる基本演算をもとにアルゴリズムが研究されている。基本演算として、制御NOTと呼ばれる演算が使用されることが多い。
【0005】
【非特許文献1】
S.Lloyd,「Science」261, pp. 1569-1571 (1993)
【非特許文献2】
S.Lloyd,「Programming Pulse Driven Quantum Computers, Technical Report」http://arXiv.org/abs/quant-ph/9912086, LANL e-print, 1999.
【0006】
【発明が解決しようとする課題】
残念なことに、量子ゲートが実際に開発されてみないことには、キュービット上の基本演算がどのようなものになるかは正確なところはわからない。基本演算はキュービットの実現方法に依存する事柄であり、現在キュービットとして複数の実現方法が提案されている。そうした方法の中でも、最も有力とされるのは原子の核スピンを利用した実現方法である。この方法では、隣接キュービット間の核磁気相互作用を利用して、量子演算を実現する。さらに、こうした手法に適した原子は種類が限られているため、大規模な量子コンピュータを製造する際には、同種類の原子が繰り返し配置された量子コンピュータとなる可能性が高い。このような量子コンピュータでは、離れた位置にあるキュービット間での演算は事実上不可能であり、制御NOTで記述された量子アルゴリズムをそのまま実行するのは不可能に近い。
【0007】
そこで、制御NOTで記述された量子アルゴリズムを、このような量子コンピュータに適した量子アルゴリズムに変換する必要性が生じる。変換により変換ロスが発生することも予想されるが、従来のコンピュータで人間が読みやすいプログラムを機械語に翻訳するコンパイラが不可欠なように、量子コンピュータにおいてもこのような変換装置は必要不可欠と考えられる。
【0008】
S.Lloydは、3種類のキュービットA,B,Cが「・・・−A−B−C−A−B−C−A−B−C−A−B−C−・・・」のように繰り返し配列された量子コンピュータ上で、隣接キュービット間の演算だけを使用してプール計算ができることを示した(非特許文献1、非特許文献2参照)。しかし、量子アルゴリズムを一般的な循環配列型量子コンピュータのアルゴリズムに変換する手法について述べられた文献はない。
【0009】
本発明の目的は、制御NOTを使用して記述された量子アルゴリズムを、「Am−A1−...−Am−A1−...−Am−A1−...−Am」のように「−A1−...−Am−」という一定のキュービット配列が繰り返し現れる量子コンピュータ(以下、「循環配列型量子コンピュータ」と呼ぶ)用のアルゴリズムに変換する方法および装置を提供することである。
【0010】
【課題を解決するための手段】
本発明は、与えられた制御NOTの各演算を循環配列型量子コンピュータ用の演算の列に置き換えることにより、上記課題を解決するものである。
【0011】
アルゴリズムの記述に必要な概念の定義
まず、量子アルゴリズムを定義する。
【0012】
量子アルゴリズム
古典的計算機におけるビットに相当する量子計算機の概念はキュービットと呼ばれる。各キュービットは古典的計算機における1、0、またはそれを拡張した(1と0の重ねあわせに相当する)ビット情報を保有する。量子コンピュータは有限個のキュービットで構成される。量子コンピュータで計算を行うとは、各キュービットに初期値を与え、それらに操作を施してキュービットが保有するビット情報を操作し、最後に観測を行ってこれらのビット情報を取り出すことを意味する。キュービット上に施されるビット情報の一連の操作のことを量子アルゴリズムと呼ぶ。キュービットに施される操作の基本単位を定めれば、量子アルゴリズムはこの基本操作の列によって記述される。一般に、量子アルゴリズムでは、キュービットに対し以下の操作だけが許されている。
【0013】
制御NOT 2キュービットi,jに対して、片方のキュービット(仮にiとする)の値が1の時にはjの値を反転(0を1に変える、または1を0に変える)し、iの値が0の時には何もしない。キュービットiのことをコントロールビット、キュービットjのことをターゲットビットと呼ぶ。この制御NOTのことを(j,i)と表記する。
制御NOTは、図4(a)のように図示される。量子アルゴリズムは制御NOTの列で表現される。図5は量子アルゴリズム(6,2)(1,5)の例である。
【0014】
循環配列型量子コンピュータ用のアルゴリズム
循環配列型量子コンピュータとは、m種類のキュービットが配列「−A1−A2−・・・−Am−」の繰り返しで構成され、隣接するキュービット間でのみ制御NOTと制御制御NOTの操作が可能な量子コンピュータのことである。キュービットを原子の核スピンによって実現したような場合、キュービット間の相互作用は非常に小さくなり、通常の量子アルゴリズムのモデルをそのまま実装することが困難になる。循環配列型量子コンピュータは、従来の量子計算機のモデルに比べより現実に近いモデルである。
【0015】
循環配列型量子コンピュータのキュービットの操作は、制御NOTと制御制御NOTの2種類である。一度の操作で、同種類のキュービット配列上に同じ操作が施される。キュービットの種類をそれぞれをA1,A2,...,Amで表す。
【0016】
制御NOT 隣接する2キュービット間(AiとA(i+1)またはAmとA1)で、片方(たとえばAiとA(i+1)におけるAi。コントロールビットと呼ぶ。)の値が1のときにはもう片方のビット(ターゲットビットと呼ぶ。)を反転し、0のときは何もしない操作。コントロールビットをA、ターゲットビットをBとするとき、制御NOT操作を(B,A)と表記する。
【0017】
制御制御NOT 隣接する3キュービット間(Ai,A(i+1),A(i+2)またはA(m−1),Am,A1またはAm,A1,A2)で、両端(たとえばAi,A(i+1),A(i+2)におけるAiとA(i+2)。コントロールビットと呼ぶ。)の値が両方とも1のときは、それらの間のビット(ターゲットビットと呼ぶ。)を反転し、それ以外のときは何もしない操作。コントロールビットをA1,A2、ターゲットビットをBとするとき、制御NOT操作を(B,A1,A2)と表記する。
これらの操作の記号表記を、図4(b)(c)に示した。
【0018】
制御NOTと制御制御NOTを組み合わせることにより、次の2種類の操作を作ることができる。
【0019】
スワップ 隣接する2キュービット間(AiとA(i+1)またはAmとA1)で、値を入れ替える操作。2キュービットをA,Bとするとき、この操作を[A,B]と表記する。[A,B]は、(A,B)(B,A)(A,B)の略記号である。
【0020】
制御スワップ 隣接する3キュービット間(Ai,A(i+1),A(i+2)またはA(m−1),Am,A1またはAm,A1,A2)で、端(たとえばAi,A(i+1),A(i+2)におけるAi。コントロールビットと呼ぶ。)の値が1のときは、残りのビットの値を入れ替え、それ以外のときは何もしない操作。3キュービットをA,B,Cとし、Aをコントロールビットとするとき、[C,B,A]と表記する。これは、(C,B)(B,A,C)(C,B)の略記号である。
【0021】
制御NOTの列からなる入力量子アルゴリズムをg=g1g2...gdとする。すべてのi(1≦i≦d)に対して、giはgi=(ti,ci)と表現できる。また、この量子アルゴリズムのキュービット数をnとする。すなわち、すべてのiに対して、0≦ti,ci<nである。また、循環型量子コンピュータのキュービットの種類数をmとする。
【0022】
出力アルゴリズム記憶用の変数をG’、n+1個の変数名を記憶する変数名記憶配列をVとする。Vのj番目の要素をV[j]と表記する。
【0023】
以下、gの各量子ゲートg1,g2,...,gdを前から一つずつ参照し、循環配列型量子コンピュータ用量子アルゴリズムを得る方法を図1により説明する。
【0024】
ステップ1. G’とVの初期化
Vの初期値をV[0]=0、s=1,...,nに対しては
V[s]=[s+((s-1)÷(m-1))]
とする。ここで、[t]はtを越えない最大の整数(すなわち、[]はガウス記号)である。G’の初期値をφ(空集合)する。量子ゲートの番号を意味する変数iの初期値を1とし、以下に示すループをi=1〜dまで実行する。
【0025】
ステップ2. iを初期化
【0026】
ステップ3. 条件分岐
制御NOTゲートgiを(ti,ci)とする。|V[ti]−V[ci]|がmの倍数でなければ、スワップ操作を用いてV[ti],V[ci],V[0]番目のキュービットが保有する情報を隣接キュービットに集めることができる(ステップ5〜6)。しかし|V[ti]−V[ci]|がmの倍数の場合は、V[ti],V[ci]番目のキュービットの種類が同じになるため、スワップだけではこれらを隣接キュービットにすることができない。そこで、|V[ti]−V[ci]|がmの倍数かどうかで場合わけを行う。|V[ti]−V[ci]|がmの倍数ならばステップ4を実行する。そうでないならば、ステップ4を省略し、ステップ5にジャンプする。
【0027】
ステップ4. 量子アルゴリズムG0の定義
以下に、量子アルゴリズムG0を定義する。また、G0にもとづいてVを変更する。G0の定義に必要な、k,j,j',j'',j'''およびX1,X2,X3,...,Xmを以下のように定義する。
【0028】
|V[ti]−V[0]|または|V[ci]−V[0]|のうち小さいほうを選ぶ。|V[ti]−V[0]|の方が小さい場合はk=|V[ti]−V[0]|−[|V[ti]−V[0]|÷m]−2とおく。j,j',j'',j'''は、1≦j,j',j'',j'''≦m,j=k mod m,J’=k+1 mod m,J''=k+2 mod m,J'''=k+3 mod mで決まる値である。また、X1,X2,X3,...,XmはV[ti]−V[0]が正か負かに応じて以下のように定義される。
【0029】
V[ti]−V[0]が負の場合
V[ti]=0 mod mならば X1=Am,X2=A1,...,Xm=A(m-1)とする。
V[ti]=1 mod mならば X1=A1,X2=A2,...,Xm=Amとする。
V[ti]=2 mod mならば X1=A2,X2=A3,...,Xm=A1とする。
......
V[ti]=m-1 mod mならば X1=A(m-1),X2=Am,...,Xm=A(m-2)とする。
【0030】
V[ti]−V[0]が正の場合
V[ti]=0 mod mならば X1=Am,X2=A(m-1),...,Xm=A1とする。
V[ti]=1 mod mならば X1=A1,X2=Am,...,Xm=A2とする。
V[ti]=2 mod mならば X1=A2,X2=A1,...,Xm=A3とする。
......
V[ti]=m-1 mod mならば X1=A(m-1),X2=A(m-2),...,Xm=Amとする。
【0031】
一方、|V[ci]−V[0]|の方が小さい場合はk=|V[ci]−V[0]|−[|V[ci]−V[0]|÷m]−2とおく。j,j',j'',j'''は、1≦j,j',j'',j'''≦m,j=k mod m,J’=k+1 mod m,J''=k+2 mod m,J'''=k+3 mod mで決まる値である。また、X1,X2,X3,...,XmはV[ci]−V[0]が正か負かに応じて以下のように定義される。
【0032】
V[ci]−V[0]が負の場合
V[ci]=0 mod mならば X1=Am,X2=A1,...,Xm=A(m-1)とする。
V[ci]=1 mod mならば X1=A1,X2=A2,...,Xm=Amとする。
V[ci]=2 mod mならば X1=A2,X2=A3,...,Xm=A1とする。
......
V[ci]=m-1 mod mならば X1=A(m-1),X2=Am,...,Xm=A(m-2)とする。
【0033】
V[ci]−V[0]が正の場合
V[ci]=0 mod mならば X1=Am,X2=A(m-1),...,Xm=A1とする。
V[ci]=1 mod mならば X1=A1,X2=Am,...,Xm=A2とする。
V[ci]=2 mod mならば X1=A2,X2=A1,...,Xm=A3とする。
......
V[ci]=m-1 mod mならば X1=A(m-1),X2=A(m-2),...,Xm=Amとする。
G0を以下のように定義する。
【0034】
k≦0の場合、
G0=[X1,X2,X3]
1≦kの場合、
G0=[X1,X2][X2,X3]...[Xm,X1][X1,X2]...[Xj,Xj'][Xj',Xj'',Xj''']
このG0によって、G’G0が定義できる。ここで、G’G0はアルゴリズムG’の後にアルゴリズムG0を実行するアルゴリズムの意味である。以後G’G0のことをG’と記述する(メモリ上では、配列G’のあとにG0を追記する)。G0はスワップと制御スワップの列S1S2...Stで記述されている。現在得られているVからVG0を以下のように帰納的に定義する。
【0035】
S=[Aj,Aj']かつ、
V[s]=j mod mならば、 VS[s]=V[s]+(j'-j)
V[s]=j' mod mならば、 VS[s]=V[s]+(j-j')
S=[Aj,Aj',Aj'']かつ、
V[0]=j'' mod m かつ V[s]=V[0]+(j'-j'')ならば、
VS[s]=V[0]+(j-j'')
V[0]=j'' mod m かつ V[s]=V[0]+(j-j'')ならば、
VS[s]=V[0]+(j'-j'')
それ以外のすべての場合、
VS[s]=V[s]
ここで、S=S1,...,Stである。
以後、VG0のことをVと記述する(すなわち、メモリ上のVの配列の値をVG0の値でオーバーライトする)。
【0036】
ステップ5. 量子アルゴリズムG1の定義
量子アルゴリズムG1を以下のように定義し、G’=G’G1とする。
【0037】
|V[ci]−V[0]|の値が1のとき、G1はφ(空集合)である。それ以外のとき、k=|V[ci]−V[0]|−[|V[ci]−V[0]|÷m]−1とおき、
G1=[X1,X2][X2,X3]...[Xm,X1][X1,X2]...[Xj,Xj']
と定義する。ここで、j,j'は、1≦j,j'≦m,j=k mod m,J’=k+1 mod mで決まる値である。また、X1,X2,X3,...,Xmは以下のように定義される。
【0038】
V[ci]−V[0]が負の場合
V[ci]=0 mod mの場合 X1=Am,X2=A1,...,Xm=A(m-1)とする。
V[ci]=1 mod mの場合 X1=A1,X2=A2,...,Xm=Amとする。
V[ci]=2 mod mの場合 X1=A2,X2=A3,...,Xm=A1とする。
......
V[ci]=m-1 mod mの場合 X1=A(m-1),X2=Am,...,Xm=A(m-2)とする。
【0039】
V[ci]−V[0]が正の場合
V[ci]=0 mod mの場合 X1=Am,X2=A(m-1),...,Xm=A1とする。
V[ci]=1 mod mの場合 X1=A1,X2=Am,...,Xm=A2とする。
V[ci]=2 mod mの場合 X1=A2,X2=A1,...,Xm=A3とする。
......
V[ci]=m-1 mod mの場合 X1=A(m-1),X2=A(m-2),...,Xm=Amとする。
また、このアルゴリズムG1にしたがって、VG0と同様にVG1が定義できる。VG1を以後Vと記述する。
【0040】
ステップ6. 量子アルゴリズムG2の定義
量子アルゴリズムG2を以下のように定義し、G’=G’G2とする。
【0041】
|V[ti]−V[0]|の値が1の時は、G2はφ(空集合)である。それ以外のときは、k=|V[ti]−V[0]|−[|V[ti]−V[0]|÷m]−1とおき、
G2=[X1,X2][X2,X3]...[Xm,X1][X1,X2]...[Xj,Xj']
と定義する。ここで、j,j'は、1≦j,j'≦m,j=k mod m,J’=k+1 mod mで決まる値である。また、X1,X2,X3,...,Xmは以下のように定義される。
【0042】
V[ti]−V[0]が負の場合
V[ti]=0 mod mの場合 X1=Am,X2=A1,...,Xm=A(m-1)とする。
V[ti]=1 mod mの場合 X1=A1,X2=A2,...,Xm=Amとする。
V[ti]=2 mod mの場合 X1=A2,X2=A3,...,Xm=A1とする。
......
V[ti]=m-1 mod mの場合 X1=A(m-1),X2=Am,...,Xm=A(m-2)とする。
【0043】
V[ti]−V[0]が正の場合
V[ti]=0 mod mの場合 X1=Am,X2=A(m-1),...,Xm=A1とする。
V[ti]=1 mod mの場合 X1=A1,X2=Am,...,Xm=A2とする。
V[ti]=2 mod mの場合 X1=A2,X2=A1,...,Xm=A3とする。
......
V[ti]=m-1 mod mの場合 X1=A(m-1),X2=A(m-2),...,Xm=Amとする。
また、このアルゴリズムG2にしたがって、VG0と同様にVG2が定義できる。VG2を以後Vと記述する。
【0044】
ステップ7. 量子アルゴリズムG3の定義
G3を次のように定義し、G'=G'G3とする。
V[ci],V[0]≦V[ti]の場合
G3=[X3,X2](X2,X1,X3)
ただし、
V[ti]=0 mod mの場合 X1=A(m-2),X2=A(m-1),X3=Amとする。
V[ti]=1 mod mの場合 X1=A(m-1),X2=Am,X3=A1とする。
V[ti]=2 mod mの場合 X1=Am,X2=A1,X3=A2とする。
......
V[ti]=m-1 mod mの場合 X1=A(m-3),X2=A(m-2),X3=A(m-1)とする。
V[ti]≦V[ci],V[0]の場合
G3=[X1,X2](X2,X1,X3)
ただし、
V[ti]=0 mod mの場合 X1=Am,X2=A1,X3=A2とする。
V[ti]=1 mod mの場合 X1=A1,X2=A2,X3=A3とする。
V[ti]=2 mod mの場合 X1=A2,X2=A3,X3=A4とする。
......
V[ti]=m-1 mod mの場合 X1=A(m-1),X2=Am,X3=A1とする。
それ以外の場合
G3=(X2,X1,X3)
ただし、
V[ti]=0 mod mの場合 X1=A(m-1),X2=Am,X3=A1とする。
V[ti]=1 mod mの場合 X1=Am,X2=A1,X3=A2とする。
V[ti]=2 mod mの場合 X1=A1,X2=A2,X3=A3とする。
......
V[ti]=m-1 mod mの場合 X1=A(m-2),X2=A(m-1),X3=Amとする。
また、このアルゴリズムG3にしたがって、VG0と同様にVG3が定義できる。VG3を以後Vと記述する。
【0045】
ステップ8. iをインクリメント
ステップ9. 条件分岐
i>dならば、G’とVを出力し、アルゴリズムを終了する。i≦dならば、ステップ3に戻る。
【0046】
sをnビットの任意の自然数とし、iを整数とする。sのiビット目をs(i)と表記する。tを整数から{0,1}への関数で
t(0)=1,
t([i+(i÷m)])=s(i-1)、ここでi=1,2,...,n
それ以外のすべての場合についてt(j)=0
と定義する。循環配列型量子コンピュータを構成するAmの中から適当なキュービットを一つ選びそれを0番目、その隣のA1を1番目等とすべてのキュービットに整数を割り当てる。i番目のキュービットに初期値t(i)を入力したときの、循環配列型量子アルゴリズムG’による計算結果をG'(t)とする。
【0047】
本発明により出力されるG'およびVと、元の量子アルゴリズムgとの間で次のような関係式が成り立つことがわかる。
【0048】
g(s)のi−1番目のビット=G'(t)のV[i]番目のビットここで、i=1,2,...,nである。このため、従来の制御NOTで記述された量子アルゴリズムgでg(s)を計算する代わりに、本発明によって得られたG'とVを循環型量子コンピュータ上で実行し、G'(t)を観測すれば、望んだ計算結果が得られる。
【0049】
計算の具体例
具体的な計算例を示すために、g=(6,2)(1,5)の量子アルゴリズムを、m=3の循環配列型量子コンピュータ用のアルゴリズムに変換する計算を示す。この場合、入力キュービット数が6なので、n=6である。もちろん、入力がこの例の場合に限るわけではない。
【0050】
ステップ1. 定義により、V[0]=0,V[1]=1,V[2]=2,V[3]=4,V[4]=5,V[5]=7,V[6]=8である。出力用の変数G’を初期化し、G’=φ(空集合)とする。
【0051】
ステップ3. 最初のゲートは(t1,c1)=(6,2)であるから、V[0]=0,V[t1]=8,V[c1]=2である。|V[ti]−V[c1]|=6で3の倍数であるから、ステップ4を実行する。
【0052】
ステップ4. |V[c1]−V[0]|=2、|V[ti]−V[0]|=8なので、小さいほうは前者である。定義によりk=0である。V[c1]−V[0]が正であり、V[c1]=2 mod 3なので、X1=A2,X2=A1,X3=A3である。したがって、G0=[A2,A1,A3]である。G’は空集合なので、G’G0=[A2,A1,A3]である。以下、G’G0をG’とする。すなわち、G’=[A2,A1,A3]である。
V[0]=0なので、V[0]=0 mod 3である。したがって、S=[A2,A1,A3]とすると、V[1]=1よりVS[1]=2、かつV[2]=2より、VS[2]=1である。sが1と2以外の場合は、すべてVS[s]=V[s]である。以下、VSをVとする。具体的に書くと、V[0]=0,V[1]=2,V[2]=1,V[3]=4,V[4]=5,V[5]=7,V[6]=8である。
【0053】
ステップ5. V[0]=0,V[c1]=1より、|V[c1]−V[0]|=1なので、G1はφ(空集合)である。したがって、G’G1はG’=[A2,A1,A3]に等しい。この場合、Vも変化しない。
【0054】
ステップ6. V[0]=0,V[t1]=8より、|V[t1]−V[0]|=8なので、k=5,j=2,j’=3である。V[t1]=2 mod 3より、X1=A2,X2=A1,X3=A3である。したがって、G1=[A2,A1][A1,A3][A3,A2][A2,A1][A1,A3]である。ゆえに、G’G1は[A2,A1,A3][A2,A1][A1,A3][A3,A2][A2,A1][A1,A3]である。以後、G’G1をG’とする。S1=[A2,A1],S2=[A1,A3],S3=[A3,A2]とすると、G1=S1S2S3S1S2であるから、順に計算すると、VS1[0]=0,VS1[1]=1,VS1[2]=2,VS1[3]=5,VS1[4]=4,VS1[5]=8,VS1[6]=7、
VS1S2[0]=1,VS1S2[1]=0,VS1S2[2]=2,VS1S2[3]=5,VS1S2[4]=3,VS1S2[5]=8,VS1S2[6]=6、
VS1S2S3[0]=1,VS1S2S3[1]=−1,VS1S2S3[2]=3,VS1S2S3[3]=6,VS1S2S3[4]=2,VS1S2S3[5]=9,VS1S2S3[6]=5、
VS1S2S3S1[0]=2,VS1S2S3S1[1]=−2,VS1S2S3S1[2]=3,VS1S2S3S1[3]=6,VS1S2S3S1[4]=1,VS1S2S3S1[5]=9,VS1S2S3S1[6]=4である。したがって、VG1[0]=2,VG1[1]=−3,VG1[2]=4,VG1[3]=7,VG1[4]=0,VG1[5]=10,VG1[6]=3である。VG1を今後Vと書く。
【0055】
ステップ7. V[c1]=4,V[t1]=3,V[0]=2であるから、その他の場合に相当する。定義により、X1=A2,X2=A3,X3=A1であり、G3=(A3,A2,A1)である。ゆえに、G’G3は[A2,A1,A3][A2,A1][A1,A3][A3,A2][A2,A1][A1,A3](A3,A2,A1)である。以後、G’G3をG’とする。G3によって、Vは変化しない。
【0056】
ステップ8. i=2
ステップ9. i=dであるから、ステップ3にもどる。
【0057】
ステップ3. 次のゲートは(t2,c2)=(1,5)であるから、V[0]=2,V[t2]=−3,V[c2]=10である。|V[t2]−V[c2]|=13で3の倍数ではないので、ステップ5を実行する。
【0058】
ステップ5. |V[c2]−V[0]|=8なので、k=5,j=2,J’=3である。また、V[c2]=1 mod 3より、X1=A1,X2=A3,X3=A2である。したがって、G1=[A1,A3][A3,A2][A2,A1][A1,A3][A3,A2]である。G’G1は[A2,A1,A3][A2,A1][A1,A3][A3,A2][A2,A1][A1,A3](A3,A2,A1)[A1,A3][A3,A2][A2,A1][A1,A3][A3,A2]である。以後、G’G1をG’とする。VG1を計算すると、VG1[0]=4,VG1[1]=0,VG1[2]=−1,VG1[3]=2,VG1[4]=3,VG1[5]=5,VG1[6]=6である。このVG1をVとする。
【0059】
ステップ6. |V[t2]−V[0]|=4なので、k=2,j=2,J’=3である。また、V[t2]=0 mod 3より、Z1=A3,Z2=A1,Z3=A2である。したがって、G2=[A3,A1][A1,A2]である。ゆえに、G’G2は[A2,A1,A3][A2,A1][A1,A3][A3,A2][A2,A1][A1,A3](A3,A2,A1)[A1,A3][A3,A2][A2,A1][A1,A3][A3,A2][A3,A1][A1,A2]である。以後、G’G2をG’とする。VG2を計算すると、VG2[0]=3,VG2[1]=2,VG2[2]=−2,VG2[3]=1,VG2[4]=5,VG2[5]=4,VG2[6]=8である。このVG2をVとする。
【0060】
ステップ7. V[c2]=4,V[t2]=2,V[0]=3であるから、V[t2]≦V[c2],V[n]の場合に相当する。定義により、X1=A2,X2=A3,X3=A1であり、G3=[A2,A3](A3,A2,A1)である。G’G3は[A2,A1,A3][A2,A1][A1,A3][A3,A2][A2,A1][A1,A3](A3,A2,A1)[A1,A3][A3,A2][A2,A1][A1,A3][A3,A2][A3,A1][A1,A2][A2,A3](A3,A2,A1)である。以後、G’G3をG’とする。VG3を計算すると、VG3[0]=2,VG3[1]=3,VG3[2]=−3,VG3[3]=1,VG3[4]=6,VG3[5]=4,VG3[6]=9である。このVG3をVとする。
【0061】
ステップ8. i=3
ステップ9. i>dなので、G’とVを出力し、アルゴリズムを終了する。
【0062】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【0063】
図2は本発明の一実施形態の量子コンピュータアルゴリズム変換装置の構成図である。
【0064】
本実施形態の量子コンピュータアルゴリズム変換装置は演算部11と記憶部12からなり、記憶部12は入力アルゴリズム記憶部13と出力アルゴリズム記憶部14と変数名配列記憶部15からなる。演算部11は図2に示すように入力部20とそれぞれ図3中のステップ11〜17の処理を行う初期化部21、処理判定部22、処理部23,24,25、26、終了判定・出力部27からなっている。
【0065】
量子アルゴリズムが入力部20により本装置に入力され、入力アルゴリズム記憶部13に格納される。次に、初期化部21で出力アルゴリズム記憶部14と変数名配列記憶部15が初期化される。その後、入力アルゴリズムに応じて処理判定部22から演算部26の処理が繰り返される。この間、出力アルゴリズム記憶部14と変数名配列記憶部15はステップごとに更新される。最後に、終了判定・出力部27から出力アルゴリズム記憶部14と変数名記憶部15の内容が計算結果として出力される。
【0066】
なお、本発明の量子コンピュータアルゴリズム変換方法は専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、CD−ROM等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの(伝送媒体もしくは伝送波)、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【0067】
【発明の効果】
以上説明したように、本発明によれば、循環配列型量子コンピュータ用の量子アルゴリズムを直接記述する必要がなく、通常の量子アルゴリズムを記述すれば機械がこれを循環配列型量子コンピュータ用の量子アルゴリズムに自動的に変換してくれることになるため(たとえば、図5で示したアルゴリズムを人手で書く代わりに、図4で示したアルゴリズムを書けばよい)、アルゴリズムの製造効率が飛躍的に増大する。
【図面の簡単な説明】
【図1】本発明の量子コンピュータアルゴリズム変換方法を示すフローチャートである。
【図2】本発明の一実施形態の量子コンピュータアルゴリズム変換装置の構成図である。
【図3】図2の演算部11の構成図である。
【図4】アルゴリズムの図による表現を示す図である。
【図5】入力量子アルゴリズムの例とその図による表現を示す図である。
【図6】出力量子アルゴリズムの例とその図による表現を示す図である。
【符号の説明】
1〜9 ステップ
11 演算部
12 記憶部
13 入力アルゴリズム記憶部
14 出力アルゴリズム記憶部
15 変数名配列記憶部
20 入力部
21 初期化部
22 処理判定部
23〜26 処理部
27 終了判定・出力部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method and apparatus for converting a quantum algorithm into an algorithm for a circular array type quantum computer.
[0002]
[Prior art]
Computers called “quantum computers” have been proposed that can solve problems much faster in principle than computers that are widely used today. Using the quantum superposition state, a phenomenon peculiar to the quantum world, expands the bit (unit expressing 0 or 1) in a classical computer and expresses 0 and 1 superposition in addition to 0 and 1 Is possible. Such an extended concept of bits is called a qubit, and a quantum computer is realized by a qubit operation. Since realization of quantum computers enables much faster computations than current computers for problems such as factorization, many research institutions around the world are developing them.
[0003]
Research on quantum computers is currently underway in two main directions. One is the development of quantum gates, which are the basic elements for performing quantum computer operations. The second is research on algorithms for quantum computers that operate when quantum gates are realized.
[0004]
The basic operations realized by quantum gates are expected to be completely different from those possible with conventional computers. Although it is desirable that the quantum algorithm is researched based on the basic operation of the developed quantum gate, the quantum gate is not developed yet, so the algorithm is studied based on the basic operation that seems to be valid at present. . As a basic operation, an operation called control NOT is often used.
[0005]
[Non-Patent Document 1]
S. Lloyd, "Science" 261, pp. 1569-1571 (1993)
[Non-Patent Document 2]
S. Lloyd, `` Programming Pulse Driven Quantum Computers, Technical Report '' http://arXiv.org/abs/quant-ph/9912086, LANL e-print, 1999.
[0006]
[Problems to be solved by the invention]
Unfortunately, the fact that quantum gates are not actually developed is not exactly what the basic operations on qubits will look like. The basic operation depends on the qubit implementation method, and a plurality of qubit implementation methods are currently proposed. Among these methods, the most promising method is the realization method using the nuclear spin of atoms. In this method, quantum operations are realized by using nuclear magnetic interaction between adjacent qubits. Furthermore, since the types of atoms suitable for such a method are limited, when a large-scale quantum computer is manufactured, there is a high possibility that the quantum computer has the same type of atoms repeatedly arranged. In such a quantum computer, operations between qubits at distant positions are virtually impossible, and it is almost impossible to execute the quantum algorithm described in the control NOT as it is.
[0007]
Therefore, it becomes necessary to convert the quantum algorithm described in the control NOT into a quantum algorithm suitable for such a quantum computer. Although conversion loss is also expected to occur due to conversion, such a conversion device is considered to be indispensable in quantum computers as well as a compiler that translates human-readable programs into machine language on conventional computers. It is done.
[0008]
S. In Lloyd, three types of qubits A, B, and C are like “... -A-B-C-A-B-C-A-B-C-A-B-C-. It has been shown that pool calculation can be performed using only operations between adjacent qubits on a repetitively arranged quantum computer (see Non-Patent
[0009]
An object of the present invention is to express a quantum algorithm described using control NOT as "Am-A1 -...- Am-A1 -...- Am-A1 -...- Am". It is an object of the present invention to provide a method and an apparatus for converting into an algorithm for a quantum computer (hereinafter referred to as a “circular array type quantum computer”) in which a certain qubit array “−A1-.
[0010]
[Means for Solving the Problems]
The present invention solves the above problem by replacing each operation of a given control NOT with a sequence of operations for a circular array type quantum computer.
[0011]
Definition of concepts necessary for algorithm description
First, a quantum algorithm is defined.
[0012]
Quantum algorithm
The concept of a quantum computer corresponding to a bit in a classical computer is called a qubit. Each qubit holds bit information of 1, 0, or an extension thereof (corresponding to a superposition of 1 and 0) in a classical computer. A quantum computer is composed of a finite number of qubits. Calculating with a quantum computer means giving each qubit an initial value, manipulating them, manipulating the bit information held by the qubit, and finally observing and extracting these bit information. To do. A series of operations on bit information performed on qubits is called a quantum algorithm. If the basic unit of operation performed on the qubit is defined, the quantum algorithm is described by this sequence of basic operations. In general, in a quantum algorithm, only the following operations are allowed on qubits.
[0013]
When the value of one qubit (assuming i) is 1 with respect to the control NOT 2 qubits i and j, the value of j is inverted (0 is changed to 1 or 1 is changed to 0), and i When the value of is 0, nothing is done. The qubit i is called a control bit, and the qubit j is called a target bit. This control NOT is expressed as (j, i).
The control NOT is illustrated as shown in FIG. The quantum algorithm is expressed by a sequence of control NOT. FIG. 5 is an example of the quantum algorithm (6, 2) (1, 5).
[0014]
Algorithms for circular array quantum computers
In the circular array type quantum computer, m types of qubits are formed by repeating the array "-A1-A2-... -Am-", and control NOT and control control NOT operations are performed only between adjacent qubits. It is a possible quantum computer. When qubits are realized by atomic nuclear spins, the interaction between qubits becomes very small, making it difficult to implement a normal quantum algorithm model as it is. The circular array type quantum computer is a model that is closer to reality than the model of a conventional quantum computer.
[0015]
There are two types of operation of qubits in a circular array type quantum computer: control NOT and control control NOT. The same operation is performed on the same kind of qubit array in one operation. Set the qubit types to A1, A2,. . . , Am.
[0016]
Control NOT Between two adjacent qubits (Ai and A (i + 1) or Am and A1), when the value of one (for example, Ai in Ai and A (i + 1), called control bit) is 1, the other bit An operation that inverts (called the target bit) and does nothing when it is 0. When the control bit is A and the target bit is B, the control NOT operation is expressed as (B, A).
[0017]
Control control NOT Between three adjacent qubits (Ai, A (i + 1), A (i + 2) or A (m-1), Am, A1 or Am, A1, A2), both ends (for example, Ai, A (i + 1) , A (i + 2) Ai and A (i + 2) (referred to as control bits) are both 1's, the bits between them (called target bits) are inverted, otherwise An operation that does nothing. When the control bits are A1 and A2 and the target bit is B, the control NOT operation is expressed as (B, A1, A2).
Symbols of these operations are shown in FIGS. 4 (b) and 4 (c).
[0018]
By combining the control NOT and the control control NOT, the following two types of operations can be made.
[0019]
Swap Operation to swap values between two adjacent qubits (Ai and A (i + 1) or Am and A1). When the two qubits are A and B, this operation is expressed as [A, B]. [A, B] is an abbreviation for (A, B) (B, A) (A, B).
[0020]
Control swap between adjacent 3 qubits (Ai, A (i + 1), A (i + 2) or A (m-1), Am, A1 or Am, A1, A2) at the end (eg Ai, A (i + 1), When the value of Ai (referred to as a control bit in A (i + 2)) is 1, the value of the remaining bits is replaced, and otherwise, nothing is performed. When 3 qubits are A, B, and C and A is a control bit, it is expressed as [C, B, A]. This is an abbreviation for (C, B) (B, A, C) (C, B).
[0021]
An input quantum algorithm consisting of a series of control NOTsg=g1g2. . .gLet d. For all i (1 ≦ i ≦ d)gi isgIt can be expressed as i = (ti, ci). The number of qubits in this quantum algorithm is n. That is, for all i, 0 ≦ ti, ci <n. Further, the number of types of qubits in the circular quantum computer is m.
[0022]
Variable for storing output algorithm is G ′, n + 1 variablesNameV is a variable name storage array for storing. The j-th element of V is denoted as V [j].
[0023]
Less than,gEach quantum gateg1,g2,. . . ,gd from the frontZA method of obtaining a quantum algorithm for a circular array type quantum computer will be described with reference to FIG.
[0024]
The initial value of V is V [0] = 0, s = 1,. . . , N
V [s] = [s + ((s-1) ÷ (m-1))]
And Here, [t] is the maximum integer not exceeding t (that is, [] is a Gaussian symbol). The initial value of G ′ is φ (empty set). The initial value of the variable i, which means the quantum gate number, is set to 1, and the following loop is executed from i = 1 to d.
[0025]
[0026]
Control NOT gategLet i be (ti, ci). If | V [ti] -V [ci] | is not a multiple of m, the information held by the V [ti], V [ci], and V [0] -th qubits using the swap operation is the adjacent qubit. (
[0027]
Hereinafter, the quantum algorithm G0 is defined. Also, V is changed based on G0. K, j, j ′, j ″, j ′ ″ and X1, X2, X3,. . . , Xm is defined as follows.
[0028]
Select the smaller of | V [ti] −V [0] | or | V [ci] −V [0] |. When | V [ti] −V [0] | is smaller, k = | V [ti] −V [0] | − [| V [ti] −V [0] | ÷ m] −2. . j, j ′, j ″, j ′ ″ are 1 ≦ j, j ′, j ″, j ′ ″ ≦ m, j = k mod m, J ′ = k + 1 mod m, J ″ = This is a value determined by k + 2 mod m, J ′ ″ = k + 3 mod m. X1, X2, X3,. . . , Xm is defined as follows depending on whether V [ti] -V [0] is positive or negative.
[0029]
When V [ti] -V [0] is negative
If V [ti] = 0 mod m, X1 = Am, X2 = A1,..., Xm = A (m-1).
If V [ti] = 1 mod m, X1 = A1, X2 = A2, ..., Xm = Am.
If V [ti] = 2 mod m, X1 = A2, X2 = A3, ..., Xm = A1.
...
If V [ti] = m-1 mod m, X1 = A (m-1), X2 = Am, ..., Xm = A (m-2).
[0030]
When V [ti] -V [0] is positive
If V [ti] = 0 mod m, X1 = Am, X2 = A (m-1), ..., Xm = A1.
If V [ti] = 1 mod m, X1 = A1, X2 = Am, ..., Xm = A2.
If V [ti] = 2 mod m, X1 = A2, X2 = A1, ..., Xm = A3.
...
If V [ti] = m-1 mod m, then X1 = A (m-1), X2 = A (m-2), ..., Xm = Am.
[0031]
On the other hand, when | V [ci] −V [0] | is smaller, k = | V [ci] −V [0] | − [| V [ci] −V [0] | ÷ m] −2 far. j, j ′, j ″, j ′ ″ are 1 ≦ j, j ′, j ″, j ′ ″ ≦ m, j = k mod m, J ′ = k + 1 mod m, J ″ = This is a value determined by k + 2 mod m, J ′ ″ = k + 3 mod m. X1, X2, X3,. . . , Xm is defined as follows depending on whether V [ci] -V [0] is positive or negative.
[0032]
When V [ci] -V [0] is negative
If V [ci] = 0 mod m, X1 = Am, X2 = A1,..., Xm = A (m-1).
If V [ci] = 1 mod m, X1 = A1, X2 = A2, ..., Xm = Am.
If V [ci] = 2 mod m, X1 = A2, X2 = A3, ..., Xm = A1.
...
If V [ci] = m-1 mod m, then X1 = A (m-1), X2 = Am, ..., Xm = A (m-2).
[0033]
When V [ci] -V [0] is positive
If V [ci] = 0 mod m, X1 = Am, X2 = A (m-1), ..., Xm = A1.
If V [ci] = 1 mod m, X1 = A1, X2 = Am, ..., Xm = A2.
If V [ci] = 2 mod m, X1 = A2, X2 = A1, ..., Xm = A3.
...
If V [ci] = m-1 mod m, then X1 = A (m-1), X2 = A (m-2), ..., Xm = Am.
G0 is defined as follows.
[0034]
If k ≦ 0,
G0 = [X1, X2, X3]
If 1 ≦ k,
G0 = [X1, X2] [X2, X3] ... [Xm, X1] [X1, X2] ... [Xj, Xj '] [Xj', Xj '', Xj '' ']
G'G0 can be defined by this G0. Here, G′G0 means an algorithm for executing the algorithm G0 after the algorithm G ′. Hereinafter, G′G0 is described as G ′ (in the memory, G0 is added after the array G ′). G0 is a column of swap and control swap S1S2. . . It is described by St. VG0 is recursively defined as follows from V currently obtained.
[0035]
S = [Aj, Aj ′] and
If V [s] = j mod m, then VS [s] = V [s] + (j'-j)
If V [s] = j 'mod m, then VS [s] = V [s] + (j-j')
S = [Aj, Aj ′, Aj ″] and
If V [0] = j '' mod m and V [s] = V [0] + (j'-j '')
VS [s] = V [0] + (j-j '')
If V [0] = j '' mod m and V [s] = V [0] + (j-j '')
VS [s] = V [0] + (j'-j '')
In all other cases,
VS [s] = V [s]
Here, S = S1,. . . , St.
Hereinafter, VG0 is described as V (that is, the value of the array of V on the memory is overwritten with the value of VG0).
[0036]
The quantum algorithm G1 is defined as follows, and G ′ = G′G1.
[0037]
When the value of | V [ci] −V [0] | is 1, G1 is φ (empty set). Otherwise, k = | V [ci] −V [0] | − [| V [ci] −V [0] | ÷ m] −1
G1 = [X1, X2] [X2, X3] ... [Xm, X1] [X1, X2] ... [Xj, Xj ']
It is defined as Here, j and j ′ are values determined by 1 ≦ j, j ′ ≦ m, j = k mod m, and J ′ = k + 1 mod m. X1, X2, X3,. . . , Xm are defined as follows.
[0038]
When V [ci] -V [0] is negative
When V [ci] = 0 mod m, X1 = Am, X2 = A1,..., Xm = A (m-1).
When V [ci] = 1 mod m, X1 = A1, X2 = A2, ..., Xm = Am.
When V [ci] = 2 mod m, X1 = A2, X2 = A3,..., Xm = A1.
...
When V [ci] = m-1 mod m, X1 = A (m-1), X2 = Am,..., Xm = A (m-2).
[0039]
When V [ci] -V [0] is positive
When V [ci] = 0 mod m, X1 = Am, X2 = A (m−1),..., Xm = A1.
When V [ci] = 1 mod m, X1 = A1, X2 = Am,..., Xm = A2.
When V [ci] = 2 mod m, X1 = A2, X2 = A1, ..., Xm = A3.
...
When V [ci] = m-1 mod m X1 = A (m-1), X2 = A (m-2), ..., Xm = Am.
Also, according to this algorithm G1,Like VG0VG1 can be defined. Hereinafter, VG1 is described as V.
[0040]
The quantum algorithm G2 is defined as follows, and G ′ = G′G2.
[0041]
When the value of | V [ti] −V [0] | is 1, G2 is φ (empty set). Otherwise, k = | V [ti] −V [0] | − [| V [ti] −V [0] | ÷ m] −1,
G2 = [X1, X2] [X2, X3] ... [Xm, X1] [X1, X2] ... [Xj, Xj ']
It is defined as Here, j and j ′ are values determined by 1 ≦ j, j ′ ≦ m, j = k mod m, and J ′ = k + 1 mod m. X1, X2, X3,. . . , Xm are defined as follows.
[0042]
When V [ti] -V [0] is negative
When V [ti] = 0 mod m, X1 = Am, X2 = A1,..., Xm = A (m-1).
When V [ti] = 1 mod m, X1 = A1, X2 = A2, ..., Xm = Am.
When V [ti] = 2 mod m, X1 = A2, X2 = A3, ..., Xm = A1.
...
When V [ti] = m-1 mod m, X1 = A (m-1), X2 = Am,..., Xm = A (m-2).
[0043]
When V [ti] -V [0] is positive
When V [ti] = 0 mod m, X1 = Am, X2 = A (m−1),..., Xm = A1.
When V [ti] = 1 mod m, X1 = A1, X2 = Am,..., Xm = A2.
When V [ti] = 2 mod m, X1 = A2, X2 = A1,..., Xm = A3.
...
When V [ti] = m-1 mod m, X1 = A (m-1), X2 = A (m-2), ..., Xm = Am.
Also, according to this algorithm G2,Like VG0VG2 can be defined. Hereinafter, VG2 is described as V.
[0044]
Step 7. Definition of quantum algorithm G3
G3 is defined as follows, and G ′ = G′G3.
When V [ci], V [0] ≦ V [ti]
G3 = [X3, X2] (X2, X1, X3)
However,
When V [ti] = 0 mod m, X1 = A (m-2), X2 = A (m-1), and X3 = Am.
When V [ti] = 1 mod m, X1 = A (m−1), X2 = Am, and X3 = A1.
When V [ti] = 2 mod m, X1 = Am, X2 = A1, X3 = A2.
...
When V [ti] = m−1 mod m, X1 = A (m−3), X2 = A (m−2), and X3 = A (m−1).
When V [ti] ≦ V [ci], V [0]
G3 = [X1, X2] (X2, X1, X3)
However,
When V [ti] = 0 mod m X1 = Am, X2 = A1, X3 = A2.
When V [ti] = 1 mod m, X1 = A1, X2 = A2, X3 = A3.
When V [ti] = 2 mod m, X1 = A2, X2 = A3, X3 = A4.
...
When V [ti] = m−1 mod m, X1 = A (m−1), X2 = Am, and X3 = A1.
Otherwise
G3 = (X2, X1, X3)
However,
When V [ti] = 0 mod m, X1 = A (m-1), X2 = Am, X3 = A1.
When V [ti] = 1 mod m, X1 = Am, X2 = A1, X3 = A2.
When V [ti] = 2 mod m X1 = A1, X2 = A2, X3 = A3.
...
When V [ti] = m−1 mod m, X1 = A (m−2), X2 = A (m−1), and X3 = Am.
Also, according to this algorithm G3,Like VG0VG3 can be defined. Hereinafter, VG3 is described as V.
[0045]
Step 8. increment i
If i> d, G ′ and V are output and the algorithm is terminated. If i ≦ d, return to
[0046]
Let s be an arbitrary natural number of n bits, and i be an integer. The i-th bit of s is expressed as s (i). t is a function from integer to {0,1}
t (0) = 1,
t ([i + (i ÷ m)]) = s (i−1), where i = 1, 2,..., n
T (j) = 0 for all other cases
It is defined as One suitable qubit is selected from Am constituting the circular array type quantum computer, and an integer is assigned to all qubits, such as 0th, A1 next to it, and the like. Let G ′ (t) be the calculation result of the circular array type quantum algorithm G ′ when the initial value t (i) is input to the i-th qubit.
[0047]
G ′ and V output by the present invention and the original quantum algorithmgIt can be seen that the following relational expression holds between
[0048]
gI−1th bit of (s) = V [i] th bit of G ′ (t) where i = 1, 2,. . . , N. For this reason, the quantum algorithm described in the conventional control NOTgsogInstead of calculating (s), if G ′ and V obtained by the present invention are executed on a cyclic quantum computer and G ′ (t) is observed, the desired calculation result can be obtained.
[0049]
Example of calculation
To show a specific calculation example,g= (6,2) shows a calculation for converting a quantum algorithm of (1,5) into an algorithm for a circular array type quantum computer of m = 3. In this case, since the number of input qubits is 6, n = 6. Of course, the input is not limited to this example.
[0050]
[0051]
[0052]
Since V [0] = 0, V [0] = 0
[0053]
[0054]
VS1S2 [0] = 1, VS1S2 [1] = 0, VS1S2 [2] = 2, VS1S2 [3] = 5, VS1S2 [4] = 3, VS1S2 [5] = 8, VS1S2 [6] = 6,
VS1S2S3 [0] = 1, VS1S2S3 [1] =-1, VS1S2S3 [2] = 3, VS1S2S3 [3] = 6, VS1S2S3 [4] = 2, VS1S2S3 [5] = 9, VS1S2S3 [6] = 5,
VS1S2S3S1 [0] = 2, VS1S2S3S1 [1] =-2, VS1S2S3S1 [2] = 3, VS1S2S3S1 [3] = 6, VS1S2S3S1 [4] = 1, VS1S2S3S1 [5] = 9, VS1S2S3S1 [4] is there. Therefore, VG1 [0] = 2, VG1 [1] =-3, VG1 [2] = 4, VG1 [3] = 7, VG1 [4] = 0, VG1 [5] = 10, VG1 [6] = 3. VG1 is written as V in the future.
[0055]
Step 7. Since V [c1] = 4, V [t1] = 3, and V [0] = 2, this corresponds to other cases. By definition, X1 = A2, X2 = A3, X3 = A1, and G3 = (A3, A2, A1). Therefore, G'G3 is [A2, A1, A3] [A2, A1] [A1, A3] [A3, A2] [A2, A1] [A1, A3] (A3, A2, A1). Hereinafter, G′G3 is referred to as G ′. V does not change by G3.
[0056]
Step 8. i = 2
[0057]
[0058]
[0059]
[0060]
Step 7. Since V [c2] = 4, V [t2] = 2, and V [0] = 3, this corresponds to the case of V [t2] ≦ V [c2], V [n]. By definition, X1 = A2, X2 = A3, X3 = A1, and G3 = [A2, A3] (A3, A2, A1). G′G3 is [A2, A1, A3] [A2, A1] [A1, A3] [A3, A2] [A2, A1] [A1, A3] (A3, A2, A1) [A1, A3] [A3 , A2] [A2, A1] [A1, A3] [A3, A2] [A3, A1] [A1, A2] [A2, A3] (A3, A2, A1). Hereinafter, G′G3 is referred to as G ′. When VG3 is calculated, VG3 [0] = 2, VG3 [1] = 3, VG3 [2] =-3, VG3 [3] = 1, VG3 [4] = 6, VG3 [5] = 4, VG3 [ 6] = 9. Let VG3 be V.
[0061]
Step 8. i = 3
[0062]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings.
[0063]
FIG. 2 is a configuration diagram of a quantum computer algorithm conversion apparatus according to an embodiment of the present invention.
[0064]
The quantum computer algorithm conversion apparatus according to the present embodiment includes an
[0065]
The quantum algorithm is input to the apparatus by the
[0066]
The quantum computer algorithm conversion method of the present invention is recorded on a computer-readable recording medium and a program for realizing its function in addition to that realized by dedicated hardware. The program may be read by a computer system and executed. The computer-readable recording medium refers to a recording medium such as a floppy disk, a magneto-optical disk, a CD-ROM, or a storage device such as a hard disk device built in the computer system. Furthermore, a computer-readable recording medium is a server that dynamically holds a program (transmission medium or transmission wave) for a short period of time as in the case of transmitting a program via the Internet, and a server in that case Some of them hold programs for a certain period of time, such as volatile memory inside computer systems.
[0067]
【The invention's effect】
As described above, according to the present invention, it is not necessary to directly describe a quantum algorithm for a circular array type quantum computer, and if a normal quantum algorithm is described, the machine converts this into a quantum algorithm for a circular array type quantum computer. (For example, instead of manually writing the algorithm shown in FIG. 5, the algorithm shown in FIG. 4 may be written instead), the manufacturing efficiency of the algorithm is dramatically increased. .
[Brief description of the drawings]
FIG. 1 is a flowchart showing a quantum computer algorithm conversion method of the present invention.
FIG. 2 is a configuration diagram of a quantum computer algorithm conversion apparatus according to an embodiment of the present invention.
3 is a configuration diagram of a
FIG. 4 is a diagrammatic representation of an algorithm.
FIG. 5 is a diagram showing an example of an input quantum algorithm and its graphical representation.
FIG. 6 is a diagram showing an example of an output quantum algorithm and its representation in the figure.
[Explanation of symbols]
1-9 steps
11 Calculation unit
12 Storage unit
13 Input algorithm storage
14 Output algorithm storage
15 Variable name array storage
20 Input section
21 Initialization section
22 Process determination unit
23 to 26 processing section
27 End determination / output section
Claims (4)
出力する前記量子アルゴリズムを蓄積する出力アルゴリズム記憶部と、
変数名を記憶する変数名記憶部と、
これらの記憶部との間で情報の書込み・読み出しを行ない、入力された量子アルゴリズムを循環配列型量子コンピュータ用のアルゴリズムに変換し、出力する演算部を有し、
前記演算部は、前記入力量子アルゴリズムをg=g1g2…gdとして、
出力アルゴリズム記憶用の変数G ' と、n(nはキュービット数)+1個の変数名を記憶する変数名記憶配列Vを初期化する第1の手段と、
制御NOTゲートg i を(ti,ci)として、|V[ti]−V[ci]|が循環型量子コンピュータのキュービットの種類数mの倍数かどうか判定する第2の手段と、
|V[ti]−V[ci]|がmの倍数の場合、量子アルゴリズムG0を定義し、G’=G’G0とし、G0に基づいて前記変数名記憶配列Vを変更する第3の手段と、
|V[ti]−V[ci]|がmの倍数でない場合、量子アルゴリズムG1を定義し、G ' =G ' G1とし、G1に基づいて前記変数名記憶配列Vを変更する第4の手段と、
量子アルゴリズムG2を定義し、G ' =G ' G2とし、G2に基づいて前記変数名記憶配列Vを変更する第5の手段と、
量子アルゴリズムG3を定義し、G ' =G ' G3とし、G3に基づいて前記変数名記憶配列Vを変更する第6の手段を有し、
i=1からi=dまでiを1ずつ増やしながら第2から第6の手段を順次実行する、
アルゴリズム変換装置。An input algorithm storage unit that stores an input quantum algorithm that is described using a control NOT and is a series of operations on bit information applied to qubits;
An output algorithm storage section for storing the quantum algorithm that outputs,
A variable name storage unit for storing variable names;
Performs writing and reading of information to and from these storage unit, converts the inputted quantized algorithm algorithm for cycle sequencing quantum computers, have a computing unit for outputting,
The calculation unit sets the input quantum algorithm as g = g1g2... Gd,
A first means for initializing a variable name storage array V for storing an output algorithm storage variable G ′ and n (n is the number of qubits) +1 variable names;
The controlled-NOT gate g i as (ti, ci), | and multiples determining whether the second unit type number m qubit circulation quantum computer, | V [ti] -V [ ci]
When | V [ti] −V [ci] | is a multiple of m, a quantum algorithm G0 is defined, G ′ = G′G0, and a third means for changing the variable name storage array V based on G0 When,
| V [ti] -V [ci ] | if is not a multiple of m, defining the quantum algorithm G1, G '= G' and G1, the fourth means for changing the variable name memory array V based on the G1 When,
Define a quantum algorithm G2, and G '= G' G2, and fifth means for changing the variable name memory array V based on the G2,
Define a quantum algorithm G3, and G '= G' G3, having a sixth means for changing the variable name memory array V based on G3,
The second to sixth means are sequentially executed while increasing i by 1 from i = 1 to i = d.
Algorithm conversion device.
前記演算部が、
出力アルゴリズム記憶用の変数G'と、n(nはキュービット数)+1個の変数名を記憶する変数名記憶配列Vを初期化する第1のステップと、
制御NOTゲートg iを(ti,ci)として、|V[ti]−V[ci]|が循環型量子コンピュータのキュービットの種類数mの倍数かどうか判定する第2のステップと、
|V[ti]−V[ci]|がmの倍数の場合、量子アルゴリズムG0を定義し、G’=G’G0とし、G0に基づいて前記変数名記憶配列Vを変更する第3のステップと、
|V[ti]−V[ci]|がmの倍数でない場合、量子アルゴリズムG1を定義し、G'=G'G1とし、G1に基づいて前記変数名記憶配列Vを変更する第4のステップと、
量子アルゴリズムG2を定義し、G'=G'G2とし、G2に基づいて前記変数名記憶配列Vを変更する第5のステップと、
量子アルゴリズムG3を定義し、G'=G'G3とし、G3に基づいて前記変数名記憶配列Vを変更する第6のステップ
を有し、
i=1からi=dまでiを1ずつ増やしながら第2から第6のステップを順次実行する、
量子コンピュータアルゴリズム変換方法。 An input algorithm storage unit that stores an input quantum algorithm that is described as a series of operations on bit information that is described using control NOT and is applied to a qubit, and an output algorithm storage unit that stores the output quantum algorithm A variable name storage unit that stores variable names, and an operation that writes and reads information between these storage units, converts the input quantum algorithm into an algorithm for a circular array type quantum computer, and outputs it Quantum computer algorithm for converting input quantum algorithm g (= g 1 g 2... G d), which is performed by an algorithm conversion device having a unit and described using control NOT, into an algorithm for circular array type quantum A conversion method,
The computing unit is
A first step of initializing a variable name storage array V for storing an output algorithm storage variable G ′ and n (n is the number of qubits) +1 variable name ;
The controlled-NOT gate g i as (ti, ci), | and multiples if the second step of determining whether the number of types m of the qubit circulation quantum computer, | V [ti] -V [ ci]
When | V [ti] −V [ci] | is a multiple of m, the quantum algorithm G0 is defined, G ′ = G′G0, and the variable name storage array V is changed based on G0. When,
If | V [ti] −V [ci] | is not a multiple of m, the quantum algorithm G1 is defined, G ′ = G′G1, and the variable name storage array V is changed based on G1. When,
Defining a quantum algorithm G2, setting G ′ = G′G2, and changing the variable name storage array V based on G2 ,
Defining a quantum algorithm G3, setting G ′ = G′G3, and changing the variable name storage array V based on G3 ,
The second to sixth steps are sequentially executed while increasing i by 1 from i = 1 to i = d.
Quantum computer algorithm conversion method.
前記演算部が、
出力アルゴリズム記憶用の変数G'と、n(nはキュービット数)+1個の変数名を記憶する変数名記憶配列Vを初期化する第1の手順
を実行し、
制御NOTゲートg iを(ti,ci)として、|V[ti]−V[ci]|が循環型量子コンピュータのキュービットの種類数mの倍数かどうか判定する第2の手順と、
|V[ti]−V[ci]|がmの倍数の場合、量子アルゴリズムG0を定義し、G’=G’G0とし、G0に基づいて前記変数名記憶配列Vを変更する第3の手順と、
|V[ti]−V[ci]|がmの倍数でない場合、量子アルゴリズムG1を定義し、G'=G'G1とし、G1に基づいて前記変数名記憶配列Vを変更する第4の手順と、
量子アルゴリズムG2を定義し、G'=G'G2とし、G2に基づいて前記変数名記憶配列Vを変更する第5の手順と、
量子アルゴリズムG3を定義し、G'=G'G3とし、G3に基づいて前記変数名記憶配列Vを変更する第6の手順と、
をi=1からi=dまでiを1ずつ増やしながら順次実行する、
量子コンピュータアルゴリズム変換プログラム。 The computer is described using a control NOT, accumulates the input algorithm storage section for storing the input quantized algorithm is a series of operations on bit information applied on qubits, the quantum algorithm outputs Information is written to and read from the output algorithm storage unit, variable name storage unit that stores variable names, and these storage units, and the input quantum algorithm is converted into an algorithm for a circular array type quantum computer. , Function as an algorithm conversion device having an arithmetic unit for output, and convert the input quantum algorithm g (= g 1 g 2... G d) described using the control NOT into an algorithm for a circular array type quantum A quantum computer algorithm conversion program,
The computing unit is
First procedure for initializing variable G ′ for storing output algorithm and variable name storage array V that stores n (n is the number of qubits) +1 variable name
Run
The controlled-NOT gate g i as (ti, ci), | a circulation type quantum computer qubit number of types m multiple of determining whether the second procedure, | V [ti] -V [ ci]
When | V [ti] −V [ci] | is a multiple of m, the quantum procedure G0 is defined, G ′ = G′G0, and the variable name storage array V is changed based on G0 When,
If | V [ti] −V [ci] | is not a multiple of m, a quantum algorithm G1 is defined, G ′ = G′G1, and the variable name storage array V is changed based on G1 . Procedure and
Defining a quantum algorithm G2, setting G ′ = G′G2, and changing the variable name storage array V based on G2 ,
A sixth procedure that defines a quantum algorithm G3, sets G ′ = G′G3, and changes the variable name storage array V based on G3 ;
The Do Increase i by 1 to order from the next run from i = 1 to i = d,
Quantum computer algorithm conversion program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002258904A JP3896057B2 (en) | 2002-09-04 | 2002-09-04 | Quantum computer algorithm conversion apparatus and method, quantum computer algorithm conversion program, and recording medium recording the program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002258904A JP3896057B2 (en) | 2002-09-04 | 2002-09-04 | Quantum computer algorithm conversion apparatus and method, quantum computer algorithm conversion program, and recording medium recording the program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004094885A JP2004094885A (en) | 2004-03-25 |
JP3896057B2 true JP3896057B2 (en) | 2007-03-22 |
Family
ID=32063409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002258904A Expired - Fee Related JP3896057B2 (en) | 2002-09-04 | 2002-09-04 | Quantum computer algorithm conversion apparatus and method, quantum computer algorithm conversion program, and recording medium recording the program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3896057B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10706365B2 (en) * | 2018-09-27 | 2020-07-07 | International Business Machines Corporation | Local optimization of quantum circuits |
-
2002
- 2002-09-04 JP JP2002258904A patent/JP3896057B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004094885A (en) | 2004-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zulehner et al. | Advanced simulation of quantum computations | |
WO2020010147A1 (en) | Compressed unsupervised quantum state preparation with quantum autoencoders | |
CN113592093B (en) | Quantum state preparation circuit generation method and device, quantum operation chip and equipment | |
CA3011415A1 (en) | Decoding-based method for quantum circuit optimization | |
JP4718244B2 (en) | Quantum program conversion apparatus, method thereof, program thereof and recording medium | |
WO2020190743A1 (en) | Phase estimation with randomized hamiltonians | |
WO2016194221A1 (en) | Computer | |
CA3109599A1 (en) | Quantum computer with exact compression of quantum states | |
WO2021102344A1 (en) | Quantum algorithm and design for a quantum circuit architecture to simulate interacting fermions | |
CN115169565B (en) | Hamilton quantity simulation method and device of small molecule chemical system | |
JP6757064B2 (en) | Quantum information processing equipment | |
WO2022187503A1 (en) | Classically-boosted variational quantum eigensolver | |
CA3150374A1 (en) | Quantum computer system and method for performing quantum computation with reduced circuit depth | |
WO2021247125A2 (en) | Quantum computing system and method for time evolution of bipartite hamiltonians on a lattice | |
Shepherd et al. | Universally programmable quantum cellular automaton | |
Gadouleau et al. | Memoryless computation: new results, constructions, and extensions | |
CA3204447A1 (en) | Quantum enhanced word embedding for natural language processing | |
Qian et al. | The dilemma of quantum neural networks | |
CN114764620B (en) | Quantum convolution operator | |
Denoyer et al. | Salina: Sequential learning of agents | |
CN113222159A (en) | Quantum state determination method and device | |
Litteken et al. | Communication trade offs in intermediate qudit circuits | |
Chaurra-Gutierrez et al. | QIST: One-dimensional quantum integer wavelet S-transform | |
CN113222160A (en) | Quantum state conversion method and device | |
JP3896057B2 (en) | Quantum computer algorithm conversion apparatus and method, quantum computer algorithm conversion program, and recording medium recording the program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040624 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040624 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040624 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060830 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061030 |
|
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: 20061206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061215 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131222 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |