量子コンピュータの仕組みとは?重ね合わせと干渉を計算で理解する

数理物理

量子コンピュータは、すべての答えを同時に計算し、そのまま読み出す装置ではありません。一回の測定で得るのは、通常は一つのビット列です。重ね合わせを作るだけでは、欲しい答えを取り出せません。

では、どこに計算の強みがあるのでしょうか。鍵は、振幅と位相を操作し、干渉によって欲しい情報を測定に現れやすくすることです。まず一個の量子ビットから始め、二回のゲート操作で干渉を確かめます。

その後、二量子ビットのもつれ、ショアとグローバーのアルゴリズムへ進みます。式の演算は理想的な装置を仮定し、実機での誤りや、問題ごとの高速化の条件とは分けて考えましょう。

量子コンピュータの基本単位は、量子ビット

0と1を区別する、測定の基準を決める

普通のビットは0か1の値を持ちます。量子ビットも、選んだ測定方法では0か1という結果を返します。この測定で区別する二つの状態を、次のように書きます。

\[|0\rangle=\begin{pmatrix}1\\0\end{pmatrix},\qquad|1\rangle=\begin{pmatrix}0\\1\end{pmatrix}\]

縦棒とかぎ括弧は、量子状態を表す記法です。右の0と1は、整数を掛けているのではなく、状態につけた名前です。列ベクトルの成分の順番を決めておくと、後の演算を行列の掛け算で追えます。

実物の量子ビットは、小さな0と1の文字ではありません。超伝導回路、イオンなどの物理系で、二つの状態を用意して制御します。どの方式でも、準備・操作・読み出しが必要ですが、そのための装置は同じではありません。

振幅は確率ではなく、符号や位相を持つ

一個の量子ビットの純粋状態は、二つの基底状態の重ね合わせとして書けます。ここでは、この純粋状態の記述から考えます。

\[|\psi\rangle=\alpha|0\rangle+\beta|1\rangle\]
\[P(0)=|\alpha|^2,\quad P(1)=|\beta|^2,\quad |\alpha|^2+|\beta|^2=1\]
記号/Symbol意味/Meaning単位・条件/Unit, condition
\(|\psi\rangle\)量子状態/Quantum stateここでは純粋状態
\(\alpha,\beta\)確率振幅/Probability amplitudes無次元の複素数。確率ではない
\(P(0),P(1)\)計算基底での測定確率/Measurement probabilities絶対値の二乗、合計1

振幅は負の値や複素数も取れますが、確率は0以上の実数です。例えば振幅が1/√2なら、二乗した確率は1/2です。この違いが干渉の余地を生みます。普通の確率は足しても消えませんが、振幅は符号や位相によって打ち消し合う場合があります。

量子状態の制御に使う希釈冷凍機の概念。特定の実機の写真ではない。AI生成イメージ
量子状態の制御に使う希釈冷凍機の概念。特定の実機の写真ではない。説明用のAI生成画像で、実際の実験・観測を記録した写真ではありません。

アダマールゲートで、重ね合わせを作る

状態に行列を掛ける操作

量子ゲートは状態を変える演算です。理想的な閉じた系のゲートはユニタリ変換で、確率の合計を保ちます。代表的なアダマールゲートHは、次の行列です。

\[H=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix}\]

この行列をそれぞれの基底状態へ掛けます。結果を一行へ詰めず、二つに分けると、符号の違いが見えます。

\[H|0\rangle=\frac{|0\rangle+|1\rangle}{\sqrt2}=|+\rangle\]
\[H|1\rangle=\frac{|0\rangle-|1\rangle}{\sqrt2}=|-\rangle\]

どちらも計算基底でそのまま測れば、0と1が半分ずつです。しかし、振幅の相対的な符号が違うため、さらに演算した結果は異なります。確率の一覧が同じだからといって、量子状態まで同じとは限りません。

まだ知らない0か1、という説明では足りない

コインを隠して表裏が分からない場合は、観測者が値を知らない状況です。一方、量子の重ね合わせでは、それだけでは表せない干渉が可能になります。その違いを見るには、すぐに測定せず、次のゲートまで演算をつなげます。

量子計算の途中の状態を、毎回普通のビットとして読み出してしまうと、使いたかった干渉を失う場合があります。単に「同時に0と1を入れた箱」と考えるより、どの演算と測定を行うかを指定した方が正確です。

Hゲートを二回かけると、なぜ0へ戻る?

1の振幅だけが、打ち消し合う

最初の状態を0とし、Hをかけた後、測定せずにもう一度Hをかけます。各成分へ作用させた結果を足すと、次のようになります。

\[H^2|0\rangle=\frac{H|0\rangle+H|1\rangle}{\sqrt2}\]
\[\begin{aligned}H^2|0\rangle&=\tfrac12\big[(|0\rangle+|1\rangle)\\&\qquad+(|0\rangle-|1\rangle)\big]\\&=|0\rangle.\end{aligned}\]

0の振幅は加わり、1の振幅は符号が逆なので消えます。理想的な装置で最後に測定すれば、0が確実に得られます。この計算は、振幅の符号が結果へ影響する干渉の具体例です。

間に測定を入れると、同じ結果にはならない

最初のHの直後に計算基底で測ると、0か1が半分の確率で現れます。その後にHをかけてもう一度測ると、どちらの場合も結果は半分ずつです。測定しなかった回路と、最後の分布が変わります。

したがって、Hを二回使ったという回数だけで結果は決まりません。途中の測定の有無が重要です。振幅をつないで計算することと、途中で得た普通の確率を足すことは、同じ操作ではありません。

パウリゲートは、値と位相を変える基本操作

X、Y、Zの役割を分ける

\[X=\begin{pmatrix}0&1\\1&0\end{pmatrix},\quad Z=\begin{pmatrix}1&0\\0&-1\end{pmatrix}\]
\[Y=\begin{pmatrix}0&-i\\i&0\end{pmatrix}\qquad(i^2=-1)\]
記号/Symbol意味/Meaning単位・条件/Unit, condition
X/Bit flip0と1の成分を交換する\(X|0\rangle=|1\rangle\)
Z/Phase flip1の成分の振幅に−1を掛ける\(Z|1\rangle=-|1\rangle\)
Y/Pauli Y成分と位相の両方に作用する\(Y|0\rangle=i|1\rangle\)

ここでiは虚数単位です。Zは0か1を直接入れ替えませんが、重ね合わせの相対位相を変えます。例えばプラスの状態へZをかけるとマイナスの状態になり、その後のHで測定結果の違いが分かります。

全体の符号と、相対的な符号は違う

状態全体へ同じ位相を掛けても、物理的な予測は変わりません。一方、重ね合わせの一方の成分だけの符号を変えると、干渉が変わります。0と−0という数字の話ではなく、二つの成分の関係を追っているのです。

\[X^2=Y^2=Z^2=I\]

Iは何も変えない恒等演算です。同じパウリゲートを二回かけると元へ戻ります。ただし、異なるゲートを使う場合は順番にも注意が必要です。行列の掛け算は一般に交換できず、同じゲートの集まりでも順序によって状態が変わります。

二量子ビットを、CNOTで結び付ける

左が1なら、右を反転する

二量子ビットでは、00、01、10、11という四つの基底を使います。ここでは左を制御ビット、右を標的ビットとします。CNOTは制御が1のときだけ、標的を反転する演算です。

\[\begin{aligned}|00\rangle&\to|00\rangle,&|01\rangle&\to|01\rangle,\\|10\rangle&\to|11\rangle,&|11\rangle&\to|10\rangle.\end{aligned}\]

この順番で基底を並べたときの行列は、次の形です。基底の順番を変えると見た目も変わるため、その指定は省けません。

\[\mathrm{CNOT}=\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{pmatrix}\]

Hの後につなげると、もつれを作れる

00を用意し、左へHをかけます。続いて左を制御とするCNOTを使うと、次の二段階でベル状態が得られます。テンソル積の記号⊗は、二つの系の演算を組み合わせることを表します。

\[|00\rangle\xrightarrow{H\otimes I}\frac{|00\rangle+|10\rangle}{\sqrt2}\]
\[\frac{|00\rangle+|10\rangle}{\sqrt2}\xrightarrow{\mathrm{CNOT}}\frac{|00\rangle+|11\rangle}{\sqrt2}\]

計算基底で測れば、00か11が半分ずつ現れます。ただし、結果の一致だけでもつれの全性質を確認したことにはなりません。普通の確率で00か11を半分ずつ用意した場合との違いには、別の測定方法での相関も調べます。

もつれは、好きな情報を瞬時に送る手段ではない

片方だけの結果はランダムで、観測者が0と1を自由に選べません。相関を確かめるには、双方の測定結果を通常の通信で照合します。不思議な相関と超光速の信号は別であり、量子計算では操作できる状態と測定結果の関係を使います。

量子状態の操作を考える光学装置のイメージ。本文の回路を実装した実験ではない。AI生成イメージ
量子状態の操作を考える光学装置のイメージ。本文の回路を実装した実験ではない。説明用のAI生成画像で、実際の実験・観測を記録した写真ではありません。

ショアのアルゴリズムは、素因数分解を周期へつなぐ

15の例で、何を求めたいのかを確かめる

整数Nの因数を探す問題を、剰余の周期を求める問題へ結び付けます。例としてN=15、15と互いに素なa=7を選びます。

\[f(x)=a^x\bmod N\]
記号/Symbol意味/Meaning単位・条件/Unit, condition
N、a/Integer and base因数分解する整数と、剰余の底1<a<N、aとNは互いに素
r/Orderaʳ≡1 (mod N)となる最小の正整数この例では4
gcd/Greatest common divisor最大公約数古典計算で求められる
\[\begin{aligned}7^1\bmod15&=7,&7^2\bmod15&=4,\\7^3\bmod15&=13,&7^4\bmod15&=1.\end{aligned}\]

この後に繰り返すため、周期は4です。重要なのは、大きな整数について、この周期の情報を効率よく取り出す演算です。量子フーリエ変換や位相推定を使い、周期の情報を測定結果へ結び付けます。

すべての累乗の答えを一覧で読み出すわけではありません。測定後の古典的な後処理も必要で、成功する情報が得られるまで再実行が必要になる場合もあります。

周期が得られたら、最大公約数を計算する

周期が偶数で、適切な条件を満たすとき、aのr/2乗から1を引いた数と足した数を使い、Nとの最大公約数を求めます。今回の例は次の計算です。

\[\begin{aligned}\gcd(7^2-1,15)&=\gcd(48,15)=3,\\\gcd(7^2+1,15)&=\gcd(50,15)=5.\end{aligned}\]

ただし、周期が偶数だけでは十分ではありません。aのr/2乗がNを法として−1になるような場合には、有用な因数が得られず、選び直します。また、最初の最大公約数の計算で因数が見つかる場合もあります。

小さな実演と、実用暗号を解く装置は別

15は普通のコンピュータでも簡単に因数分解できます。この例は速度の実証ではなく、周期と因数の関係を示すものです。大きな暗号を扱うには、十分な規模で長い回路を正確に動かせる、誤り耐性のある計算が必要になります。

理論的には、ショアのアルゴリズムは入力の桁数に対して多項式時間の方法です。しかし、その計算量と、必要な物理装置を実現する費用は別の情報です。「量子機なら直ちに暗号を解ける」と一足飛びに結論することはできません。

グローバーのアルゴリズムは、正解の振幅を増やす

正解かどうかを判定する回路を使う

利用できる構造のないN個の候補に、正解が一つあるとします。古典的には一般にNに比例する回数の判定が必要です。グローバーの方法は、量子的な判定回路を使えるという条件で、判定回数を平方根の規模へ減らします。

まず候補の重ね合わせを作り、正解の状態の位相を変えるオラクルを作用させます。その後に振幅を変える演算を加え、正解が測定される確率を高めます。適切な回数だけ繰り返し、最後に測定します。

\[\text{古典の判定回数: }O(N)\qquad\text{量子: }O(\sqrt N)\]

O記法は、問題が大きくなるときの回数の増え方を示します。秒数そのものではありません。100万の平方根は1,000ですが、全処理がちょうど1,000回の簡単な操作で終わるという意味ではありません。

データの読み込みや、判定回路の費用も必要

オラクルには、正解の条件を判定する量子回路が必要です。データを状態へ準備する費用、測定を繰り返す費用、誤り訂正も全体へ加わります。普通のデータベースをつなぐだけで、どんな検索も平方根の時間になるわけではありません。

また、索引や並び順を使える古典的な検索と、構造を使えない探索は違う問題です。正解の数が複数なら、反復回数の条件も変わります。比較する課題と、利用できる情報をそろえて評価する必要があります。

応用を考えるときは、条件も一緒に見る

材料・化学・暗号で、求める性能は違う

分子や材料の量子的な振る舞いの計算は、有力な研究分野です。ただし、必要な精度と対象の大きさによって、量子ビット数と演算回数が変わります。量子機を使えばすべての分子計算が必ず速くなる、とは言えません。

量子鍵配送は、量子状態と測定を利用して鍵を共有する別の技術です。暗号を解くための量子計算とは目的や装置が同じではありません。実装や認証の条件を無視して、あらゆる攻撃を防ぐ仕組みと考えることもできません。

AIや金融への期待も、課題ごとに確かめる

機械学習、最適化、金融の数値計算でも量子アルゴリズムが研究されています。しかし、「量子だから高精度」「候補が多いから速い」というだけでは根拠になりません。入力、欲しい出力、精度を定め、古典的な手法の改善も含めて比較します。

量子機の制御・測定を支える電子回路と配線のイメージ。AI生成イメージ
量子機の制御・測定を支える電子回路と配線のイメージ。説明用のAI生成画像で、実際の実験・観測を記録した写真ではありません。

量子ビット数だけでは、実力は決まらない

振幅が多くても、一回では全部読めない

n量子ビットの純粋状態には、2のn乗個の基底に対応する振幅があります。しかし、一回の計算基底の測定で得るのは、その中の一つのnビット列です。振幅の一覧を、そのまま読み出すことはできません。

欲しい情報が高い確率で出る演算を設計し、必要なら準備から測定までを繰り返します。分布や平均値を推定する場合には、繰り返し回数も計算の費用です。量子状態の記述が大きいことだけで、高速化が完成するわけではありません。

物理量子ビットと、論理量子ビットを分ける

実機には、状態の乱れ、ゲートのずれ、読み出しの誤りなどがあります。複数の物理量子ビットへ情報を符号化し、誤りを検出・訂正して扱う単位が論理量子ビットです。必要な物理量子ビット数は、誤り率や方式、求める信頼性で変わります。

誤り訂正は、未知の量子状態を単純にコピーして多数決する操作ではありません。符号に沿った追加の情報を調べ、計算したい状態の情報を直接読み出さずに、誤りの兆候を得る工夫が必要です。

性能の比較には、量子ビット数、ゲートや測定の誤り、接続できる組、回路の長さ、誤り訂正の負担が関わります。これらの条件をそろえて初めて、特定の課題をどれだけ信頼して計算できるかを評価できます。

まとめ

量子コンピュータは、重ね合わせの振幅と位相を操作し、干渉を通じて欲しい情報を測定へ結び付けます。Hを二回かける例では、打ち消し合う振幅が結果を決めます。ショアの周期探索とグローバーの振幅増幅は、異なる課題に対する異なる高速化です。入力、回路、測定、誤りの条件も含めて可能性を考えましょう。

出典・関連記事

サムネイルと本文画像はすべて新しく用意したAI生成イメージです。数式と数値例は原理を説明するためのもので、画像から得た測定値ではありません。

コメント

タイトルとURLをコピーしました