Home What's QC Tutorial Shor Grover Samples Specifications Download Order Links Contact
量子コンピュータは、従来のコンピュータと全く異なる点が数多くあります。それゆえに、今までのコンピュータでは困難だった計算等が可能となります。ここでは、そう言った量 子コンピュータと従来のコンピュータの比較、及び基本的な数学的アプローチを考えます。
ビット表現

ビット表現において、量 子コンピュータは従来のコンピュータと非常に異なっています。ビット表現は、コンピュータでデータを扱うための最小の単位 です。従来のコンピュータにおけるビット表現は、0と1の2進表記で表されます。しかし、量 子コンピュータは、0と1だけでなく、0と1の重ね合わせの状態として表されます。0と1の重ね合わせの状態では、0と1のそれぞれの状態について0から1の確率変数を取得することができます。また、従来のコンピュータの1ビットに対して、量 子コンピュータでは1量子ビットと言います。

量子コンピュータの1量子ビットは、基本的な状態が2つあります。それは、状態0と状態1で、これは、従来のコンピュータと同様な意味をもちます。電気的には、従来のコンピュータは、例えば0の場合は基本電圧+0ボルト、1の場合は基本電圧+5ボルトの電圧がかかっている状態としています。(ここでの基準電圧 5V というのは、TTL 論理ゲートの場合を想定しています。現在多く利用されているCMOS論理ゲートでの基準電圧は、おおよそ3.5V程度です。)量 子コンピュータでは、量子ビットを物理的に再現できるものとして電子の動きが最も有力視されています。電子は、古典力学における回転に対応する内部運動をしていることで知られています。この電子の内部運動は、2つの固有値を持ち、それぞれを上向きスピン、下向きスピンと呼びます。量 子ビットを表現するのに上向きスピンを状態0、下向きスピンを状態1とした時、非常に都合が良いということがわかっています。この量 子ビットには、ある瞬間に観測するまでは0か1か分からない状態というのが存在します。そういう状態を重ね合わせの状態と言います。正しく、その点においても電子は条件を満たしていて、観測するまで0か1か分からない、すなわち、上向きか、下向きか分からない状態を持っています。そういうことから、数多くの量 子現象の中から、電子のスピンが量子コンピュータの量子ビットを表現するのに都合が良いというように考えられるようになりました。また、この様に量 子現象を利用するということが、量子コンピュータと呼ばれる所以となっています。

重ね合わせの状態は、観測してはじめて状態0か状態1か判別します。その観測する前の状態は、0と1のどちらにどの程度なりそうかという状態なのです。例えば、観測すると0になる確率が30%、1になる確立が70%といったような感じです。

量子コンピュータでは、状態0と状態1を厳密に記述すると行列で表記することになります。また、状態0と状態1は簡単に|0〉、|1〉と書きます。

従来の(デジタル)コンピュータ:0あるいは1...bit
量 子コンピュータ:0と1の重ね合わせ(superposition)....qubit



また、重ね合わせの状態を| 〉とした時、この| 〉は、|0〉、|1〉を行列として上記の様に考えると次のような式で表せることになっています。 と はそれぞれ複素数で、確率振幅といわれています。|0〉、|1〉それぞれの確率振幅の絶対値の自乗が、| 〉を観測した時の|0〉、|1〉の状態になる確率になっています。ここで、状態|0〉、|1〉の確率の和は1になります。



ここまでは、1ビット(1量 子ビット)について述べてきましたが、任意のビット数の時は、次の様になります。

従来のコンピュータ
例)
01 (2 bits)
01010101 (8 bits)
量 子コンピュータ
例)
|01〉 (2 qubits)
|01010101〉 (8 qubits)

複数ビットは、単数ビットの行列のテンソル積を用いて表現することができます。テンソル積を用いて複数ビット列を計算すると、行列の要素数は実際のビット数に対して2のビット数乗個なります。これらのことから、量 子コンピュータにおけるビット列は、従来のものとは異なるということが分かります。


nビットの場合は、2のn乗次の行列となる。

回路
先に述べたビット列の違いから、量 子コンピュータと従来のものとでは回路の点においてどのような違いが生じるのでしょうか。
従来のコンピュータの電子回路は、主に次の3つの基本素子でしばしば表現されます。


AND


OR


NOT

ここで重要なのは、2つのビットが入ってきた時に、1つあるいは2つのビットを出力するということです。これは、ANDやORの回路の結果 から、元の2つのビットを復元することはできないということを示しています。すなわち、従来のコンピュータの電子回路は可逆性を持ちません。

これらの基本素子を複数用いることで複雑な回路を生成することができます。正に現在使用されているコンピュータには、このような回路が組み込まれています。

複雑な処理系:基本素子AND,OR,NOTの組み合わせ

量子コンピュータにおいてはどうでしょうか。量 子コンピュータにも同様にANDやOR、NOTといった回路があります。しかし、量 子コンピュータにおいて、それらが必ずしも最小の単位ではありません。量 子コンピュータでは、従来のコンピュータにおけるANDやOR、NOTを表すことのできるさらに小さい単位 のCN(Controlled−NOT)という基本素子が考えられています。

量子コンピュータの基本素子:CN(controlled-NOT)



Controlled-NOTの行列表現:4次のユニタリ行列

CNは、制御側の量 子ビットの状態が|1〉に限り、作用するビットを反転させるというものです。動作は次の様になっています。

IN
OUT
CONTROL
TARGET
CONTROL
TARGET
0
0
0
0
1
1
1
0
1
1
1
0

これ一つで、従来のコンピュータと同様な回路を表現可能なことがわかっています。

量子コンピュータのビット列は行列で表現できると同様に、回路も行列で表現することができます。CNの場合は4次の正方行列になります。CNの回路図からも分かるように2量 子ビットに作用するので、行列の一辺の大きさが2量子ビット分、すなわち2の2乗分必要になります。そして、入力ビット列に対して回路が作用するというのは、単純な行列計算となっています。出てきた解が出力ビットです。上記の図CNの場合は、次の様になります。

入力量 子ビットは|01〉なので
出力量 子ビットも同様に|01〉なので

これより出力量子ビットと入力量 子ビットの数が等しいことに気付きます。量子コンピュータの場合、従来のものと異なり必ず入力した分と同じビット数の量 子ビットが出力されます。しかも、この出力結果を同じ回路に通すと、最初に入力した量 子ビットと同じものが出てくるという可逆の性質を備えています。これは、行列の数式を見れば明らかです。


また、量子コンピュータは、CNによって作り出されるANDやORやNOTだけでなく、様々な行列によって様々な動作をする回路を作り出すことができます。それによって、従来のコンピュータで不可能だった優れた性能を発揮することができます。しかし、量 子コンピュータの回路になるためには、行列は任意のもので良いというわけではなく、次のような条件を満たしている必要があります。

列及び行の成分の個数が2のn乗個であるようなユニタリ行列

ここで、nは任意の自然数です。ユニタリというのは、行列における数学的な性質の一つです。このことから、量 子ビットに対して作用する素子のことをユニタリ作用素と言います。

ハードウェアの実現

量子コンピュータのハードウェアは、一体どの様なものと考えられているのでしょうか?これまでの内容から、電子のスピンを利用ということがわかってきました。しかし、そのような小さな粒子を制御するには非常に高度な技術が必要になってきます。そういった技術は現在多くの研究所で研究されています。そのような高度な内容にはここでは触れずに、簡単なイメージだけを考えてゆきます。

1個の電子がある空間を飛んでいるとします。この電子1個が1量 子ビットに相当します。この電子は、必ず上向きあるいは下向きにスピンしています。この上向きあるいは下向きの状態によって、|0〉か|1〉か判断します。

qubit → 電子の上向きスピン
qubit → 電子の下向きスピン

そのような電子に対して、スピンの方向が変化する何らかの作用を施します。ここで、この作用がユニタリ作用素であることが条件です。この作用は、例えば光や電磁気の様なものでできるのではないとか考えられています。

例えばNOTの作用を電子に与えてみるとしましょう。


複数ビットの場合は、この電子の列が平行にいくつも飛んでいると考えれば良いでしょう。しかし、これから考えるとハードウェアの実現は非常に困難だということが想像できます。作用させる電子を捉えた状態で、正確な作用を及ぼさなくてはならないわけです。ですが、実現できた場合には非常に高速かつ極めて小さいものができる可能性があります。


なぜ量 子コンピュータか?
チュートリアル