らんだむな記憶

blogというものを体験してみようか!的なー

量子回路とテンソルネットワーク

引き続き テンソルネットワークの進展 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社 の読書メモ。

量子状態 $\ket{000}$ について、左から右に 1 番目、2 番目、3 番目と解釈し、1, 2 番目の量子ビットに作用する量子ゲート $U^{(1)}$ (例えば、$CX_{1,2}$)と、2, 3 番目の量子ビットに作用する量子ゲート $U^{(2)}$ を考える。
イメージとしては、

である。これまでの書き方を踏襲すると、$U^{(1)}$ の作用は以下のように書ける:

$$
\begin{align*}
\ket{000} \xrightarrow{U^{(1)}} \left( \sum_{j_1,j_2=0}^1 u_{j_1 j_2 0 0}^{(1)} \ket{j_1 j_2} \right) \otimes \ket{0} = \sum_{j_1,j_2=0}^1 u_{j_1 j_2 0 0}^{(1)} \ket{j_1} \otimes \ket{j_2 0}
\tag{1}
\end{align*}
$$

次に $U^{(1)}$ の作用を考える。2 量子ビットの状態 $\ket{j_2 0}$ への $U^{(1)}$ の作用を書き下すと、

$$
\begin{align*}
\ket{j_2 0} \xrightarrow{U^{(2)}} \sum_{k_2,k_3=0}^1 u_{k_2 k_3 j_2 0}^{(2)} \ket{k_2 k_3}
\tag{2}
\end{align*}
$$

と書ける。(1) と (2) を併せると、

$$
\begin{align*}
\ket{000} \xrightarrow{U^{(2)} U^{(1)}} \sum_{k_2,k_3=0}^1 u_{k_2 k_3 j_2 0}^{(2)} \sum_{j_1,j_2=0}^1 u_{j_1 j_2 0 0}^{(1)} \ket{j_1 k_2 k_3}
\tag{3}
\end{align*}
$$

となる。
係数部分を見ると、

$$
\begin{align*}
\sum_{k_2,k_3,j_1=0}^2 \left( \sum_{j_2=0}^2 u_{k_2 k_3 j_2 0}^{(2)} u_{j_1 j_2 0 0}^{(1)} \right)
\end{align*}
$$

となっており、$U^{(1)} = ( u_{ijkl}^{(1)} )$ と $U^{(2)} = ( u_{ijkl}^{(2)} )$ の縮約 (contraction) が現れている。

ということで、量子回路を構成する量子ゲートのユニタリ表現として現れるテンソルの縮約について、量子回路を測定することで計算できることになる。このことを

量子コンピュータができる計算は、1, 2 量子ビットゲートからなるテンソルネットワークの縮約を効率的に取ることである、といってしまっても差し支えない。

という表現でまとめてある。
これだけだと理論的にはそうだと分かるが、それを意識しなくても量子回路の実装はできるため、テンソルネットワークの旨味の実感はない。他の事例も通じて掴んでいきたい。

テンソルネットワークの基礎と応用 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社 第 12 章が関係あると言えばあるが、上記の話についてはそれほど書いてあるようにも見えない。実装よりのリソースからアプローチするか・・・。