LoginSignup
1
1

行列積状態・テンソルトレイン分解

Last updated at Posted at 2024-05-01

この記事では、行列積状態について自分用にまとめておきます。

量子状態と行列積状態

まず量子状態がどのように記述できたかを思い出しましょう。例えば、$S=\frac{1}{2}$スピン6個が相互作用する系を考えましょう。z方向のスピン固有状態を$|0>$と$|1>$と書くことにすると、この系の任意の状態は、

\begin{align*}
|\psi>&=\sum_{abcdef=0,1}c_{abcdef}|abcdef> \\
&=c_{000000}|000000>+c_{000001}|000001>+c_{000010}|000010>+\cdots
\end{align*}

係数$c_{abcdef}$は、$2^6=64$個の要素を持つテンソルとみなすことができます。ここで、係数$c_{abcdef}$を次のように見てみましょう。

\begin{align*}
c_{abcdef} = c_{a\big[bcdef\big]}
\end{align*}

右辺は$2^1×2^5$の行列という意味です。この行列を特異値分解すると、

\begin{align*}
c_{a\big[bcdef\big]} = \sum_{\xi\xi'}U^{a}_{\xi}\lambda_{\xi \xi'}V_{\xi'\big[bcdef\big]}^{*}&=\sum_{\xi}U^{a}_{\xi}\sum_{\xi'}\lambda_{\xi \xi'}V_{\xi'\big[bcdef\big]}^{*}=\sum_{\xi}U^{a}_{\xi}D_{\xi bcdef} \\
\Big(D_{\xi bcdef}&:=\sum_{\xi'}\lambda_{\xi \xi'}V_{\xi'\big[bcdef\big]}^{*}\Big)
\end{align*}

となります。Dテンソルについても次のように特異値分解すると、

\begin{align*}
D_{\xi b\big[cdef\big]}=\sum_{\eta\eta'}&U^{b}_{\xi \eta}\lambda_{\eta \eta'}V_{\eta'\big[cdef\big]}^{*}=\sum_{\eta}U^{b}_{\xi \eta}F_{\eta cdef} \\
\Big(F_{\eta cdef}&:=\sum_{\eta'}\lambda_{\eta \eta'}V_{\eta'\big[cdef\big]}^{*}\Big)
\end{align*}

となります。同様にして次々に特異値分解すると最終的には、

\begin{align*}
c_{abcedf} = \sum_{\xi \eta \mu \nu \omega}U^{a}_{\xi}U^{b}_{\xi \eta}U^{c}_{\eta \mu}U^{d}_{\mu \nu}U^{e}_{\nu \omega}\lambda_{\omega}{V^{f}_{\omega}}^{*}
\end{align*}

となります(異なる脚を持つテンソルは別物)。以上より、6脚テンソルを、3脚テンソルの縮約で書くことができました。最終的に得られた状態は、

\begin{align*}
|\psi>=\sum_{abcdef=0,1}\sum_{\xi \eta \mu \nu \omega}U^{a}_{\xi}U^{b}_{\xi \eta}U^{c}_{\eta \mu}U^{d}_{\mu \nu}U^{e}_{\nu \omega}\lambda_{\omega}{V^{f}_{\omega}}^{*}|abcdef>
\end{align*}

となります。これを計算物理学では、行列積状態(Matrix Product State)と呼びます。試しに状態のノルムを計算してみましょう。得られたそれぞれの3脚テンソルはユニタリー性を満たすので、

\begin{align*}
<\psi|\psi>=\sum_{\omega}\lambda_{\omega}^{2}
\end{align*}

つまりノルムはその場所の特異値の2乗和で計算できます(量子論ではノルムは規格化されるので、$\sum_{\omega}\lambda_{\omega}^{2}=1$となるように取ります)。
上のように左の添字から順に特異値分解を繰り返したので、それぞれ添字の縮約次元は、

\begin{align*}
&\xi :2^1=2 \\
&\eta :2^2=4 \\
&\mu :2^3=8 \\
&\nu :2^4=16 \\
&\omega :2^1=2
\end{align*}

となり、中心に向かうほど指数的に増えてしまい、この分解に意味があるのか不思議に思います。しかし1次元量子系の低エネルギー状態(エネルギーギャップを持つ)は、縮約次元を少なく抑えても精度良く元の状態を記述できることが知られています。詳しい部分には踏み込みませんが、元の指数的に増える要素を少なくしてコンピュータに格納できるのです。また状態をMPSで持っておくことで、相関関数などの物理量を高速に計算できます。(テンソル分解業界では、多脚テンソルを上のように分解することをTensor-Train分解と言います)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1