Schmidt分解、式の項数に惑わされず量子状態の重みを読む

傾いた淡い青と紫の枠を、太い緑色と細い杏色の二本の橋が結んでいる。

二つの量子系を合わせた状態を書き下すと、いくつもの項が現れます。しかし、式に項が多いことと、二つの系の間にもつれがあることは同じではありません。各系の基底、つまり状態を表すものさしを選び直すだけで、見かけの項数は変わります。

Schmidt分解(シュミット分解)は、二体系の純粋状態を、対応する基底の組と非負の係数で整理する方法です。係数を二乗した重みを見ると、基底の見かけに左右されずに比較できる情報が残ります。ここでは二つの量子ビットA、Bを例に、係数行列を作るところから、係数・重み・ランクの違いまでを追います。

簡単にまとめると?

  • Schmidt分解では、二体系の純粋状態を、A側とB側の直交する基底の組へ整理します。元の式にある項の数を数える方法ではありません。
  • 非負のSchmidt係数を二乗した値が、片方だけの状態の固有値になります。係数そのものを確率として足すのは誤りです。
  • 非ゼロ係数の数がSchmidtランクです。純粋状態ならランク1は積状態、2以上はもつれた状態ですが、同じランクでも重みの偏りは異なります。

四つの振幅を、2行2列へ並べる

二つの量子ビットの純粋状態を、A、Bの順で |ψ〉=c00|00〉+c01|01〉+c10|10〉+c11|11〉 と表します。各cは振幅で、一般には複素数です。状態を規格化しているなら、四つの振幅の絶対値の二乗を足すと1になります。

この四つを、Aの値を行、Bの値を列として並べたものが係数行列Cです。最初の行にc00とc01、次の行にc10とc11を置きます。これは全体の密度行列ではありません。二量子ビット全体の密度行列は4行4列ですが、ここで使う表は状態ベクトルの四つの成分を並べ直した2行2列です。

Cに特異値分解、略してSVDを行うと、非負の特異値sと、左右の基底を取り出せます。このsがSchmidt係数です。対応するAの基底をa、Bの基底をbとすると、状態は |ψ〉=Σ s_k |a_k〉⊗|b_k〉 という形になります。A側もB側も、同じ側の基底同士は直交し、長さは1です。

複素数を扱う実装では、右側のベクトルの共役にも注意します。通常のSVDをC=UΣV†と書く約束なら、この係数の並べ方でB側に使うのはVの列を複素共役したベクトルです。ソフトウェアが返すものがVなのかV†なのかも確認します。実数だけの例で問題が見えなくても、複素数の状態へそのまま持ち込めるとは限りません。

式の項数と、Schmidtランクは違う

まず |+〉⊗|+〉 を考えます。|+〉は(|0〉+|1〉)/√2ですから、展開すると00、01、10、11の四項が全て現れ、振幅は全て1/2になります。それでも、最初からAの状態とBの状態の積になっており、もつれはありません。

係数行列は、全成分が1/2の表です。SVDで得られる非ゼロの特異値は1だけで、もう一つは0です。非ゼロのSchmidt係数の数をSchmidtランクと呼ぶので、この状態のランクは1です。「四項あるからもつれている」という判断ができないことが分かります。

次に √0.8|00〉+√0.2|11〉 を考えます。係数行列は対角成分が√0.8、√0.2で、非対角成分は0です。二つのSchmidt係数がどちらも非ゼロなので、ランクは2です。この純粋状態は、一つのAの状態と一つのBの状態の積にはまとめられません。

係数を二乗して、比較する重みへ

規格化された状態では、Schmidt係数の二乗を全て足すと1です。先ほどの例なら係数は約0.8944と0.4472ですが、重みは0.8と0.2になります。係数の和は1ではありません。計算結果を確率として読むときは、どちらを表示しているのかを区別します。

Aだけの状態を作るためにBを部分トレースすると、B側の基底が直交しているため、異なる番号を結ぶ項が消えます。残るのは、A側の各基底の状態へs_k²の重みを付けた和です。したがって、Aだけの密度行列の非ゼロ固有値はs_k²になります。Bだけを残した場合にも同じ非ゼロ固有値が得られます。二つの系の次元が異なる場合、余分なゼロ固有値の数まで同じとは限りません。

四項の積状態はSchmidtランク1、偏った重み0.8と0.2の純粋状態と均等な0.5と0.5の純粋状態はともにランク2となる比較。係数と二乗した重みを区別する。
独自の二量子ビット例。横棒はSchmidt係数の二乗で、合計1の重みを表す。SVDと縮約状態の固有値を計算で照合したもので、量子装置の測定結果ではない。

均等な例 (|00〉+|11〉)/√2 の重みは0.5、0.5です。こちらもランクは2ですが、0.8、0.2の例と同じ分布ではありません。ランクは、非ゼロの組がいくつ必要かを示します。重みがどれほど均等かまで、一つの整数で表しているわけではありません。

基底を変えても、係数は変わらない

Aだけ、またはBだけにユニタリ変換を施すと、局所の基底が回転します。係数行列の各成分は変わっても、特異値は変わりません。これは、同じ二体系の分け方を保ったまま行う局所の変換についての性質です。AとBを結びつける一般の二体系の操作にまで広げることはできません。

独自計算では、重み0.8、0.2の例のA側へHadamard変換を施し、さらにB側へ位相を加えました。元の係数行列は対角の二成分だけでしたが、変換後は四成分が非ゼロになります。それでも二つのSchmidt係数と、その二乗の0.8、0.2は一致します。振幅の見た目を比べるより、基底に依存しない情報を取り出して比べる利点がここにあります。

一方、Schmidt係数が同じ値に重なっている場合などには、対応する基底の選び方が一意とは限りません。二つの計算が異なる基底ベクトルを返したというだけで、片方が誤りとは言えません。元の状態を再構成できるか、係数が一致するか、直交性が保たれるかを確認します。

適用する状態と、数値の小ささを確認する

ここまでの議論は、全体が一つの状態ベクトルで表せる純粋状態であることを前提にしています。混合状態の4行4列の密度行列を、説明なく2行2列へ読み替えて同じ判定へ入れてはいけません。混合状態のもつれの判定は別の問題です。

たとえば00を80%、11を20%の確率で準備した混合状態は、積状態を確率的に選んだだけです。Aだけの固有値は0.8、0.2となり、先のもつれた純粋状態と一致します。それでも全体は同じ状態ではありません。「片方の重みが同じ」だけから、全体のもつれを断定しないことが大切です。

数値計算では、本来ゼロの特異値が丸め誤差でごく小さく残る場合があります。ランクを表示するときは、何以下をゼロとみなすかという許容値も記録します。これは計算上の判断基準であり、小さな値を消しただけで実際の状態の性質が確定するわけではありません。

Schmidt分解を使うときは、まず二体系への分け方と基底の並びを定め、純粋状態であることと規格化を確認します。そのうえで、係数、二乗した重み、非ゼロの個数を分けて読む。式の項数や見た目に引っぱられず、比較したい情報を選ぶための道具として使えます。

出典

  1. John Watrous, The Theory of Quantum Information, Chapter 1(2018)。印刷ページ31、Schmidt decompositions、式1.162〜1.164。二体系ベクトルと特異値分解の関係。
  2. 同書、Chapter 2(2018)。Sections 2.1.2の量子状態・混合と純粋状態(印刷ページ62〜64)。数値と図は本稿の独自計算。