(57)【特許請求の範囲】
【請求項１】
nが１以上の整数であり、ｍがlog(n+1)以上の最小の整数であり、gが2≦g≦mを満たす整数であり、jが1≦j≦mを満たす整数であり、kが1≦k≦nを満たす整数であり、xk(1≦k≦n)が0又は1であり、n個の量子ビットR11,...,R1nからなるレジスタR1の初期量子状態が｜x1＞...｜xn＞であり、n個の量子ビットRg1,...,RgnからなるレジスタRgの初期量子状態のそれぞれが｜0＞...｜0＞であり、n個の量子ビットSj1,...,SjnからなるレジスタSjの初期量子状態のそれぞれが｜0＞...｜0＞であり、α=(2m-1)-1個の量子ビットTj1,...,TjαからなるレジスタTjの初期量子状態のそれぞれが｜0＞...｜0＞であり、β=(2m)-m-1個の量子ビットU1,...,UβからなるレジスタUの初期量子状態が｜0＞...｜0＞であり、γ=(2m)-1個の量子ビットV1,...,VγからなるレジスタVの初期量子状態が｜0＞...｜0＞であり、
(a-1) 各k (1≦k≦n)について、前記量子ビットR1kを制御ビットとし、前記量子ビットR2k,...,Rmkを目標ビットとして、前記量子ビットR1k,...,Rmkに対する(m-1)-Fanout演算を実行するステップと、
(a-2) 各j (1≦j≦m)について、前記量子ビットSj1に対するアダマール演算Hを実行するステップと、
(a-3) 前記ステップ(a-2)の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットSj2,...,Sjnを目標ビットとして、前記量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を実行するステップと、
(a-4) 前記ステップ(a-3)の後、各j, k (1≦j≦m, 1≦k≦n)について、前記量子ビットRjkを制御ビットとし、前記量子ビットSjkを目標ビットとして、前記量子ビットRjk, Sjkに対するCPHASE(j-1)演算を実行するステップと、
(a-5) 前記ステップ(a-4)の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットSj2,...,Sjnを目標ビットとして、前記量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を実行するステップと、
(a-6) 前記ステップ(a-5)の後、各j (1≦j≦m)について、前記量子ビットSj1に対するアダマール演算Hを実行するステップと、
(b-1) 前記ステップ(a-6)の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットTj1,...,Tjαを目標ビットとして、前記量子ビットSj1,Tj1,...,Tjαに対する(α)-Fanout演算を実行するステップと、
(b-2) 前記ステップ(b-1)の後、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、前記量子ビットTjpに対するアダマール演算Hを実行し、各q (1≦q≦(2m)-m-1)について、前記量子ビットUqに対するアダマール演算Hを実行するステップと、
(b-3) yj(1≦j≦m)が0又は1であり、Yが|y|=y1+...+ym≧2を満たすm桁の任意のビット列y=y1...ymを要素とする集合であり、前記ビット列y=y1...ymを構成するビットy1,...,ymの中で値が1であるビットが
【数２３】
0005722187.tif 000026
であり、a(y1,...,ym) (1≦a(y1,...,ym)≦(2m)-m-1)が、前記集合Yに属する前記ビット列y=y1...ymのそれぞれに対して、前記ビット列y=y1...ymが表す２進数表現値の小さい方から順番に付された1から(2m)-m-1までの互いに異なる整数番号であり、aj(y1,...,ym)が、前記集合Yの要素であるビット列y’=y1’...ym’のうちで、当該ビット列y’=y1’...ym’が表す２進数表現値が当該aj(y1,...,ym)に対応する前記ビット列y=y1...ymが表す２進数表現値よりも小さく、なおかつ、ビットyj’の値が1であるビット列の個数に１を加えた数であり、前記ステップ(b-2)の後、前記集合Yに属する各要素について、前記量子ビット
【数２４】
0005722187.tif 000027
を制御ビットとし、前記量子ビット
【数２５】
0005722187.tif 000028
を目標ビットとして、前記量子ビット
【数２６】
0005722187.tif 000029
に対する(|y|)-Fanout演算を実行するステップと、
(b-4) 前記ステップ(b-3)の後、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、前記量子ビットTjpに対するアダマール演算Hを実行し、各q (1≦q≦(2m)-m-1)について、前記量子ビットUqに対するアダマール演算Hを実行するステップと、
(b-5) 前記量子ビットV1に対するアダマール演算Hを実行するステップと、
(b-6) 前記ステップ(b-5)の後、前記量子ビットV1を制御ビットとし、前記量子ビットV2,...,Vγを目標ビットとして、前記量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行するステップと、
(b-7) 前記ステップ(a-6)及び(b-6)の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットVjを目標ビットとして、前記量子ビットSj1, Vjに対するCPHASE(m-1)演算を実行し、各q (1≦q≦(2m)-m-1)について、前記ステップ(b-4)が実行された前記量子ビットUqを制御ビットとし、前記量子ビットVm+qを目標ビットとして、前記量子ビットUq, Vm+qに対するCPHASE(m-1)演算を実行するステップと、
(b-8) 前記ステップ(b-7)の後、前記量子ビットV1を制御ビットとした前記量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行するステップと、
(b-9) 前記ステップ(b-8)の後、前記量子ビットV1に対するアダマール演算Hを実行するステップと、
を有する量子計算方法。
【請求項２】
nが１以上の整数であり、ｍがlog(n+1)以上の最小の整数であり、gが2≦g≦mを満たす整数であり、jが1≦j≦mを満たす整数であり、kが1≦k≦nを満たす整数であり、xk(1≦k≦n)が0又は1であり、n個の量子ビットR11,...,R1nからなるレジスタR1の初期量子状態が｜x1＞...｜xn＞であり、n個の量子ビットRg1,...,RgnからなるレジスタRgの初期量子状態のそれぞれが｜0＞...｜0＞であり、n個の量子ビットSj1,...,SjnからなるレジスタSjの初期量子状態のそれぞれが｜0＞...｜0＞であり、α=(2m-1)-1個の量子ビットTj1,...,TjαからなるレジスタTjの初期量子状態のそれぞれが｜0＞...｜0＞であり、β=(2m)-m-1個の量子ビットU1,...,UβからなるレジスタUの初期量子状態が｜0＞...｜0＞であり、γ=(2m)-1個の量子ビットV1,...,VγからなるレジスタVの初期量子状態が｜0＞...｜0＞であり、
各k (1≦k≦n)について、前記量子ビットR1kを制御ビットとし、前記量子ビットR2k,...,Rmkを目標ビットとして、前記量子ビットR1k,...,Rmkに対する(m-1)-Fanout演算を実行する第１処理部と、
各j (1≦j≦m)について、前記量子ビットSj1に対するアダマール演算Hを実行する第２処理部と、
前記第２処理部による処理の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットSj2,...,Sjnを目標ビットとして、前記量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を実行する第３処理部と、
前記第３処理部による処理の後、各j, k (1≦j≦m, 1≦k≦n)について、前記量子ビットRjkを制御ビットとし、前記量子ビットSjkを目標ビットとして、前記量子ビットRjk, Sjkに対するCPHASE(j-1)演算を実行する第４処理部と、
前記第４処理部による処理の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットSj2,...,Sjnを目標ビットとして、前記量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を実行する第５処理部と、
前記第５処理部による処理の後、各j (1≦j≦m)について、前記量子ビットSj1に対するアダマール演算Hを実行する第６処理部と、
前記第６処理部による処理の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットTj1,...,Tjαを目標ビットとして、前記量子ビットSj1,Tj1,...,Tjαに対する(α)-Fanout演算を実行する第７処理部と、
前記第７処理部による処理の後、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、前記量子ビットTjpに対するアダマール演算Hを実行し、各q (1≦q≦(2m)-m-1)について、前記量子ビットUqに対するアダマール演算Hを実行する第８処理部と、
yj(1≦j≦m)が0又は1であり、Yが|y|=y1+...+ym≧2を満たすm桁の任意のビット列y=y1...ymを要素とする集合であり、前記ビット列y=y1...ymを構成するビットy1,...,ymの中で値が1であるビットが
【数２７】
0005722187.tif 000030
であり、a(y1,...,ym) (1≦a(y1,...,ym)≦(2m)-m-1)が、前記集合Yに属する前記ビット列y=y1...ymのそれぞれに対して、前記ビット列y=y1...ymが表す２進数表現値の小さい方から順番に付された1から(2m)-m-1までの互いに異なる整数番号であり、aj(y1,...,ym)が、前記集合Yの要素であるビット列y’=y1’...ym’のうちで、当該ビット列y’=y1’...ym’が表す２進数表現値が当該aj(y1,...,ym)に対応する前記ビット列y=y1...ymが表す２進数表現値よりも小さく、なおかつ、ビットyj’の値が1であるビット列の個数に１を加えた数であり、前記第８処理部による処理の後、前記集合Yに属する各要素について、前記量子ビット
【数２８】
0005722187.tif 000031
を制御ビットとし、前記量子ビット
【数２９】
0005722187.tif 000032
を目標ビットとして、前記量子ビット
【数３０】
0005722187.tif 000033
に対する(|y|)-Fanout演算を実行する第９処理部と、
前記第９処理部による処理の後、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、前記量子ビットTjpに対するアダマール演算Hを実行し、各q (1≦q≦(2m)-m-1)について、前記量子ビットUqに対するアダマール演算Hを実行する第１０処理部と、
前記量子ビットV1に対するアダマール演算Hを実行する第１１処理部と、
前記第１１処理部による処理の後、前記量子ビットV1を制御ビットとし、前記量子ビットV2,...,Vγを目標ビットとして、前記量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行する第１２処理部と、
前記第６，１１処理部による処理の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットVjを目標ビットとして、前記量子ビットSj1, Vjに対するCPHASE(m-1)演算を実行し、各q (1≦q≦(2m)-m-1)について、前記第１０処理部による処理が実行された前記量子ビットUqを制御ビットとし、前記量子ビットVm+qを目標ビットとして、前記量子ビットUq, Vm+qに対するCPHASE(m-1)演算を実行する第１３処理部と、
前記第１３処理部による処理の後、前記量子ビットV1を制御ビットとした前記量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行する第１４処理部と、
前記第１４処理部による処理の後、前記量子ビットV1に対するアダマール演算Hを実行する第１５処理部と、
を有する量子計算装置。
【請求項３】
nが１以上の整数であり、ｍがlog(n+1)以上の最小の整数であり、gが2≦g≦mを満たす整数であり、jが1≦j≦mを満たす整数であり、kが1≦k≦nを満たす整数であり、xk(1≦k≦n)が0又は1であり、n個の量子ビットR11,...,R1nからなるレジスタR1の初期量子状態が｜x1＞...｜xn＞であり、n個の量子ビットRg1,...,RgnからなるレジスタRgの初期量子状態のそれぞれが｜0＞...｜0＞であり、n個の量子ビットSj1,...,SjnからなるレジスタSjの初期量子状態のそれぞれが｜0＞...｜0＞であり、α=(2m-1)-1個の量子ビットTj1,...,TjαからなるレジスタTjの初期量子状態のそれぞれが｜0＞...｜0＞であり、β=(2m)-m-1個の量子ビットU1,...,UβからなるレジスタUの初期量子状態が｜0＞...｜0＞であり、γ=(2m)-1個の量子ビットV1,...,VγからなるレジスタVの初期量子状態が｜0＞...｜0＞であり、
各k (1≦k≦n)について、前記量子ビットR1kを制御ビットとし、前記量子ビットR2k,...,Rmkを目標ビットとして、前記量子ビットR1k,...,Rmkに対する(m-1)-Fanout演算を実行する第１量子回路と、
各j (1≦j≦m)について、前記量子ビットSj1に対するアダマール演算Hを実行する第２量子回路と、
前記第２量子回路による処理の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットSj2,...,Sjnを目標ビットとして、前記量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を実行する第３量子回路と、
前記第３量子回路による処理の後、各j, k (1≦j≦m, 1≦k≦n)について、前記量子ビットRjkを制御ビットとし、前記量子ビットSjkを目標ビットとして、前記量子ビットRjk, Sjkに対するCPHASE(j-1)演算を実行する第４量子回路と、
前記第４量子回路による処理の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットSj2,...,Sjnを目標ビットとして、前記量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を実行する第５量子回路と、
前記第５量子回路による処理の後、各j (1≦j≦m)について、前記量子ビットSj1に対するアダマール演算Hを実行する第６量子回路と、
前記第６量子回路による処理の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットTj1,...,Tjαを目標ビットとして、前記量子ビットSj1,Tj1,...,Tjαに対する(α)-Fanout演算を実行する第７量子回路と、
前記第７量子回路による処理の後、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、前記量子ビットTjpに対するアダマール演算Hを実行し、各q (1≦q≦(2m)-m-1)について、前記量子ビットUqに対するアダマール演算Hを実行する第８量子回路と、
yj(1≦j≦m)が0又は1であり、Yが|y|=y1+...+ym≧2を満たすm桁の任意のビット列y=y1...ymを要素とする集合であり、前記ビット列y=y1...ymを構成するビットy1,...,ymの中で値が1であるビットが
【数３１】
0005722187.tif 000034
であり、a(y1,...,ym) (1≦a(y1,...,ym)≦(2m)-m-1)が、前記集合Yに属する前記ビット列y=y1...ymのそれぞれに対して、前記ビット列y=y1...ymが表す２進数表現値の小さい方から順番に付された1から(2m)-m-1までの互いに異なる整数番号であり、aj(y1,...,ym)が、前記集合Yの要素であるビット列y’=y1’...ym’のうちで、当該ビット列y’=y1’...ym’が表す２進数表現値が当該aj(y1,...,ym)に対応する前記ビット列y=y1...ymが表す２進数表現値よりも小さく、なおかつ、ビットyj’の値が1であるビット列の個数に１を加えた数であり、前記第８量子回路による処理の後、前記集合Yに属する各要素について、前記量子ビット
【数３２】
0005722187.tif 000035
を制御ビットとし、前記量子ビット
【数２９】
0005722187.tif 000036
を目標ビットとして、前記量子ビット
【数３３】
0005722187.tif 000037
に対する(|y|)-Fanout演算を実行する第９量子回路と、
前記第９量子回路による処理の後、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、前記量子ビットTjpに対するアダマール演算Hを実行し、各q (1≦q≦(2m)-m-1)について、前記量子ビットUqに対するアダマール演算Hを実行する第１０量子回路と、
前記量子ビットV1に対するアダマール演算Hを実行する第１１量子回路と、
前記第１１量子回路による処理の後、前記量子ビットV1を制御ビットとし、前記量子ビットV2,...,Vγを目標ビットとして、前記量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行する第１２量子回路と、
前記第６，１１量子回路による処理の後、各j (1≦j≦m)について、前記量子ビットSj1を制御ビットとし、前記量子ビットVjを目標ビットとして、前記量子ビットSj1, Vjに対するCPHASE(m-1)演算を実行し、各q (1≦q≦(2m)-m-1)について、前記第１０量子回路による処理が実行された前記量子ビットUqを制御ビットとし、前記量子ビットVm+qを目標ビットとして、前記量子ビットUq, Vm+qに対するCPHASE(m-1)演算を実行する第１３量子回路と、
前記第１３量子回路による処理の後、前記量子ビットV1を制御ビットとした前記量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行する第１４量子回路と、
前記第１４量子回路による処理の後、前記量子ビットV1に対するアダマール演算Hを実行する第１５量子回路と、
を有する量子回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は量子計算技術に関し、特に論理和関数を計算する量子計算技術に関する。
【背景技術】
【０００２】
論理和関数は、１桁以上の全ての有限ビット列からなる集合を定義域とし、{0,1}を値域とする関数であり、入力ビット列をx=x1...xn(n≧1、各1≦k≦nに対し、xkは0又は1)とするとき、以下を出力する。
【数１】
0005722187.tif 000002
ただし、|x|=x1+...+xnとする。
【０００３】
入力桁数をnとするとき、O(log* n)個の計算ステップとO(n・log n)個の基本演算で論理和関数を計算する量子回路の構成方法は知られている（例えば、非特許文献１参照）。ただし、log* nは以下のように定義される。
【数２】
0005722187.tif 000003
また、logは２を底とする対数を表し、基本演算とは１量子ビットユニタリ演算、２量子ビットユニタリ演算、任意のκ≧1に対するκ-Fanoutとする。
【０００４】
非特許文献１に開示された従来方法は、第１〜３ステージからなる。第１ステージでは、入力ビット列x=x1...xnを表す量子ビット列から、以下のm=ceil(log(n+1))個の量子ビットの状態（量子状態）を生成する。
【数３】
0005722187.tif 000004
ただし、ceilは天井関数を意味し、ceil(ε)はε以上の最小の整数を意味する。また、｜＋＞，｜−＞は以下を意味する。
【数４】
0005722187.tif 000005
【０００５】
出力しようとするn個の値x1,...,xnの論理和x1∨...∨xnは、式(2)に示したm個の量子ビットの状態が表す値の論理和の計算に帰着されることが証明できる（非特許文献１参照）。より正確には、
・x1∨...∨xn=1 (x1,...,xnの中の少なくとも１つが1)の場合、式(2)に示したm個の量子ビットの状態の中の少なくとも１つは｜1＞
・x1∨...∨xn=0 (x1,...,xnの中の全てが0)の場合、式(2)のm個の量子ビットの状態は全て｜0＞
となる。
【０００６】
第２ステージでは、式(2)に示したm個の量子ビットを入力とし、上述と同様に、或る個数の量子ビットの状態が表す値の論理和の計算を、それよりも少ない個数の量子ビットの状態が表す値の論理和の計算に帰着させる操作（以下「帰着の操作」）を再帰的に繰り返す。このような帰着の操作を再帰的に繰り返し、最終的に２つの量子ビットの状態の論理和の計算に帰着させる。例えば、入力桁数nが４の場合、第１ステージで３つの量子ビットの状態の論理和の計算に帰着され、第２ステージで２つの量子ビットの状態の論理和の計算に帰着される。
【０００７】
第２ステージで２つの量子ビットの状態の論理和の計算に帰着した後は、第３ステージで、NOT演算と２つの量子ビットの状態の論理積を計算するToffoli演算を組み合わせて、２つの量子ビットの状態の論理和を計算し、最終的な出力を得る。
【０００８】
上述した１回の帰着の操作は定数個の計算ステップで実行され、１回の帰着の操作で、n個の量子ビットの状態が表す値の論理和の計算が、O(log n)個の量子ビットの状態が表す値の論理和の計算に帰着する。この操作を繰り返して２個の量子ビットの状態が表す値の論理和の計算に帰着させるためには、この操作をO(log*n)回繰り返す必要があり、回路全体でO(log*n)個の計算ステップを実行する必要がある。上の各状態は入力の全てのビットに依存するため、最初に各状態を生成するのにO(n)個の基本演算が行われ、第１ステージ全体としてO(nm)=O(n log n)個の基本演算が行われる。その後の第２ステージでの帰着の操作に必要となる基本演算は少ないことが証明でき、回路全体でO(n log n)個の基本演算が行われる。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】P.Hoyer and R.Spalek, Quantum fan-out is powerful, Theory of Computing, Vol. 1, pp. 81-103, 2005.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
計算ステップの個数が多いほど計算時間が長くなる。また、基本演算の個数が多いほど誤りの発生する可能性が大きくなる。このため、計算ステップと基本演算の個数はできるだけ少ないほうが良い。上述した従来方法ではO(log*n)個の計算ステップとO(n log n)個の基本演算で論理和関数を計算するが、基本演算の個数を増加させることなく、入力桁数nにかかわらず定数個の計算ステップで論理和関数を計算する方法は知られていない。
【００１１】
本発明はこのような点に鑑みてなされたものであり、定数個の計算ステップとO(n log n)個の基本演算で論理和関数を計算することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明では、nが１以上の整数であり、ｍがlog(n+1)以上の最小の整数であり、gが2≦g≦mを満たす整数であり、jが1≦j≦mを満たす整数であり、kが1≦k≦nを満たす整数であり、xk(1≦k≦n)が0又は1であり、n個の量子ビットR11,...,R1nからなるレジスタR1の初期量子状態が｜x1＞...｜xn＞であり、n個の量子ビットRg1,...,RgnからなるレジスタRgの初期量子状態のそれぞれが｜0＞...｜0＞であり、n個の量子ビットSj1,...,SjnからなるレジスタSjの初期量子状態のそれぞれが｜0＞...｜0＞であり、α=(2m-1)-1個の量子ビットTj1,...,TjαからなるレジスタTjの初期量子状態のそれぞれが｜0＞...｜0＞であり、β=(2m)-m-1個の量子ビットU1,...,UβからなるレジスタUの初期量子状態が｜0＞...｜0＞であり、γ=(2m)-1個の量子ビットV1,...,VγからなるレジスタVの初期量子状態が｜0＞...｜0＞である。
【００１３】
まず各k (1≦k≦n)について、量子ビットR1kを制御ビットとし、量子ビットR2k,...,Rmkを目標ビットとして、量子ビットR1k,...,Rmkに対する(m-1)-Fanout演算を実行し、各j (1≦j≦m)について、量子ビットSj1に対するアダマール演算Hを実行し、各j (1≦j≦m)について、量子ビットSj1を制御ビットとし、量子ビットSj2,...,Sjnを目標ビットとして、量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を実行し、各j, k (1≦j≦m, 1≦k≦n)について、量子ビットRjkを制御ビットとし、量子ビットSjkを目標ビットとして、量子ビットRjk, Sjkに対するCPHASE(j-1)演算を実行し、ステップ(a-4)の後、各j (1≦j≦m)について、量子ビットSj1を制御ビットとし、量子ビットSj2,...,Sjnを目標ビットとして、量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を実行し、各j (1≦j≦m)について、量子ビットSj1に対するアダマール演算Hを実行する。
【００１４】
その後、各j (1≦j≦m)について、量子ビットSj1を制御ビットとし、量子ビットTj1,...,Tjαを目標ビットとして、量子ビットSj1,Tj1,...,Tjαに対する(α)-Fanout演算を実行し、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、量子ビットTjpに対するアダマール演算Hを実行し、各q (1≦q≦(2m)-m-1)について、量子ビットUqに対するアダマール演算Hを実行し、集合Yに属する各要素について、量子ビット
【数５】
0005722187.tif 000006
を制御ビットとし、量子ビット
【数６】
0005722187.tif 000007
を目標ビットとして、量子ビット
【数７】
0005722187.tif 000008
に対する(|y|)-Fanout演算を実行する。ただし、yj (1≦j≦m)が0又は1であり、Yが|y|=y1+...+ym≧2を満たすm桁の任意のビット列y=y1...ymを要素とする集合であり、ビット列y=y1...ymを構成するビットy1,...,ymの中で値が1であるビットが
【数８】
0005722187.tif 000009
であり、a(y1,...,ym) (1≦a(y1,...,ym)≦(2m)-m-1)が、集合Yに属するビット列y=y1...ymのそれぞれに対して、ビット列y=y1...ymが表す２進数表現値の小さい方から順番に付された1から(2m)-m-1までの互いに異なる整数番号であり、aj(y1,...,ym)が、集合Yの要素であるビット列y’=y1’...ym’のうちで、当該ビット列y’=y1’...ym’が表す２進数表現値が当該aj(y1,...,ym)に対応するビット列y=y1...ymが表す２進数表現値よりも小さく、なおかつ、ビットyj’の値が1であるビット列の個数に１を加えた数である。さらに、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、量子ビットTjpに対するアダマール演算Hを実行し、各q (1≦q≦(2m)-m-1)について、量子ビットUqに対するアダマール演算Hを実行し、量子ビットV1に対するアダマール演算Hを実行し、量子ビットV1を制御ビットとし、量子ビットV2,...,Vγを目標ビットとして、量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行し、各j (1≦j≦m)について、量子ビットSj1を制御ビットとし、量子ビットVjを目標ビットとして、量子ビットSj1, Vjに対するCPHASE(m-1)演算を実行し、各q (1≦q≦(2m)-m-1)について、量子ビットUqを制御ビットとし、量子ビットVm+qを目標ビットとして、量子ビットUq, Vm+qに対するCPHASE(m-1)演算を実行し、量子ビットV1を制御ビットとした量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行し、量子ビットV1に対するアダマール演算Hを実行する。これによって、量子ビットV1の状態が｜x1∨...∨xn＞となる。これらの計算ステップの個数はnの値にかからず定数であり、基本演算数はO(n log n)個である。
【発明の効果】
【００１５】
本発明では、定数個の計算ステップとO(n log n)個の基本演算で論理和関数を計算できる。
【図面の簡単な説明】
【００１６】
【図１】本形態の量子計算装置の構成を説明するための図。
【図２】本形態の量子回路（第１ステージ）を説明するための図。
【図３】本形態の量子回路（第２ステージ）を説明するための図。
【図４】基本演算を定義するための図。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施形態を説明する。
＜定義＞
実施形態で用いられる記号や用語を定義する。
量子ビット（qubit）とは、量子情報処理における基本単位である。量子ビットの具体例は、光子の偏光や原子の核スピンなどである。量子ビットは、古典的ビットの２値に対応する計算基底の量子状態の重ね合わせ状態をとる。重ね合わせ状態とは、量子力学的に複数の量子状態が同時に存在することを意味する。
【００１８】
量子状態はケットベクトル｜Φ＞を用いて表記される。量子状態の重ね合わせ状態はケットベクトルの線形和として表記される。｜Φ1＞｜Φ2＞は｜Φ1＞と｜Φ2＞とのテンソル積を表す。いかなる｜Φ1＞及び｜Φ2＞を用いても｜Φ1＞｜Φ2＞で表現することのできない複数の量子ビットの量子状態をエンタングルメント状態と呼ぶ。
【００１９】
図４Ａに示すように、入力されたκ＋１個の量子ビットの量子状態｜η＞｜μ1＞...｜μκ＞を量子状態｜η＞｜η(+)μ1＞...｜η(+)μκ＞に変換する処理をκ-Fanout演算と呼ぶ（η,μτ∈{0,1}、１≦τ≦κ、κ≧１）。ただし、(+)は排他的論理和演算子を表す。ここで量子状態｜η＞で入力された１個の量子ビットが制御ビットであり、量子状態｜μτ＞で入力されたκ個の量子ビットが目標ビットである。κ-Fanout演算によって、制御ビットの量子状態は｜η＞となり、目標ビットの量子状態はそれぞれ｜η(+)μτ＞（１≦τ≦κ）となる。なお１-Fanout演算をCNOT演算と呼ぶ。
【００２０】
図４Ｂに示すように、入力された１個の量子ビットの量子状態｜η＞を以下の量子状態に変換する処理をアダマール（Hadamard）演算と呼び、Hと表記する（η∈{0,1}）。
【数９】
0005722187.tif 000010
【００２１】
図４Ｃに示すように、入力された２個の量子ビットの量子状態｜η＞｜μ＞を以下の量子状態に変換する処理をCPHASE(λ)演算と呼ぶ（η,μ∈{0,1}、λは整数）。
【数１０】
0005722187.tif 000011
ただし、iは虚数単位を表し、πは円周率を表す。ここで量子状態｜η＞で入力された量子ビットが制御ビットであり、量子状態｜μ＞で入力された量子ビットが目標ビットである。
【００２２】
＜構成＞
図１に例示するように、本形態の量子計算装置１は処理部１０１〜１１５及び制御部１００を有し、処理部１０１〜１１５は制御部１００の制御のもと量子ビットに対する演算処理を行う。量子計算装置１は、例えば、量子コンピュータ或いは量子コンピュータと古典コンユータとの組合せで実現できる。量子コンピュータを実現する物理系としては、例えば、イオントラップを用いる方法（参考文献１「J. I. Cirac and P. Zoller, Quantum computations with cold trapped ions, Physical Rev. Lett. vol. 74, No. 20, pp.4091-4094, 1995」）などを例示できる。イオントラップ量子コンピュータでは、イオンの基底状態と励起状態を利用して量子ビットを実現し、イオンを直線上に並べて計算を行う。アダマール演算Hを含む１量子ビットユニタリ演算は個々のイオンに狙いを定めたレーザービームによって実現され、２量子ビットユニタリ演算CNOT(1-Fanout)も同様に実現される。CPHASE(r) 演算を含む一般の２量子ビットユニタリ演算は１量子ビットユニタリ演算とCNOTを組み合わせて実現される。κ-Fanoutのように、入力の長さκに依存する個数の量子ビット上の演算の実現方法については参考文献１に詳しい。このような物理系を用い、量子計算方法の各ステップを実行する回路が構成される。
【００２３】
＜前提処理＞
本形態の量子計算装置１は、入力ビット列x=x1...xn(n≧1、各1≦k≦nに対し、xkは0又は1)に対する論理和演算を行い、前述の式(1)の結果を出力する。そのために、n個の量子ビットR11,...,R1nからなるレジスタR1と、n個の量子ビットRg1,...,RgnからなるレジスタRg(2≦g≦m, m=ceil(log(n+1))と、n個の量子ビットSj1,...,SjnからなるレジスタSj(1≦j≦m)と、α=(2m-1)-1個の量子ビットTj1,...,TjαからなるレジスタTjと、β=(2m)-m-1個の量子ビットU1,...,UβからなるレジスタUと、γ=(2m)-1個の量子ビットV1,...,VγからなるレジスタVとが用意される。
【００２４】
まず、n個の量子ビットR11,...,R1nからなるレジスタR1の初期量子状態が｜x1＞...｜xn＞とされ、n個の量子ビットRg1,...,RgnからなるレジスタRgの初期量子状態のそれぞれが｜0＞...｜0＞とされ、n個の量子ビットSj1,...,SjnからなるレジスタSjの初期量子状態のそれぞれが｜0＞...｜0＞とされ、α=(2m-1)-1個の量子ビットTj1,...,TjαからなるレジスタTjの初期量子状態のそれぞれが｜0＞...｜0＞とされ、β=(2m)-m-1個の量子ビットU1,...,UβからなるレジスタUの初期量子状態が｜0＞...｜0＞とされ、γ=(2m)-1個の量子ビットV1,...,VγからなるレジスタVの初期量子状態が｜0＞...｜0＞とされる。
【００２５】
＜第１ステージ＞
本形態の量子計算方法は、第１ステージと第２ステージとからなる。上記の初期量子状態の各量子ビットに対して第１ステージの処理が実行され、その後、第２ステージの処理が実行される。
【００２６】
図２を参照しつつ、第１ステージの処理を説明する。図２はn=4,m=3の例である。
処理部１０１が、各k (1≦k≦n)について、量子ビットR1kを制御ビットとし、量子ビットR2k,...,Rmkを目標ビットとして、量子ビットR1k,...,Rmkに対する(m-1)-Fanout演算を並列に実行する（ステップ(a-1)）。
【００２７】
処理部１０２が、各j (1≦j≦m)について、量子ビットSj1に対するアダマール演算Hを並列に実行する（ステップ(a-2)）。
【００２８】
ステップ(a-2)の後、処理部１０３が、各j (1≦j≦m)について、量子ビットSj1を制御ビットとし、量子ビットSj2,...,Sjnを目標ビットとして、量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を並列に実行する（ステップ(a-3)）。
【００２９】
ステップ(a-3)の後、処理部１０４が、各j, k (1≦j≦m, 1≦k≦n)について、量子ビットRjkを制御ビットとし、量子ビットSjkを目標ビットとして、量子ビットRjk, Sjkに対するCPHASE(j-1)演算を並列に実行する（ステップ(a-4)）。
【００３０】
ステップ(a-4)の後、処理部１０５が、各j (1≦j≦m)について、量子ビットSj1を制御ビットとし、量子ビットSj2,...,Sjnを目標ビットとして、量子ビットSj1,...,Sjnに対する(n-1)-Fanout演算を並列に実行する（ステップ(a-5)）。
【００３１】
ステップ(a-5)の後、処理部１０６が、各j (1≦j≦m)について、量子ビットSj1に対するアダマール演算Hを並列に実行する（ステップ(a-6)）。
【００３２】
＜第２ステージ＞
次に、上述した初期量子状態のそれぞれが｜0＞...｜0＞であるα=(2m-1)-1個の量子ビットTj1,...,TjαからなるレジスタTj(1≦j≦m)と、初期量子状態のそれぞれが｜0＞...｜0＞であるβ=(2m)-m-1個の量子ビットU1,...,UβからなるレジスタUと、初期量子状態のそれぞれが｜0＞...｜0＞であるγ=(2m)-1個の量子ビットV1,...,VγからなるレジスタVと、第１ステージの処理がなされた量子ビットSj1(1≦j≦m)とを用いて第２ステージが実行される。図３を参照しつつ、第２ステージの処理を説明する。図３はn=4,m=3の例である。
【００３３】
ステップ(a-6)の後、処理部１０７が、各j (1≦j≦m)について、量子ビットSj1を制御ビットとし、量子ビットTj1,...,Tjαを目標ビットとして、量子ビットSj1,Tj1,...,Tjαに対する(α)-Fanout演算を並列に実行する（ステップ(b-1)）。
【００３４】
ステップ(b-1)の後、処理部１０８が、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、量子ビットTjpに対するアダマール演算Hを実行する処理と、各q (1≦q≦(2m)-m-1)について、量子ビットUqに対するアダマール演算Hを実行する処理とを並列に行う（ステップ(b-2)）。
【００３５】
ステップ(b-2)の後、処理部１０９が、集合Yに属する各要素について、量子ビット
【数１１】
0005722187.tif 000012
を制御ビットとし、量子ビット
【数１２】
0005722187.tif 000013
を目標ビットとして、量子ビット
【数１３】
0005722187.tif 000014
に対する(|y|)-Fanout演算を並列に実行する（ステップ(b-3)）。
【００３６】
ただし、yj(1≦j≦m)が0又は1であり、Yが|y|=y1+...+ym≧2を満たすm桁の任意のビット列y=y1...ymを要素とする集合である。このような集合Yの要素は(2m)-m-1個（(2m)-m-1種類）存在する。例えばm=3の場合、Y={011,101,110,111}となる。また、ビット列y=y1...ymを構成するビットy1,...,ymの中で値が1であるビットを以下のように表現する。
【数１４】
0005722187.tif 000015
例えばm=3の場合は以下のようになる。
【表１】
0005722187.tif 000016
【００３７】
a(y1,...,ym) (1≦a(y1,...,ym)≦(2m)-m-1)は、集合Yに属するビット列y=y1...ymのそれぞれに対して、ビット列y=y1...ymが表す２進数表現値の小さい方から順番に付された1から(2m)-m-1までの互いに異なる整数番号である。言い換えると、集合Yに属するビット列y=y1...ymに対応する２進数表現値を小さい順に並べた場合のビット列y=y1...ymに対応する順序番号をa(y1,...,ym)とする。
またaj(y1,...,ym)(1≦j≦m)は、集合Yの要素であるビット列y’=y1’...ym’のうちで、当該ビット列y’=y1’...ym’が表す２進数表現値が当該aj(y1,...,ym)に対応するビット列y=y1...ymが表す２進数表現値よりも小さく、なおかつ、ビットyj’の値が1であるビット列の個数に１を加えた数である。言い換えると、集合Yの要素であるビット列y’=y1’...ym’のうちで、ビット列y=y1...ymが表す２進数表現値よりも小さく、なおかつ、左からj番目のビットyj’の値が1であるビット列の個数に１を加えた数をaj(y1,...,ym)とする。
以下にm=3の場合のa(y1,...,ym)及びaj(y1,...,ym)を示す。m=3の場合、Y={011,101,110,111}であるため、a(y1,...,ym)及びaj(y1,...,ym)は以下のようになる。
【表２】
0005722187.tif 000017
【００３８】
よってm=3の場合のステップ(b-3)は、量子ビットU1を制御ビットとし、量子ビットT21,T31を目標ビットとしたT21,T31,U1に対する2-Fanout演算（(y1,y2,y3)=(0,1,1)に対応）と、量子ビットU2を制御ビットとし、量子ビットT11,T32を目標ビットとしたT11,T32,U2に対する2-Fanout演算（(y1,y2,y3)=(1,0,1)に対応）と、量子ビットU3を制御ビットとし、量子ビットT12,T22を目標ビットとしたT12,T22,U3に対する2-Fanout演算（(y1,y2,y3)=(1,1,0)に対応）と、量子ビットU4を制御ビットとし、量子ビットT13,T23,T33を目標ビットとしたT13,T23,T33,U4に対する3-Fanout演算（(y1,y2,y3)=(1,1,1)に対応）とを並列に実行する処理である（図３参照）。
【００３９】
ステップ(b-3)の後、処理部１１０が、各j, p (1≦j≦m, 1≦p≦(2m-1)-1)について、量子ビットTjpに対するアダマール演算Hを実行する処理と、各q (1≦q≦(2m)-m-1)について、量子ビットUqに対するアダマール演算Hを実行する処理とを並列に行う（ステップ(b-4)）。
【００４０】
次に、処理部１１１が、量子ビットV1に対するアダマール演算Hを実行する（ステップ(b-5)）。
【００４１】
ステップ(b-5)の後、処理部１１２が、量子ビットV1を制御ビットとし、量子ビットV2,...,Vγを目標ビットとして、量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行する（ステップ(b-6)）。
【００４２】
ステップ(b-6)の後、処理部１１３が、各j (1≦j≦m)について、量子ビットSj1を制御ビットとし、量子ビットVjを目標ビットとして、量子ビットSj1, Vjに対するCPHASE(m-1)演算を実行する処理と、各q (1≦q≦(2m)-m-1)について、量子ビットUqを制御ビットとし、量子ビットVm+qを目標ビットとして、量子ビットUq, Vm+qに対するCPHASE(m-1)演算を実行する処理とを並列に実行する（ステップ(b-7)）。
【００４３】
ステップ(b-7)の後、処理部１１４が、量子ビットV1を制御ビットとし、量子ビットV2,...,Vγを目標ビットとして、量子ビットV1,...,Vγに対する(γ-1)-Fanout演算を実行する（ステップ(b-8)）。
【００４４】
ステップ(b-8)の後、量子ビットV1に対するアダマール演算Hを実行する（ステップ(b-9)）。
【００４５】
以上の処理により、量子ビットV1の量子状態が｜x1∨...∨xn＞となる。よって、量子ビットV1を観測することで論理和x1∨...∨xnを得ることができる。本形態の第１ステージ及び第２ステージは、共に定数個の計算ステップで実行されるため、回路全体でも定数個の計算ステップで実行される。本形態の第１ステージは、非特許文献１の第１ステージと同じであり、O(nm)=O(n log n)個の基本演算が実行される。また、本形態の第２ステージでは、ステップ(b-2)及び(b-4)において、m・(2m-1-1)+2m-m-1個のアダマール演算Hが行われるため、O(n log n)個の基本演算が行われる。従って、回路全体でO(n log n)個の基本演算が行われる。
【００４６】
＜量子ビットV1の量子状態が｜x1∨...∨xn＞となる理由＞
本形態で最終的に量子ビットV1の量子状態が｜x1∨...∨xn＞となる理由について説明する。
本形態の第１ステージ（ステップ(a-1)〜(a-6)）の処理は、非特許文献１に記載された第１ステージと同じである。前述のように、第１ステージでは、初期量子状態が｜x1＞...｜xn＞とされたn個の量子ビットR11,...,R1nからなるレジスタR1等を入力とし、m=ceil(log(n+1))個の量子ビットSj1(1≦j≦m)の量子状態を前述の式(2)の量子状態にする（非特許文献１参照）。前述のように、n個の値x1,...,xnの論理和x1∨...∨xnは、式(2)に示したm個の量子ビットの状態が表す値の論理和の計算に帰着する。したがって、本形態の第２ステージによって得られる量子ビットV1の量子状態が、量子ビットSj1(1≦j≦m)の量子状態によって表される値χ1,…,χm(∈{0,1})の論理和を表すのであれば、その量子状態は｜x1∨...∨xn＞である。以下では、本形態の第２ステージによって得られる量子ビットV1の量子状態が、量子ビットSj1(1≦j≦m)の量子状態によって表される値の論理和を表すことを説明する。
【００４７】
m個のビットからなるビット列χ=χ1…χmに対し、以下の等式が満たされる。一般に、この等式の右辺は2m-1個の項からなる。
【数１５】
0005722187.tif 000018
ただし、m≧1であり、各j(1≦j≦m)に対してχjが0又は1である。式(3)が成り立つことは数学的帰納法を用いて証明することができるが、例えば、m=1,2,3の場合には式(3)は以下のようになり、式(3)の右辺が正確に論理和を表現していることが確認できる。
【数１６】
0005722187.tif 000019
【００４８】
本形態の第２ステージでは、上記の式(3)の論理和関数の表現に基づき、初めに
【数１７】
0005722187.tif 000020
の形で表されるのすべての排他的論理和値を得る。ただし、１つの値のみに対応する排他的論理和値はその値そのもの（χ1,…,χm）であるため、計算する必要があるのは、それらを除く2m-m-1個の排他的論理和値である。
【００４９】
次に、式(4)の排他的論理和値に対応する量子状態を用いて以下の状態を生成する。
【数１８】
0005722187.tif 000021
式(3)の関係から、式(5)の状態は以下と等しいことがわかる。
【数１９】
0005722187.tif 000022
【００５０】
式(6)の状態は、χ1∨…∨χm=0の場合に｜+＞となり、χ1∨…∨χm=1の場合に｜-＞となる。したがって、式(6)の状態にアダマール演算Hを施して得られる状態は、χ1∨…∨χm=0の場合に｜0＞となり、χ1∨…∨χm=1の場合に｜1＞となる。すなわち、論理和χ1∨…∨χmを表す量子状態が得られ、これは論理和x1∨...∨xnを表す。
【００５１】
以上のことと第２ステージの各ステップとの対応を示す。
本形態の第１ステージで得られた量子ビットSj1(1≦j≦m)の量子状態が｜χj＞に相当する。本形態の第２ステージでは、式(4)の形で表されるの2m-m-1個の排他的論理和値を並列に計算する。そのために、各χjを表す量子状態｜χj＞の量子ビットがα=(2m-1)-1個必要となる。ステップ(b-1)では、(α)-Fanout演算によって、量子ビットSj1の量子状態｜χj＞がα=(2m-1)-1個の量子ビットTj1,...,Tjαの量子状態としてコピーされる。
【００５２】
アダマール演算H、Fanout演算、アダマール演算Hを組み合わせると、排他的論理和演算を実行できることが知られている。例えば、量子状態｜χ1＞｜χ2＞｜0＞の３個の量子ビットＱ1，Ｑ2，Ｑ3に対してアダマール演算Hを適用し、さらに量子ビットＱ3を制御ビットとし、量子ビットＱ1，Ｑ2を目標ビットとして、量子ビットＱ1，Ｑ2，Ｑ3に対する2-Fanout演算を実行し、３個の量子ビットＱ1，Ｑ2，Ｑ3に対してアダマール演算Hを適用すると、量子ビットＱ1，Ｑ2，Ｑ3の量子状態は｜χ1＞｜χ2＞｜χ1(+)χ2＞となる。ステップ(b-2)〜(b-4)では、この性質を利用して式(4)の形で表される2m-m-1個の排他的論理和値を計算し、2m-m-1個の量子ビットUq(1≦q≦(2m)-m-1)の量子状態のそれぞれを式(4)の形で表される各排他的論理和値を表す量子状態にしている。
【００５３】
ステップ(b-5)では、アダマール演算Hで量子ビットV1の量子状態を｜＋＞にしている。ステップ(b-6)では、(γ-1)-Fanout演算でγ=(2m)-1個の量子ビットV2,...,Vγを以下の量子状態にしている。
【数２０】
0005722187.tif 000023
例えばm=3の場合、ステップ(b-5)で8個の量子ビットV1,...,V8の量子状態が、
（１／√2）（｜０＞＋｜１＞）｜０＞｜０＞｜０＞｜０＞｜０＞｜０＞
＝（１／√2）（｜０＞｜０＞｜０＞｜０＞｜０＞｜０＞＋｜１＞｜０＞｜０＞｜０＞｜０＞｜０＞）
とされ、ステップ(b-6)で
（１／√2）（｜０＞｜０＞｜０＞｜０＞｜０＞｜０＞＋｜１＞｜１＞｜１＞｜１＞｜１＞｜１＞）
とされる。
【００５４】
ステップ(b-7)では、2m-1個の式(4)の排他的論理和値に対応する量子状態を用いて以下の状態を生成する。
【数２１】
0005722187.tif 000024
すなわち、量子状態｜χ1＞…｜χm＞のm個の量子ビットSj1(1≦j≦m)と量子状態｜0＞…｜0＞の量子ビットVj(1≦j≦m)とに対するCPHASE(m-1)演算と、その他の式(4)の排他的論理和値に対応する(2m)-m-1個の量子状態の量子ビットUq(1≦q≦(2m)-m-1)と量子ビットVm+q(1≦q≦(2m)-m-1)に対するCPHASE(m-1)演算とを行い、γ=(2m)-1個の量子ビットV1,...,Vγの量子状態を式(7)の状態にする。
【００５５】
ステップ(b-8)では、量子ビットV1,...,Vγに対する(γ-1)-Fanout処理を実行することで、量子ビットV1,...,Vγの量子状態を以下の状態にする。
【数２２】
0005722187.tif 000025
【００５６】
ステップ(b-9)では、量子ビットV1にアダマール演算Hを施す。これにより、量子ビットV1の量子状態は、χ1∨…∨χm=0の場合に｜0＞となり、χ1∨…∨χm=1の場合に｜1＞となる。
【００５７】
以上のように、本形態の第２ステージは、それだけで入力の論理和関数を計算する量子回路となっている。第１ステージと第２ステージとを組み合わせる理由は、第２ステージだけでは入力桁数nに対する指数関数個の基本演算を必要としてしまうからである。第１ステージと第２ステージとを組み合わせることで、定数個の計算ステップとO(n log n)個の基本演算で論理和関数を計算できる。
【００５８】
本発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。例えば、上記の実施形態では、各ステップの処理がそれぞれ並列に実行されたが、それらの少なくとも一部が時系列的に直列に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【符号の説明】
【００５９】
１  量子計算装置
１０１〜１１５  処理部
１００  制御部
【図１】
0005722187.tif 000038
【図２】
0005722187.tif 000039
【図３】
0005722187.tif 000040
【図４】
0005722187.tif 000041