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 PDF

Info

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
Application number
JP2002258904A
Other languages
Japanese (ja)
Other versions
JP2004094885A (en
Inventor
泰人 河野
茂 山下
勝浩 北川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002258904A priority Critical patent/JP3896057B2/en
Publication of JP2004094885A publication Critical patent/JP2004094885A/en
Application granted granted Critical
Publication of JP3896057B2 publication Critical patent/JP3896057B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • 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の列からなる入力量子アルゴリズムを2...dとする。すべてのi(1≦i≦d)に対して、iはi=(ti,ci)と表現できる。また、この量子アルゴリズムのキュービット数をnとする。すなわち、すべてのiに対して、0≦ti,ci<nである。また、循環型量子コンピュータのキュービットの種類数をmとする。
【0022】
出力アルゴリズム記憶用の変数をG’、n+1個の変数を記憶する変数名記憶配列をVとする。Vのj番目の要素をV[j]と表記する。
【0023】
以下、の各量子ゲート1,2,...,dを前から一つつ参照し、循環配列型量子コンピュータ用量子アルゴリズムを得る方法を図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ゲートiを(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と、元の量子アルゴリズムとの間で次のような関係式が成り立つことがわかる。
【0048】
(s)のi−1番目のビット=G'(t)のV[i]番目のビットここで、i=1,2,...,nである。このため、従来の制御NOTで記述された量子アルゴリズム(s)を計算する代わりに、本発明によって得られたG'とVを循環型量子コンピュータ上で実行し、G'(t)を観測すれば、望んだ計算結果が得られる。
【0049】
計算の具体例
具体的な計算例を示すために、=(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 Documents 1 and 2). However, there is no document describing a method for converting a quantum algorithm into a general circular array type quantum computer algorithm.
[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]
Step 1. Initialize G 'and V
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]
Step 2. Initialize i
[0026]
  Step 3. Conditional branch
  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. (Steps 5 to 6). However, when | V [ti] −V [ci] | is a multiple of m, the types of the V [ti] and V [ci] th qubits are the same, so that they can be converted into adjacent qubits only by swapping. Can not do it. Therefore, there are cases where | V [ti] −V [ci] | is a multiple of m. If | V [ti] −V [ci] | is a multiple of m, step 4 is executed. If not, skip step 4 and jump to step 5.
[0027]
Step 4. Definition of quantum algorithm G0
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]
Step 5. Definition of quantum algorithm G1
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]
Step 6. Definition of quantum algorithm G2
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
Step 9. Conditional branch
If i> d, G ′ and V are output and the algorithm is terminated. If i ≦ d, return to Step 3.
[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]
Step 1. By definition, V [0] = 0, V [1] = 1, V [2] = 2, V [3] = 4, V [4] = 5, V [5] = 7, V [6] = 8. The output variable G ′ is initialized so that G ′ = φ (empty set).
[0051]
Step 3. Since the first gate is (t1, c1) = (6, 2), V [0] = 0, V [t1] = 8, and V [c1] = 2. Since | V [ti] −V [c1] | = 6 and a multiple of 3, step 4 is executed.
[0052]
Step 4. Since | V [c1] −V [0] | = 2 and | V [ti] −V [0] | = 8, the smaller one is the former. By definition, k = 0. Since V [c1] -V [0] is positive and V [c1] = 2 mod 3, X1 = A2, X2 = A1, X3 = A3. Therefore, G0 = [A2, A1, A3]. Since G ′ is an empty set, G′G0 = [A2, A1, A3]. Hereinafter, G′G0 is referred to as G ′. That is, G ′ = [A2, A1, A3].
Since V [0] = 0, V [0] = 0 mod 3. Therefore, when S = [A2, A1, A3], VS [1] = 2 from V [1] = 1, and VS [2] = 1 from V [2] = 2. In all cases where s is other than 1 and 2, VS [s] = V [s]. Hereinafter, VS is assumed to be V. Specifically, V [0] = 0, V [1] = 2, V [2] = 1, V [3] = 4, V [4] = 5, V [5] = 7, V [ 6] = 8.
[0053]
Step 5. Since V [0] = 0 and V [c1] = 1, | V [c1] −V [0] | = 1, G1 is φ (empty set). Therefore, G'G1 is equal to G '= [A2, A1, A3]. In this case, V does not change.
[0054]
Step 6. Since V [0] = 0 and V [t1] = 8, | V [t1] −V [0] | = 8, k = 5, j = 2, and j ′ = 3. From V [t1] = 2 mod 3, X1 = A2, X2 = A1, X3 = A3. Therefore, G1 = [A2, A1] [A1, A3] [A3, A2] [A2, A1] [A1, A3]. Therefore, G'G1 is [A2, A1, A3] [A2, A1] [A1, A3] [A3, A2] [A2, A1] [A1, A3]. Hereinafter, G′G1 is referred to as G ′. If S1 = [A2, A1], S2 = [A1, A3], and S3 = [A3, A2], then G1 = S1S2S3S1S2, and so when calculated in order, 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 [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
Step 9. Since i = d, return to Step 3.
[0057]
Step 3. Since the next gate is (t2, c2) = (1, 5), V [0] = 2, V [t2] = − 3, and V [c2] = 10. Since | V [t2] −V [c2] | = 13 and not a multiple of 3, step 5 is executed.
[0058]
Step 5. Since | V [c2] −V [0] | = 8, k = 5, j = 2, and J ′ = 3. From V [c2] = 1 mod 3, X1 = A1, X2 = A3, X3 = A2. Therefore, G1 = [A1, A3] [A3, A2] [A2, A1] [A1, A3] [A3, A2]. G′G1 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]. Hereinafter, G′G1 is referred to as G ′. When VG1 is calculated, VG1 [0] = 4, VG1 [1] = 0, VG1 [2] =-1, VG1 [3] = 2, VG1 [4] = 3, VG1 [5] = 5, VG1 [ 6] = 6. Let VG1 be V.
[0059]
Step 6. Since | V [t2] −V [0] | = 4, k = 2, j = 2, and J ′ = 3. From V [t2] = 0 mod 3, Z1 = A3, Z2 = A1, Z3 = A2. Therefore, G2 = [A3, A1] [A1, A2]. Therefore, G′G2 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]. Hereinafter, G′G2 is referred to as G ′. When VG2 is calculated, VG2 [0] = 3, VG2 [1] = 2, VG2 [2] =-2, VG2 [3] = 1, VG2 [4] = 5, VG2 [5] = 4, VG2 [ 6] = 8. Let VG2 be V.
[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
Step 9. Since i> d, G ′ and V are output and the algorithm is terminated.
[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 operation unit 11 and a storage unit 12, and the storage unit 12 includes an input algorithm storage unit 13, an output algorithm storage unit 14, and a variable name array storage unit 15. As shown in FIG. 2, the calculation unit 11 and the input unit 20, an initialization unit 21 that performs the processing of steps 11 to 17 in FIG. 3, a processing determination unit 22, processing units 23, 24, 25, 26, end determination / An output unit 27 is included.
[0065]
The quantum algorithm is input to the apparatus by the input unit 20 and stored in the input algorithm storage unit 13. Next, in the initialization unit 21, the output algorithm storage unit 14 and the variable name array storage unit 15 are initialized. Thereafter, the processing from the processing determination unit 22 to the calculation unit 26 is repeated according to the input algorithm. During this time, the output algorithm storage unit 14 and the variable name array storage unit 15 are updated for each step. Finally, the contents of the output algorithm storage unit 14 and the variable name storage unit 15 are output from the end determination / output unit 27 as calculation results.
[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 calculation unit 11 in FIG. 2;
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)

制御NOTを使用して記述され、キュービット上に施されるビット情報に対する一連の操作である入力された量子アルゴリズムを蓄積する入力アルゴリズム記憶部と、
出力する前記量子アルゴリズムを蓄積する出力アルゴリズム記憶部と、
変数名を記憶する変数名記憶部と、
これらの記憶部との間で情報の書込み・読み出しを行ない、入力された量子アルゴリズムを循環配列型量子コンピュータ用のアルゴリズムに変換し、出力する演算部を有し、
前記演算部は、前記入力量子アルゴリズムを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.
制御NOTを使用して記述され、キュービット上に施されるビット情報に対する一連の操作である入力された量子アルゴリズムを蓄積する入力アルゴリズム記憶部と、出力する前記量子アルゴリズムを蓄積する出力アルゴリズム記憶部と、変数名を記憶する変数名記憶部と、これらの記憶部との間で情報の書込み・読み出しを行ない、入力された量子アルゴリズムを循環配列型量子コンピュータ用のアルゴリズムに変換し、出力する演算部を有するアルゴリズム変換装置で行われ、制御NOTを使用して記述された、入力された量子アルゴリズム(=2…d)を循環配列型量子用のアルゴリズムに変換する量子コンピュータアルゴリズム変換方法であって、
前記演算部が、
出力アルゴリズム記憶用の変数G'と、n(nはキュービット数)+1個の変数を記憶する変数名記憶配列Vを初期化する第1のステップと、
制御NOTゲート 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.
コンピュータを、制御NOTを使用して記述され、キュービット上に施されるビット情報に対する一連の操作である入力された量子アルゴリズムを蓄積する入 力アルゴリズム記憶部と、出力する前記量子アルゴリズムを蓄積する出力アルゴリズム記憶部と、変数名を記憶する変数名記憶部と、これらの記憶部との間で情報の書込み・読み出しを行ない、入力された量子アルゴリズムを循環配列型量子コンピュータ用のアルゴリズムに変換し、出力する演算部を有するアルゴリズム変換装置として機能させ、制御NOTを使用して記述された、入力された量子アルゴリズム(=2…d)を循環配列型量子用のアルゴリズムに変換する量子コンピュータアルゴリズム変換プログラムであって、
前記演算部が、
出力アルゴリズム記憶用の変数G'と、n(nはキュービット数)+1個の変数を記憶する変数名記憶配列Vを初期化する第1の手順
を実行し
制御NOTゲート 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.
請求項に記載の量子コンピュータアルゴリズム変換プログラムを記録した記録媒体。The recording medium which recorded the quantum computer algorithm conversion program of Claim 3 .
JP2002258904A 2002-09-04 2002-09-04 Quantum computer algorithm conversion apparatus and method, quantum computer algorithm conversion program, and recording medium recording the program Expired - Fee Related JP3896057B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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