忠実度とトレース距離、量子状態の違いを二つの指標で読む

同じ大きさの二つの半透明の球体に、異なる向きの内部構造を配した淡色の抽象アート。

量子状態が目標にどれほど近いかを表すとき、「忠実度」という数値がよく使われます。しかし、同じ目標への忠実度が等しくても、状態が同じとは限りません。測り方を変えると、一方では出やすく、もう一方では出にくい結果が見つかることもあります。

この違いを、忠実度とトレース距離という二つの指標で見てみます。量子計算用ソフトウェアQuTiPの定義を手がかりに、1量子ビットの小さな行列だけで計算できる例を使います。

簡単にまとめると?

  • 忠実度は、平方根を取る定義と、その二乗を使う定義を区別します。同じ名前でも数値をそのまま比較できるとは限りません。
  • 目標への忠実度が同じ二つの状態でも、別の測定で得られる確率や、目標までのトレース距離は変わります。
  • 純粋状態同士で使える関係式を、混合状態を含む比較へ広げないことが大切です。

最初に「何を忠実度と呼ぶか」をそろえる

量子状態をまとめて表す道具が、密度行列です。1量子ビットなら2×2の行列で、どの測定からどの結果が得られるかという確率を計算できます。特定の状態ベクトルで表せる純粋状態も、複数の状態を確率的に混ぜた混合状態も扱えます。

二つの密度行列をρとσと書くと、この記事では忠実度を次のFで表します。

F(ρ, σ) = Tr √(√ρ σ √ρ)

Trは行列の対角成分を足す操作です。√ρは、各成分を別々に平方根にするのではなく、行列としての平方根を意味します。ここで使うのは、正しく正規化された、同じ次元・同じ基底で表された密度行列です。

QuTiP 5.1.1の固定版で確認したfidelityは、この平方根を取る側の定義です。一方、F²を忠実度と呼ぶ文献もあります。例えばFが約0.9487ならF²は0.9です。定義が違うだけの二つの数値を見て、「0.9の方が品質が低い」とは判断できません。[1][2]

また、ここで比較するのは量子状態です。量子操作を比べるプロセス忠実度や平均ゲート忠実度とは対象が異なるため、それらの数値との換算には踏み込みません。

目標への重なりが同じ二つの状態

目標を|0〉とし、基底の順序を|0〉、|1〉に固定します。目標の密度行列はσ=[[1, 0], [0, 0]]です。これと比較する二つの状態を用意します。

Aは、|0〉を90%、|1〉を10%の確率で混ぜた状態です。その密度行列は次のようになります。

ρA = [ 0.9   0   ]
     [ 0     0.1 ]

Bは、√0.9|0〉+√0.1|1〉という一つの純粋状態です。行列にすると、対角以外にも0.3が現れます。

ρB = [ 0.9   0.3 ]
     [ 0.3   0.1 ]

AとBの対角成分は同じです。|0〉か|1〉かを区別する測定、いわゆるZ基底での測定なら、どちらも|0〉が出る確率は0.9になります。

今回のように目標が純粋状態|0〉であるとき、忠実度の二乗はF² = 〈0|ρ|0〉です。この例では行列の左上を読めばよく、AもBもF²=0.9、F=√0.9≒0.9487です。ただし、F²をこの測定確率として読めるのは、指定した純粋な目標への射影という条件があるからです。一般の忠実度を、そのまま装置の成功率と呼ぶことはできません。

二つの行列の違いは、対角以外の成分にあります。Bの0.3は、この基底での重ね合わせに関わるコヒーレンスを表します。Aではその成分が0です。対角の確率だけをそろえても、行列全体まではそろいません。

目標は|0〉。Aは対角0.9、0.1の混合状態、Bは同じ対角と非対角0.3の純粋状態。どちらもFの二乗は0.9だが、トレース距離はAが0.1、Bが約0.3162。X基底でプラスが出る確率はAが0.5、Bが0.8。
図1 目標への忠実度が同じでも、状態全体は同じにならない例。指定した理想的な密度行列からの独自計算で、実機の測定値ではありません。原寸画像を開けます。

測り方を変えると、違いが確率に現れる

次は、|+〉=(|0〉+|1〉)/√2と、その直交する|−〉を区別するX基底で測ります。|+〉が出る確率は〈+|ρ|+〉です。今回の実数の行列では、四つの成分を足して2で割る計算になります。

Aでは(0.9+0+0+0.1)/2=0.5です。Bでは非対角成分も寄与して、(0.9+0.3+0.3+0.1)/2=0.8になります。Z基底では見分けられなかった違いが、X基底の予測には現れました。

これは、実際に何回測っても必ず50%や80%になるという意味ではありません。指定した状態から計算した理想的な確率です。有限回の測定結果にはばらつきがあり、状態を実験データから推定するには、その不確かさを別に扱う必要があります。

トレース距離は、目標との差を行列全体で計算する

トレース距離Dは、二つの行列の差Δ=ρ−σから計算します。QuTiPのtracedistに対応する定義は次のとおりです。[2]

D(ρ, σ) = ½ Tr √(Δ†Δ)

†は複素共役を取って転置する操作です。密度行列の差Δはエルミート行列なので、この式はΔの固有値の絶対値を足し、2で割る計算にもなります。各成分の差をただ足す方法とは異なります。

Aと目標の差は対角成分が−0.1と0.1で、固有値もこの二つです。その絶対値を足して2で割ると、D=0.1になります。

Bと目標の差は[[−0.1, 0.3], [0.3, 0.1]]です。この行列を二乗すると、対角成分が0.1、非対角成分が0になります。固有値は−√0.1と√0.1なので、D=√0.1≒0.3162です。同じ忠実度だった二つの状態に、異なる距離が得られました。

目標|0〉との比較 A:確率的な混合 B:純粋な重ね合わせ
F² 0.9 0.9
F √0.9 ≒ 0.9487 √0.9 ≒ 0.9487
トレース距離D 0.1 √0.1 ≒ 0.3162
Z基底で|0〉が出る確率 0.9 0.9
X基底で|+〉が出る確率 0.5 0.8

この表から「混合状態の方が常によい」とは言えません。Aは、この目標に対するトレース距離ではBより近い状態です。一方、Bの重ね合わせを利用したい用途で、非対角成分を失ったAをそのまま代わりにできるとは限りません。比較する目標と、必要な性質を決めてから指標を読みます。

純粋状態同士の関係式には、使える範囲がある

二つとも純粋状態なら、この記事のFの定義でD=√(1−F²)が成り立ちます。QuTiPのガイドも、純粋状態同士の条件を付けてこの関係を示しています。[1]

Bと目標はどちらも純粋状態なので、F²=0.9からD=√0.1を得られます。しかし、Aは混合状態です。同じ式を当てはめると約0.3162となり、直接計算した0.1と一致しません。忠実度だけからこの等式で距離を求める前に、両方の状態が純粋かを確かめる必要があります。

数値の横に、比較条件を残す

量子状態を比較する報告や計算では、まず忠実度がFとF²のどちらかを確認します。次に、比較対象の状態、基底と次元、純粋状態か混合状態かをそろえます。そのうえで、目的に関係する測定の予測や別の指標を併記すれば、同じ数字の裏にある違いを読み取りやすくなります。

今回の例は、正規化された理想的な1量子ビット状態の代数計算です。QuTiPの実行速度や量子装置の性能を試験したものではなく、測定誤差を含む密度行列の推定・修復も扱っていません。忠実度という一つの値から、状態の全情報や実用上の優劣を決めないことが、比較の出発点になります。

図表・数値例は、上記の定義に従って作成した独自の説明です。

出典

  1. QuTiP 5.1 User Guide — States and operators / Density matrices。密度行列と距離指標、純粋状態同士の関係式を参照。2026年10月16日UTC取得の保存版を使用。
  2. QuTiP 5.1.1 — qutip/core/metrics.py。固定コミット7accc77a70a08f965a29fdd13515f79cdcab9703のfidelityとtracedistの定義・実装を確認。ガイドの5.1系スナップショットと固定実装を区別し、最新版であるとは主張していません。