二つの量子ビットを合わせた状態は分かっている。でも、知りたいのは片方を測ったときに何が起こるかだけ。量子の計算では、こうした「全体から一部分へ」という見方が必要になります。装置の一部だけを観測するときや、周囲の環境を細かく追わず対象の変化を調べるときに使う考え方です。
そのための操作が部分トレースです。全体の状態から、残したい部分の観測を予測できる状態を取り出します。ただし、全体の表から不要な行や列を削る操作でも、測定結果を一つ選ぶ操作でもありません。何を残し、何を区別しなくなるのかを、二つの量子ビットA、Bで確かめます。
簡単にまとめると?
- 部分トレースは、見ない部分の自由度を足し合わせ、残した部分だけの観測を予測する密度行列を作ります。
- 全体が純粋な状態でも、もつれた一部分は混合状態になることがあります。一方、部分トレースの結果が必ず混合になるわけではありません。
- 同じ部分の状態から、元の全体を一意に復元することはできません。測定結果で条件を絞る操作との違いも確認します。
状態ベクトルと密度行列は、表す範囲が違う
まず、状態の書き方を整理します。量子ビットの純粋状態は、例えば|0〉、|1〉、あるいはその重ね合わせとして、一つの状態ベクトルで表せます。ここでは、|+〉=(|0〉+|1〉)/√2という等しい重みの重ね合わせも使います。
一方、|0〉を半分、|1〉を半分の確率で準備し、どちらを準備したかの情報を持たない場合は、その確率的な混合として扱います。こうした混合状態も純粋状態も、一緒に表せるのが密度行列です。密度行列を使っているというだけで、状態が混合だとは限りません。
0、1の順を基底に選んだ一つの量子ビットでは、密度行列は2行2列です。対角成分には、この基底で0、1を測る確率が入ります。非対角成分には、両成分の位相に関わる情報が含まれます。同じ基底での結果の割合だけでは、密度行列全体は決まりません。
見ないBの添字をそろえて、足し合わせる
AとBを合わせた密度行列は、基底を|00〉、|01〉、|10〉、|11〉の順にすると4行4列です。各ラベルの左側をA、右側をBと決めます。ここからAだけを残すと、結果は2行2列の縮約密度行列になります。「縮約」は、残した部分に必要な形へまとめたという意味です。
Aの状態をρA、全体をρABと書くと、部分トレースは次のように計算できます。a、cはAの行・列を指定する0か1、bは見ないBの0か1です。
ρA[a,c]=ρAB[(a,0),(c,0)]+ρAB[(a,1),(c,1)]
Bの行側と列側の値を同じにして、二通りを足し合わせます。例えば、Aが0である確率は、全体で00が出る確率と01が出る確率の和です。Aの非対角成分も同じ規則で求め、00と10を結ぶ成分に、01と11を結ぶ成分を加えます。単に左上の2行2列を抜き出す方法では、後者を落としてしまいます。
この操作で残したいのは、Aだけへ作用する観測をしたときの予測です。全体の状態を使ってAの観測量を計算しても、縮約密度行列から同じ観測量を計算しても、結果が一致するように情報をまとめています。Bとの共同測定で初めて分かる情報まで、Aの表へ残るわけではありません。
純粋な全体から、異なる二つの結果が出る
最初の例は、Aが|+〉、Bが|0〉という積状態です。全体は|+〉⊗|0〉で、A、Bがもつれていません。Bを部分トレースしても、Aには元の|+〉の状態が残ります。密度行列の四つの成分がすべて1/2ですが、これは純粋状態です。
二つ目は、ベル状態Φ+=(|00〉+|11〉)/√2です。こちらも全体としては一つの状態ベクトルで表せる純粋状態ですが、AとBはもつれています。Bを部分トレースすると、Aの密度行列は対角成分が1/2、非対角成分が0になります。これをI/2と書きます。Iは2行2列の単位行列です。

両者を数値でも区別してみます。密度行列ρを二回掛けて、その対角成分を足したTr(ρ²)を純度と呼びます。正しく規格化された状態では、純粋状態の純度は1です。一つの量子ビットのI/2では1/2になります。
| A、Bの全体 | 全体の純度 | Bを部分トレースしたA | Aの純度 |
|---|---|---|---|
| 積状態 |+〉⊗|0〉 | 1 | 対角・非対角とも1/2の |+〉の密度行列 | 1 |
| ベル状態 Φ+ | 1 | I/2 | 1/2 |
| |00〉と|11〉を半分ずつ混ぜた状態 | 1/2 | I/2 | 1/2 |
全体が純粋であるという条件の下では、一部分の状態が混合になることが、もつれの存在を示します。ただし、全体が混合でもよい場合まで、この判断を広げることはできません。表の三つ目では、00と11を半分ずつ選んで準備しただけで、A、Bの間にもつれはありません。それでもAだけを見ると、ベル状態と同じI/2になります。
つまり、局所の混合には、もつれた相手を見ていない場合も、古典的にどの準備だったかを知らない場合も含まれます。Aだけの状態が同じだからといって、A、Bの共同の状態や相関まで同じとは言えません。
部分トレースは、測定結果を選ぶ操作ではない
ベル状態Φ+で、今度はBを0、1の基底で測ったとします。結果が0だった試行だけを選べば、対応するAの状態は|0〉です。結果が1だった試行だけを選べば、Aは|1〉です。このように、得られた結果を条件にして試行を絞る扱いは、Bを区別せずまとめたI/2とは違います。
結果を使わず、二通りをそれぞれの確率で平均すれば、AはI/2になります。この例では、結果を捨てた測定から求めたAの状態と、元の全体からBを部分トレースした状態が一致します。しかし、部分トレースの計算自体が、実際にBを測定したことを意味するわけではありません。Bを観測できない場合でも、Aだけの予測を作るために計算できます。
この区別は、条件付きの実験データを比較するときに役立ちます。「Bが0だった回のA」と「Bの結果をまとめたA」では、比較する集団が違います。前者の結果を、部分トレースで得た無条件の予測とそのまま照合すると、別の問いへの答えを比べることになります。
QuTiPでは「残す部分」を指定する
QuTiPのQobj.ptrace(sel)では、selに残したい成分系の番号を渡します。消したい番号ではありません。A、Bの順に構成した二量子ビットなら、ptrace(0)はAを残し、ptrace(1)はBを残します。
ここで0、1は、測定値の0、1を選ぶ引数ではなく、全体を構成する部分の番号です。また、単に4行4列であるという情報だけで、二量子ビットの構成が決まるわけではありません。QuTiPではdimsが部分ごとの次元を保持するので、その並びを確認してから残す番号を指定します。
確認した5.1.1の実装は、状態ベクトルを受け取った場合に、対応する外積を作ってから部分トレースの処理へ渡します。その結果を密度行列として受け取ることと、その状態が混合かどうかは別の判断です。本稿はQuTiP 5.1の公式解説と5.1.1の固定コードを参照したもので、最新版や実機の性能評価ではありません。表の数値も、QuTiPを実行した結果ではなく、有理数を使った独立の行列計算です。
部分だけの予測に必要な情報を残す
部分トレースを使う前には、対象の分け方、残す部分、条件付きの結果かどうかをそろえます。Aだけの観測を予測したいなら縮約密度行列で足りますが、A、Bの共同の関係を知りたいなら全体の状態や追加の観測が必要です。
部分トレースは、全体を組み立てるテンソル積を機械的に逆向きへ戻す操作ではありません。同じAの状態へまとまる異なる全体があるため、残った表だけから元の全体を復元することはできません。必要な部分の予測を保つことと、全体の情報をすべて保つことを分けて考えるのが、この操作を使う出発点になります。
出典
- QuTiP 5.1 Documentation、Using Tensor Products and Partial Traces — Partial trace。残す部分の指定、状態ベクトル・密度行列からの部分トレース。2026年10月17日確認。
- QuTiP 5.1 Documentation、Manipulating States and Operators — Density matrices。純粋状態の外積と確率的な混合の構成。
- QuTiP 5.1.1、Qobj.ptraceの固定実装。選択対象、次元情報、状態ベクトルからの射影処理。本文の三状態と純度の表はQuantum Seaによる独自の代数計算です。
