Photo by Getty Images

量子コンピュータ「2050年に実現可能」な9つのステップ!

『ファインマン物理学』解説 後編
シリーズ完結記念『「ファインマン物理学」を読む』抜粋企画。前編では、ファインマン先生は、量子計算の原理について探求し、シュレディンガー方程式を用いて計算を行なう具体的なアルゴリズムを発見したことを紹介し、その基本的な流れとして下記の9つのステップを紹介しました。

この後編では、それをもとに、「ファインマン型」とよばれる量子コンピュータについて解説していきます。

9つのステップ

1 何を計算したいのかを決める。

2 量子論理ゲートを組み合わせて計算回路を組む。

3 その計算回路を実現するハミルトニアンを計算する。

4 のユニタリーな時間発展を計算する。

5 メモリーのサイズを決める。

6 メモリーを初期化する。

7 コンピュータをある時間走らせる。

8 カーソルのキュービットを観察して計算が終わったかどうか確かめる。

9 終わっていたら答えのキュービットを読む。終わっていなかったら、射影された状態から、さらに時間発展させる。

――――――――――――――

一つずつ解説してゆきましょう。

まず、古典的なコンピュータでは情報の単位として「ビット」という概念をつかう。これは、0 か1 か、という二者択一のことである。量子コンピュータでは、これが、0 と1の「重ね合わせ」という不思議なものになる。量子力学では、物理系の状態は0 または1 に確定せずに、0 と1 の中間、すなわち2 つの状態が重ね合わさってもかまわないのだ。それを「キュービット」という。

 

次に、「量子論理ゲート」というのは、一言でいえば、論理計算をするための部品であり、数学的には「行列」であらわすことができる。

通常のコンピュータでは論理の真と偽を1 と0 であらわす。量子計算では、単なる数字の1 と0 の代わりに、状態\(|1>\)と\(|0>\) 

\(\left( \begin{array}{cc}
 0  \\
1 \\
\end{array}\right)\)および\(\left( \begin{array}{cc}
1  \\
0  \\
\end{array}\right)\)

という2 行1 列の行列であらわす。すると、たとえば「否定」(NOT)の論理演算は、

\[\left( \begin{array}{cc}
 0 & 1 \\
1 & 0 \\
\end{array}\right)\]

という2 行2 列の行列であらわすことができる。なぜなら、

\(\left( \begin{array}{cc}
0 & 1 \\
1 & 0 \\
\end{array} \right)\) \(\left(\begin{array}{cc}
1 \\
0 \\
\end{array} \right)\) = \(\left( \begin{array}{cc}
0 \\
1 \\
\end{array} \right)\)

\(\left( \begin{array}{cc}
1 & 0 \\
0 & 1 \\
\end{array} \right)\) \(\left(\begin{array}{cc}
0 \\
1 \\
\end{array} \right)\) = \(\left( \begin{array}{cc}
1 \\
0 \\
\end{array} \right)\)

となって、量子的な「真」は「偽」に、「偽」は「真」に変換されるからである。真偽あるいは\(|0>\) と\(|1>\)を否定する(=逆さまにする)演算なのである。これは、

\[NOT |1>= |0>\]

\[NOT |0> = |1>\]

と書くことができる。