メインコンテンツへスキップ

量子力学の基礎

はじめに

以下の動画では、Olivia Lanes がこのレッスンの内容を解説しています。また、別ウィンドウでこのレッスンのYouTube 動画を開くこともできます。

前のレッスンでは、「ベル状態」として知られる 2 つの Qubit の量子もつれ状態を生成する方法を学びました。状態を測定したとき、2 つの Qubit の測定結果が相関していることがわかりました。一方が 0 と測定されると、もう一方も 0 と測定され、一方が 1 であれば、もう一方も 1 と測定されました。これが量子エンタングルメントの特徴であることを学びました。本日は、この状態をより深く掘り下げ、量子コンピューティングの基礎となる量子物理学について理解を深めます。

ベル状態

量子コンピューターが古典コンピューターと異なる振る舞いをする多くの量子現象は、前のレッスンで生成した一見シンプルなベル状態にすでに含まれています。そのベル状態の Circuit を振り返ってみましょう。

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit
from qiskit import QuantumCircuit

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
qc.draw("mpl")

上の画像は、ベル状態 Φ+\vert\Phi^+\rangle を作成するための量子 Circuit を表しています。2 本の黒い水平線は 2 つの Qubit を表し、それらの線上の箱やその他の記号は、対応する Qubit に適用される Gate または演算を表しています。灰色の二重線は、2 つの Qubit を測定して得られる古典的な情報を格納するための古典的情報バスです。この Circuit の詳細とその結果のベル状態を掘り下げて、量子コンピューティングの基礎を理解していきます。

量子コンピューティングの数学

量子状態の表現

まず、量子状態と Circuit について議論するための共通言語が必要です。量子状態を表現する方法はいくつかあります。最初はディラック記法です。ディラック記法では、状態は次のように表されます。

Φ+=12(00+11)\vert \Phi^+\rangle =\frac{1}{\sqrt{2}} ( \vert 00 \rangle + \vert 11 \rangle )

ここで、状態は角括弧と縦棒の中に書かれています。2 つの項はそれぞれ、状態の 2 つの可能な測定結果を表しています。したがって、この状態を測定すると、両方の Qubit が状態 0 にあるか、両方が状態 1 にあるかのいずれかになります。12\frac{1}{\sqrt{2}} は「規格化定数」と呼ばれます。これは、状態の各係数の 2 乗の和が 11 になることを保証するためのものです。なぜそうなるかについては、測定に関するセクションで後ほど説明します。

状態を表現する 2 番目の方法は、線形代数の標準的な言語であるベクトル表現です。ベクトルの各要素は異なる可能な測定結果を表します。この記法では、ベル状態は次のように書かれます。

ϕ+=12(1001) .\vert\phi^+\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 0 \\ 0 \\ 1 \end{pmatrix} ~.

慣例として、ベクトルの要素は次の順序で並べられます。

  • 最初の要素は 2 Qubit 状態 00\vert00\rangle に対応します
  • 2 番目は 01\vert01\rangle に対応します
  • 3 番目は 10\vert10\rangle に対応します
  • 4 番目は 11\vert11\rangle に対応します

期待どおり、ベル状態ベクトル Φ+\vert\Phi^+\rangle では、1 番目と 4 番目の要素が非ゼロであり、2 番目と 3 番目の要素はゼロです。規格化定数 1/21/\sqrt{2} により、ベクトルの長さが 11 になることが保証されます。

Qubit の順序に関する注記

Qiskit はリトルエンディアン順序を使用しています。これは、最も右側の Qubit が最初(または最下位)の Qubit とみなされ、最も左側の Qubit が最上位の Qubit であることを意味します。したがって、01\vert01\rangle のような状態を書くとき:

  • 最も右側のビットは Qubit 00 に対応し、状態 1\vert1\rangle にあります。
  • 最も左側のビットは Qubit 11 に対応し、状態 0\vert0\rangle にあります。

Gate の表現

状態がベクトルで表現できるように、Gate は行列で表現できます。Gate は状態に作用し、そのベクトルを新しいベクトルに変換します。

各 Gate は、状態がどのように変換されるかを規定する特定の行列に対応しています。この変換は、Gate 行列と元の状態ベクトルを掛け合わせることで適用されます。Gate 行列は状態ベクトルの左側に置かれます。

UψU |\psi\rangle

ここで、UU は Gate 行列を表し、ψ|\psi\rangle は状態ベクトルを表します。

例として、アダマール Gate を見てみましょう。アダマール Gate は 1 Qubit の Gate であり(回路図では「H」とラベル付けされた赤い箱)、状態 0\vert0\rangle12(0+1)\frac{1}{\sqrt{2}}(\vert0\rangle+\vert1\rangle) に、状態 1\vert1\rangle12(01)\frac{1}{\sqrt{2}}(\vert0\rangle-\vert1\rangle) に変換します。行列記法では、アダマールは次のように表されます。

H=12(1111) .H = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} ~.

理解度の確認

行列の掛け算を使って、アダマール行列が状態を期待どおりに変換することを示してください。(必要であれば、行列の掛け算の方法を学ぶことができます。)

Answer
H0=12(1111)(10)=12(11) H |0\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} ~\checkmarkH1=12(1111)(01)=12(11) H |1\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \end{pmatrix} ~\checkmark

Gate 行列について覚えておくべきことがいくつかあります。

  1. Gate 行列は常に正方行列であり、N×NN \times N の行列です。ここで NN は、適用される状態ベクトルの次元と同じです。例えば、1 つの Qubit しかない場合、状態ベクトルは 2 次元であり、Qubit の 2 つの可能な状態 0 と 1 を表します。この場合、このシステムに適用される Gate 行列の次元は 2×22\times 2 になります。
  2. 量子 Gate は可逆です。つまり、Gate の逆行列となる別の行列を見つけることができ、それは Gate の作用を元に戻し、Qubit を元の状態に変換します。
  3. 量子 Gate はまた、変換するベクトルの長さを保持します。量子状態ベクトルは常に長さ 11 を持ちます(これは先ほど説明した規格化定数によって保証されます)。Gate はベクトルを伸縮させず、単に回転させます。

これらはすべてユニタリ行列の性質です。ユニタリ行列の数学的性質についてさらに知りたい場合は、量子情報の基礎コースにある John Watrous の複数システムに関するレッスンで詳しく読むことができます。

測定の仕組み

量子状態を測定すると、結果は常に可能な結果の 1 つになります(1 つの Qubit の場合、0 または 1 のいずれか)。どの結果が得られるかはランダムですが、量子状態が各結果の確率を教えてくれます。

状態ベクトルの各要素がこれらの確率を決定します。特定の結果の確率を求めるには、その結果に対応する要素の2 乗を取ります。例えば、ある Qubit が次の状態にある場合:

ψ=12(11)=12(0+1),|\psi\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle),

最初の要素(0 に対応)は 1/21/\sqrt{2} であり、2 番目の要素(1 に対応)も 1/21/\sqrt{2} です。これらの数を 2 乗すると

(12)2=12=0.5,\left(\frac{1}{\sqrt{2}}\right)^2 = \frac{1}{2} = 0.5,

となり、0 が測定される確率は 50%、1 が測定される確率も 50% であることがわかります。

すべての 2 乗された要素の和は常に 1 になることを思い出してください。これは、測定するとき、何らかの結果が必ず得られるため、すべての可能な結果の確率の合計が 100% でなければならないという理由から、理にかなっています。

測定後、Qubit は観測された結果に収縮し、以前の重ね合わせは失われます。Qubit は今や古典的なビットのように振る舞います。測定は量子 Gate とは根本的に異なります。Gate が量子状態を決定論的かつ可逆的に変化させるのに対し、測定は本質的にランダムで不可逆です。

異なる基底での測定

デフォルトでは、量子 Circuit で Qubit を測定すると、1 つの軸に沿って Qubit の状態のみを測定することになります。これは計算基底、すなわち ZZ 基底と呼ばれ、状態 0\vert 0\rangle1\vert 1\rangle によって定義されます。0\vert 0\rangle 状態を真上を向くベクトルとして、1\vert 1\rangle 状態を真下を向くベクトルとして考えることができます。したがって、ZZ 基底での測定は「Qubit の状態は上を向いているか、下を向いているか?」という問いに答えるものです。

しかし、これは Qubit に対して問える唯一の問いではありません。Qubit の状態ベクトルは上か下のどちらかだけを向くわけではありません。0\vert 0\rangle1\vert 1\rangle の重ね合わせにより、状態ベクトルは三次元空間のあらゆる方向を向きます。どの方向を向くかは、重ね合わせの 2 つの部分の相対的な振幅と位相に依存します。したがって、標準的な ZZ 基底測定が「上か下か?」という問いを立てるのに対し、「左か右か?」や「前か後ろか?」という問いを立てることもできます。

これらの問いは、異なる基底での測定に対応しています。各基底には固有の 2 つの基底ベクトルのセットがあり、それがその基底での 2 つの可能な測定結果を定義します(ZZ 基底の 0\vert 0\rangle または 1\vert 1\rangle のように)。

  • Z 基底測定の結果は 0\vert 0\rangle または 1\vert 1\rangle に収縮します
  • X 基底測定の結果は +\vert +\rangle または \vert -\rangle に収縮します
  • Y 基底測定の結果は i\vert i\rangle または i\vert -i\rangle に収縮します

ここで

+=12(0+1)=12(01)i=12(0+i1)i=12(0i1)\begin{aligned} \lvert +\rangle &= \frac{1}{\sqrt{2}}(\lvert 0\rangle + \lvert 1\rangle) \\ \lvert -\rangle &= \frac{1}{\sqrt{2}}(\lvert 0\rangle - \lvert 1\rangle) \\ \lvert i\rangle &= \frac{1}{\sqrt{2}}(\lvert 0\rangle + i\lvert 1\rangle) \\ \lvert -i\rangle &= \frac{1}{\sqrt{2}}(\lvert 0\rangle - i\lvert 1\rangle) \end{aligned}

ここで i=1i=\sqrt{−1} は虚数単位です。ここで初めて、2 つの部分の間に位相差のある重ね合わせを見ています。位相は通常 eiθe^{i\theta} と書かれます。ここで θ\theta は複素平面における量子状態の振幅の角度であり、複素平面とは水平軸が実数を、垂直軸が虚数を表す 2 次元平面です。直感的には、ある波が別の波に対してどれだけずれているかとして考えることができます。つまり、波のピークが揃っているのか、一方の波がずれてそのピークがもう一方の谷に来ているのかということです。

パウリ行列と物理量

3 つの行列、いわゆるパウリ行列が、これら 3 つの異なる基底選択 XXYYZZ に関連しています。

X=(0110),Y=(0ii0),Z=(1001).X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}, \quad Y = \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}, \quad Z = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}.

これらはどのように測定基底と関連しているのでしょうか?一見すると、これらは通常の Gate 行列のように見えます。実際、そうです。各パウリ行列は Qubit に作用してその状態を変化させることができます。

  • パウリ-X0|0\rangle1|1\rangle を反転させます。古典的な NOT Gate のようなものです。
  • パウリ-Z0|0\rangle を変化させずに残しますが、1|1\rangle1-1 を掛けて相対位相を変化させます。
  • パウリ-Y は Qubit を反転させ、位相を導入します。

しかし、パウリ行列には同様に重要な 2 番目の解釈があります。量子力学では、測定可能な量はすべて*物理量(オブザーバブル)*と呼ばれ、物理量は行列で表されます。パウリ行列は 3 つの異なる軸に沿った測定に対応しており、それらの固有状態は各軸に沿った 2 つの可能な測定結果に対応しています。(固有状態という用語に馴染みがない場合でも大丈夫です。固有状態は単に、ある行列に関連する特別なベクトルのことです。)

  • ZZ → Z 基底での測定(0|0\rangle1|1\rangle
  • XX → X 基底での測定(+|+\rangle|-\rangle
  • YY → Y 基底での測定(i|i\ranglei|-i\rangle

これにより、パウリ行列が二重の役割を果たすように見える理由が説明されます。パウリ行列は状態に作用し(Gate として)、測定方向を定義する(物理量として)両方の役割を果たします。どちらの役割も同じ基礎数学から生まれています。

では、実際に X 基底や Y 基底で測定するにはどうすればよいでしょうか?デフォルトでは、量子コンピューターは Z 基底でしか測定できません。そのため、関心のある情報(X または Y)が Z 方向を向くように、Qubit の状態ベクトルを回転させて基底を変換する必要があります。その後、通常どおり Z 測定を行うだけです。

例えば、X 基底での測定は、アダマール Gate を適用してから Z 基底で測定することで行えます。アダマールは「X 情報」が「Z 情報」になるように状態を回転させます。その後、通常の測定で処理が完了します。

パウリ行列については、次のレッスンで詳しく見ていきます。そこでは、新しく身に付けた量子 Circuit の記述スキルを、量子物理学の実際の問題に応用します。

ベル状態の Circuit

これで出発点が整いました。状態はベクトルで表現でき、Gate は行列で表現でき、測定は状態を「収縮」させるということがわかりました。では、上のベル状態を作成して測定する Circuit を順を追って見ていきましょう。

2 つの Qubit の初期状態 00|00\rangle から始めます。

00=(1000)|00\rangle = \begin{pmatrix} 1 \\ 0 \\ 0 \\ 0 \end{pmatrix}

重ね合わせの生成

Circuit はまず、Qubit 0 にアダマール Gate を適用することから始まります。前のセクションで見たように、アダマールは Qubit を確定的な状態(0|0\rangle または 1|1\rangle)から、その両方の状態の組み合わせへと変換します。アダマール Gate は以下の通りです。

H=12(1111)H = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}

2 Qubit システムの最初の Qubit に適用するために、Qubit 0 に HH を適用して Qubit 1 はそのまま変化させない 4x4 の拡張行列を使用します。「最初の Qubit に HH を適用し、2 番目の Qubit には何もしない」と考えると良いでしょう。

H0=12(1100110000110011)H_0 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 & 0 & 0 \\ 1 & -1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & -1 \end{pmatrix}

次に、これを初期状態ベクトルに掛けます。

H000=12(1100110000110011)(1000)=12(1100)=12(00+01)H_0 |00\rangle = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 & 0 & 0 \\ 1 & -1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & -1 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 0 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \\ 0 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}}(|00\rangle + |01\rangle)

これで Qubit 0 は重ね合わせ状態になりました。

量子重ね合わせについてさらに詳しく

上記のような量子重ね合わせは、Qubit が同時に両方の状態にあると説明されることが多いです。しかし、この重ね合わせ状態を測定すると、結果は常に 00 または 11 であり、重ね合わせそのものを直接観測することはできません。実際、「Qubit が同時に両方の状態にある」という表現は誤解を招く可能性があります。より正確な説明としては、重ね合わせとは、異なる測定結果の確率を計算するための量子状態の数学的な記述であると言えます。重ね合わせが物理的に実在するという考え方もありますが、これはテストできない哲学的解釈であり、量子力学は測定結果の確率のみを予測します。

古典的な確率分布とは異なり、量子重ね合わせでは異なる成分が互いに干渉することができます。これは、互いに増幅または打ち消し合う重なり合う波のようなものです。この干渉により、量子アルゴリズムは古典的なランダム性では不可能な測定結果のパターンを生成することができます。


Qubit のもつれ

次に、制御 NOT(CNOT)Gate(2 つの Qubit をつなぐ青い点、垂直線、プラス記号の円として表示)が適用されます。この Gate は 2 つの Qubit を量子もつれ状態にします。このステップの後、一方の Qubit の状態はもう一方から独立して記述することができなくなります。

CNOT Gate は Qubit 0(制御 Qubit と呼ばれる)が状態 1\vert 1\rangle にある場合にのみ Qubit 1(ターゲット Qubit と呼ばれる)を反転させます。その行列は以下の通りです。

CNOT=(1000000100100100)\text{CNOT} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \end{pmatrix}

これをステップ 1 の状態に適用します。

(1000000100100100)12(1100)=12(1001)=12(00+11)\begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \end{pmatrix} \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \\ 0 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 0 \\ 0 \\ 1 \end{pmatrix} = \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle)

これで Qubit は量子もつれ状態になりました。一方を測定すると、もう一方の状態が即座に決まります。

量子エンタングルメントについてさらに詳しく

エンタングルメントは、重ね合わせと同様に、古典的なアナログが存在しない量子現象です。古典的なシステムでは、2 つの相関したビットはその値が連動している場合がありますが、各ビットは依然として確定的な値を持っています。たとえ知らなくても。例えば、2 枚のコインが常に同じ面を向くように固定されている場合、一方のコインが表であれば、もう一方も表であることがすぐにわかります。しかし見る前から、各コインはすでに確定的な状態にあります。

量子もつれ状態の Qubit では、状況が根本的に異なります。測定前は、どちらの Qubit も単独では確定的な値を持ちません。ペアだけが明確に定義された状態を持ちます。一方の Qubit を測定すると、もう一方の確率が即座に影響を受けます。距離がどれほど離れていても同様です。これは純粋な量子効果であり、古典的な統計や個々の Qubit に関する隠れた情報によって説明することはできません。

状態の測定

最後に、両方の Qubit が測定されます。測定すると、量子状態は古典的に許容された状態の 1 つに収縮します。

  • 00 、確率 1/22=0.5|1/\sqrt{2}|^2 = 0.5 で。
  • 11 、確率 1/22=0.5|1/\sqrt{2}|^2 = 0.5 で。

これにより、レッスン 1 の Circuit で観察した相関した測定結果が再現されます。

まとめ

このレッスンでは、量子コンピューター上で量子 Circuit を自信を持って独立して実行するために必要な量子力学の概念と数学的ツールを駆け足で学びました。量子状態がどのように表現されるか、Gate がそれらの状態をどのように変換するか、測定がどのように機能するか、そして重ね合わせとエンタングルメントがシンプルな Circuit からどのように自然に生まれるかを紹介しました。

レッスン 3 では、量子コンピューターでおもちゃの問題を解く全ワークフローを順を追って説明し、結果を解釈することで、これらのアイデアを実践に移します。

学習目標

レッスン 1 の学習目標を思い出してください。そこでは、Ψ\Psi^- ベル状態を作成するために Circuit を変更するよう課題を出しました。そのCircuit を使って、行列代数を実行し、Circuit が望ましい状態を生成することを確認してください。(ヒント:NOT または X Gate の行列形式を考える必要があります。)

This translation based on the English version of 2026年5月7日