量子コンピュータって何?(初心者向け)(3)~ブロッホ球(bloch sphere)上で量子ゲートを操作(three.js)

ブロッホ球

この記事では、単一量子ビットの量子ゲートの紹介をします。また、ブロッホ球上で量子ゲートを操作できるツールを用意していますので、各量子ゲートがブロッホ球でどのような動きになるかを見ていただきます。

前回のおさらい

前回のおさらいです。前記事「量子コンピュータって何?(初心者向け)(2)~1量子ビットとブロッホ球」で示したように単一量子ビットの状態は、ブロッホ球の表面の点で表現できます。

ブロッホ球では、下記の数式で単一量子ビットが表現できます。

\( | ψ \rangle = cos(θ/2)| 0 \rangle + e^{iφ}sin(θ/2)| 1 \rangle \)
\(( 0 ≦ θ ≦ \pi )、( 0 ≦ φ ≦ 2\pi )\) 

単一量子ビットの量子ゲートとブロッホ球の関係

量子ビットは量子ゲートを作用させることで状態を変化させることができます。
ブロッホ球を用いた説明に直すと、「単一量子ビットの状態は量子ゲートを作用させることでブロッホ球面上のある点から、ある点へ移動する」と言い換えることができます。

単一量子ビットの状態は、ブロッホ球の球面上のどこかの点に該当するということですね

そうです。さらに言うと、量子ゲートを作用させることで別の状態に変化させることができます。このページでは単一量子ビット用の主なゲートのみ紹介します。

単一量子ビットの量子ゲート

量子ゲートには色々な種類があります。下表には、単一量子ビットの代表的な量子ゲートを示します。
ブロッホ球上の動きに加えて、数学的計算に用いる行列を示します。

ゲート名呼称ブロッホ球上の動き行列表現
XゲートパウリXX軸を180度回転\begin{bmatrix}
0 & 1 \\
1 & 0
\end{bmatrix}
YゲートパウリYY軸を180度回転\begin{bmatrix}
0 & -i \\
i & 0
\end{bmatrix}
ZゲートパウリZZ軸を180度回転\begin{bmatrix}
1 & 0 \\
0 & -1
\end{bmatrix}
Hゲートアダマール変換X=Z,Y=0の直線を軸に180度回転\[ \frac{1}{\sqrt2}\begin{bmatrix}
1 & 1 \\
1 & -1
\end{bmatrix}\]
Sゲート位相シフトゲート(90度)Z軸を90度回転\begin{bmatrix}
1 & 0 \\
0 & e^{\frac{i\pi}{2}}
\end{bmatrix}
Tゲート位相シフトゲート(45度)Z軸を45度回転\begin{bmatrix}
1 & 0 \\
0 & e^{\frac{i\pi}{4}}
\end{bmatrix}

上表で最初に覚えていただきたい量子ゲートは「Hゲート(アダマール変換)」です。
量子ビットの初期状態|0>(ブロッホ球面において、北極点の位置)にHゲート(アダマール変換)を作用させることで、赤道の位置に移動します(下図参照)。これにより、|0>と|1>の発生確率を50%、50%の状態にすることができます。

初期状態 |0>(0の発生確率が100%)
Hゲート作用後 |+>(0,1の発生確率がともに50%)

数学計算としては、上記のアダマール変換の処理は下記のように示されます。上表の行列と初期状態量子ビット\(\begin{bmatrix}1 \\0\end{bmatrix}\)の掛け算になります。
初期状態量子ビット\(\begin{bmatrix}1 \\0\end{bmatrix}\)は1行目の数値が状態\(| 0 \rangle\)の係数、2行目の数値が\(| 1 \rangle\)の係数を示します。

\( | ψ \rangle = \frac{1}{\sqrt2}\begin{bmatrix}
1 & 1 \\
1 & -1
\end{bmatrix}
\begin{bmatrix}1 \\0\end{bmatrix}
=\begin{bmatrix}\frac{1}{\sqrt2}\\\frac{1}{\sqrt2}\end{bmatrix}
\)

ブロッホ球上での各量子ゲートの動作を見てみよう

視覚的なイメージを持っていただけるように、下にブロッホ球での各量子ゲートの動作を見ることができるツールを用意しました。各量子ゲートのボタンを押すと、赤い矢印で示された量子ビットが量子ゲートに合わせて移動します。
three.js というJavaScriptライブラリでWebGLを利用しています。

X Y Z H S T Reset

量子ゲートで単一量子ビットの状態を変更できることは分かったんだけど、本当にこれで量子計算ができるの?

できます。量子計算は、初期状態の量子ビットにいろんな量子ゲートを順番に作用させて、最後にその状態を測定することで行われます。単一量子ビットの量子ゲートだと大したことはできませんが、量子計算であることは間違いありません。

複雑な量子計算の場合は、複数量子ビットで多数の量子ゲートを利用します。ここで紹介した量子ゲート以外に複数量子ゲート用の量子ゲートも用います。それはまた、後程。

いちばんやさしい量子コンピューターの教本 人気講師が教える世界が注目する最新テクノロジー 「いちばんやさしい教本」シリーズ | 湊雄一郎 | 工学 | Kindleストア | Amazon
Amazonで湊雄一郎のいちばんやさしい量子コンピューターの教本 人気講師が教える世界が注目する最新テクノロジー 「いちばんやさしい教本」シリーズ。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽しみいただけます。
初めてのThree.js 第2版 ―WebGLのためのJavaScript 3Dライブラリ
JavaScript 3DライブラリThree.jsの解説書。実用的なサンプルを例示しながら、Three.jsによるウェブ3Dコンテンツ作成のすべての側面を解説します。 対象読者は、初中級のウェブ開発者。JavaScriptとHTMLの基礎知識があれば数学やWebGLに詳しくなくてもかまいません。 本書では、光源や影、...

コメント