1. フェルミオン演算子の性質
第二量子化されたフェルミオンは、以下の反交換関係を満たす生成消滅演算子\(c^\dagger_i,c_i\)によってうまく記述される。
\begin{align}
[c_{i},c^\dagger_{j}]_+ &= \delta_{ij} \\
[c_{i},c_{j}]_+ &= 0 \tag{1}\\
[c^\dagger_{i},c^\dagger_{j}]_+ &= 0
\end{align}
ただし\([\cdot,\cdot]_+\)は反交換子で、\([A,B]_+ = AB+BA\)である。
今回は、\(n\)モードを持つフェルミオン系の生成消滅演算子と\(n\)個のスピン1/2系を結びつける変換である、Jordan-Wigner変換を導出してみる。
こんな変換どこで使うのかと思われるかもしれないが、量子コンピュータでフェルミオンの計算をするときにこの変換が利用できる。まあ実は、Braviy-Kitaev 変換という、ある意味もっと性能の良い変換があるのでJordan-Wigner 変換は使われることはないかもしれない。しかしBraviy-Kitaev変換より直感的でわかりやすい変換なのだ。
2.スピンとフェルミオンの類似性
フェルミオンはスピン量子数\(1/2\)のスピンとよく似ている。\(n\)スピン1/2系の\(i\)番目のスピンは、上向き\(\ket{\uparrow_i}\)と下向き\(\ket{\downarrow_i}\)の2状態によって表すことができるし、フェルミオンもある軌道\(i\)を粒子が占有している状態\(\ket{1_i}\)と占有していない状態\(\ket{0_i}\)の2状態で表せるからだ。(このページでは、\(\ket{\uparrow}\)と\(\ket{\downarrow}\)は、\(z\)方向のスピン演算子\(s_z\)についてそれぞれ固有値 \(\pm 1/2\) を持つ固有状態であるとする。一応断っておくと、\(\hbar\)は\(1\)としている。)
この2つを結びつける方法としては、以下の対応関係をつけるものがすぐに思いつくだろう。
\begin{align}
\ket{\uparrow_i} &\longleftrightarrow \ket{1_i}\tag{2}\\
\ket{\downarrow_i} &\longleftrightarrow \ket{0_i}
\end{align}
このような状態の対応関係から、演算子側の対応関係を導き出したものが
Jordan-Wigner 変換
である。
3.スピン演算子のおさらい
早速対応関係をつけていきたいところではあるのだが、記号の定義も兼ねてスピン演算子のおさらいをしておこう。スピン演算子は、パウリ演算子 (パウリ行列)
\begin{align}
\sigma_x&= \left(\begin{array}{cc}0&1\\1&0\end{array}\right),\\
\sigma_y&= \left(\begin{array}{cc}0&-i\\i&0\end{array}\right),\\
\sigma_z&= \left(\begin{array}{cc}1&0\\0&-1\end{array}\right)
\end{align}
によって表すのが便利だった。これを使うとスピン演算子は
\[s_x=\frac{1}{2}\sigma_x,~s_y=\frac{1}{2}\sigma_y,~s_z=\frac{1}{2}\sigma_z\]
と表せる。また、昇降演算子\(s_+,s_-\)というものもあったことを思い出そう。これは
\begin{align}
s_+ &= s_x+is_y = \left(\begin{array}{cc}0&1\\0&0\end{array}\right),\\
s_- &= s_x-is_y = \left(\begin{array}{cc}0&0\\1&0\end{array}\right)
\end{align}
と定義される演算子で、\(s_-\ket{\uparrow} = \ket{\downarrow}\), \(s_-\ket{\downarrow} = \ket{\uparrow}\)のような作用をする。
4.演算子の対応関係をつける
さて、ここからはフェルミオンの演算子\(c_i^\dagger,c_i\)と、スピン演算子\(s_{i x},s_{i y},s_{i z}\)の対応関係をつけていこう。状態に対して(2)のように\(\ket{0_i},\ket{1_i}\)と\(\ket{\uparrow_i},\ket{\downarrow_i}\)の対応関係をつけると、直感的な演算子の対応関係としては、
\begin{align}
c_i^\dagger &\longleftrightarrow s_{i +}\\
c_i &\longleftrightarrow s_{i -}
\end{align}
とするのが良さそうだろう。この対応は状態の対応関係とも整合性があるし、この\(s_{i +},s_{i -}\)という演算子がフェルミオンの交換関係 (の一部) を満たしていて、
\begin{align}
[s_{i -},s_{i +}]_+ & = 1\\
[s_{i -},s_{i -}]_+ & = 0\\
[s_{i +},s_{i +}]_+ & = 0\\
\end{align}
となっている。
しかしながら、実はこれだけでは多フェルミオン系の演算子を再現できてはいない。例えば違うスピン\(i\neq j\)間について\(s_{i -},s_{j +}\)の交換関係をみてみると、これらが可換であることから、
\[[s_{i -},s_{j +}]_+ = 2s_{i -}s_{j +}\]
となってしまって、フェルミオンで\(i\neq j\)のときに成り立つべき、
\[[c_{i},c^\dagger_{j}]_+ = 0\]
という交換関係とは全く違う結果となってしまう。この問題を解決するためにもう一度原点に帰って、状態の対応関係から見直してみよう。
問題になっているのは多粒子系の状態の対応関係である。そこで\(n\)モードのフェルミオンの多粒子状態がどのように定義できたかを思い出す。それはフェルミオンの真空\(\ket{0}\)に対して、生成演算子を次々にかけていった状態、
\[\ket{f_n f_{n-1}\cdots f_2 f_1} = (c^\dagger_n)^{f_n}(c^\dagger_{n-1})^{f_{n-1}}\cdots(c^\dagger_2)^{f_2}(c^\dagger_1)^{f_1}\ket{0}\tag{3}\]
として定義できた。\(f_i\)は\(0,1\)のどちらかをとる定数であり、\(f_i\)が\(1\)であるときその軌道\(i\)にフェルミオンが入っている状態を示す。ここで気づいてほしいのは、\(\ket{f_n f_{n-1}\cdots f_2 f_1}\)という状態の定義には、\(c^\dagger_i\)を作用させる順番が重要であるということだ。例えば作用させる順番を1つ入れ替えると、フェルミオンの交換関係(1)から、状態の符号が正負反転してしまう。
一方で、同じ形式で\(n\)スピンの状態を書こうとするなら、\(\ket{0}\)を全てのスピンが下向き\(\ket{\downarrow}\)である状態として、
\[\ket{\sigma_n \sigma_{n-1}\cdots \sigma_2 \sigma_1} = (s_{n+})^{\sigma_n}(s_{n-1,+})^{\sigma_{n-1}}\cdots(s_{2+})^{\sigma_2}(s_{1+})^{\sigma_1}\ket{0}\tag{4}\]
とするのが良いだろう。ただし\(\sigma_i\)は上向き、下向きのどちらかをとるものとし、右辺の指数に入っている\(\sigma_i\)は上向きの場合\(1\), 下向きの場合\(0\)と解釈することとする。フェルミオンの演算子とは違い、こちらは演算子を作用させる順番によっては符号が変化しない。このことが先程の対応関係がうまく行かなかった原因だと考えられるだろう。
ではどうすれば良いか。\(c^\dagger_i\)の作用が符号の変化も含めてどのようになっているか考えるために、(3)で定義したフェルミオンの状態に、1つフェルミオンを付け足す操作、つまり\(c^\dagger_i\)を書ける操作をしてみよう。モード\(i\)が占有されている場合には付け足すことができないので、\(f_i=0\)であると仮定する。
\begin{align}
&c^\dagger_i \ket{f_n f_{n-1}\cdots f_{i+1}0f_{i-1} f_2 f_1} \\
&= c^\dagger_i (c^\dagger_n)^{f_n}(c^\dagger_{n-1})^{f_{n-1}}\cdots(c^\dagger_{i+1})^{f_{i+1}}(c^\dagger_{i-1})^{f_{i-1}}\cdots(c^\dagger_2)^{f_2}(c^\dagger_1)^{f_1}\ket{0}
\end{align}
この式の生成消滅演算子を(3)式の定義と同じ順番にするために、フェルミオンの交換関係(1)を使って次々に\(c^\dagger_i\)を右へ右へと移動させる。各\(f_j\)が\(1\)であるときだけ符号が反転するので、
\begin{align}
&= (-1)^{f_n+f_{n-1}+\cdots+f_{i+1}} (c^\dagger_n)^{f_n}(c^\dagger_{n-1})^{f_{n-1}}\cdots(c^\dagger_{i+1})^{f_{i+1}}c^\dagger_{i}(c^\dagger_{i-1})^{f_{i-1}}\cdots(c^\dagger_2)^{f_2}(c^\dagger_1)^{f_1}\ket{0}\\
&= (-1)^{f_n+f_{n-1}+\cdots+f_{i+1}} \ket{f_n f_{n-1}\cdots f_{i+1}1f_{i-1} f_2 f_1}\tag{5}
\end{align}
となる。
この議論からスピン系でフェルミオンの演算子を構成するためのヒントが得られる。スピン系の状態を
\begin{align}
&\ket{\sigma_n \sigma_{n-1}\cdots\sigma_{i+1}\downarrow\sigma_{i-1}\cdots \sigma_2 \sigma_1}\\
&\to (-1)^{\sigma_n+\sigma_{n-1}+\cdots+\sigma_{i+1}}\ket{\sigma_n \sigma_{n-1}\cdots\sigma_{i+1}\uparrow\sigma_{i-1}\cdots \sigma_2 \sigma_1}\tag{6}
\end{align}
と変換できるような演算子を作れば、それがフェルミオンの生成演算子に対応していると考えられるだろう。\(i\)番目のスピンの状態を\(\uparrow\)に反転させるには、\(s_{i+}\)を使えばよかったのだから、あとは\(n\)から\(i+1\)番目のスピンの状態に応じて符号を反転させる演算子も一緒に掛ければ良いはずだ。\(\downarrow,\uparrow\)に応じて+1か-1をかけられる演算子といえば、\(z\)のパウリ行列\(\sigma_z\)である。\(\sigma_z\)は
\[\sigma_z\ket{\uparrow} = \ket{\uparrow},~\sigma_z\ket{\downarrow} = -\ket{\downarrow} \]
という作用をする。
最後に、今ほしかったのは\(\uparrow\)なら符号を反転させて、\(\downarrow\)なら何もしないものであったことを踏まえると、(6)の変換を実現し、フェルミオンの演算子\(c_i^\dagger\)に対応するスピン系の演算子として、
\[(-\sigma_{nz})(-\sigma_{n-1,z})\cdots(-\sigma_{i+1,z})s_{i+}\\=(-1)^{n-i}\sigma_{nz}\sigma_{n-1,z}\cdots\sigma_{i+1,z} s_{i+}\equiv S^\dagger_i\tag{7}\]
という演算子が考えられる。逆に消滅演算子の方も、
\[(-1)^{n-i}\sigma_{nz}\sigma_{n-1,z}\cdots\sigma_{i+1,z} s_{i-}\equiv S_i\tag{8}\]
とすればよさそうだろう。
実はこのように構成した演算子(7), (8)がフェルミオンの交換関係(1)を満たす。簡単な計算によって示すことができるのでやってみよう。計算には\(\sigma_z^2=1\)、\(s_\pm\sigma_z = \mp s_\pm\)、\(\sigma_z s_\pm = \pm s_\pm\)、\(s_{i-}s_{i+}+s_{i+}s_{i-} = 1\)となることに注意する。まず\(i\gt j\)の場合\(S_i,S_j^\dagger\)の反交換関係を調べる。
\begin{align}
[S_i,S_j^\dagger]_+&= [(-1)^{n-i}\sigma_{nz}\sigma_{n-1,z}\cdots\sigma_{i+1,z} s_{i-}, (-1)^{n-j}\sigma_{nz}\sigma_{n-1,z}\cdots\sigma_{j+1,z} s_{j+}]_+\\
&= (-1)^{i+j}(s_{i-}\sigma_{i,z})\cdots\sigma_{j+1,z} s_{j+} + (-1)^{i+j}(\sigma_{i,z}s_{i-})\cdots\sigma_{j+1,z} s_{j+}\\
&= (-1)^{i+j}s_{i-}\cdots\sigma_{j+1,z} s_{j+} - (-1)^{i+j}s_{i-}\cdots\sigma_{j+1,z} s_{j+}\\
&= 0
\end{align}
一方で\(i=j\)の場合
\begin{align}
[S_i,S_i^\dagger]_+&= [(-1)^{n-i}\sigma_{nz}\sigma_{n-1,z}\cdots\sigma_{i+1,z} s_{i-}, (-1)^{n-j}\sigma_{nz}\sigma_{n-1,z}\cdots\sigma_{i+1,z} s_{i+}]_+\\
&= s_{i-}s_{i+} + s_{i+}s_{i-}\\
&= 1
\end{align}
であり、この2つから、
\[[S_i,S_i^\dagger]_+ = \delta_{ij}\]
であることが言える。\([S_i,S_j]_+ = 0\),\([S_i^\dagger,S_j^\dagger]_+ = 0\)については省略するが、これも全く同じような計算によって示すことができる。したがって(7),(8)で定義したスピン系に対する演算子\(S_i, S_i^\dagger\)が、フェルミオンの生成消滅演算子と全く同じ交換関係を満たすことが確認できた。
5. Jordan-Wigner 変換
フェルミオンの演算子を、全く同じ性質を持つスピン系の演算子\(S_i, S_i^\dagger\)に対応付けることを、Jordan-Wigner変換という。以下にまとめよう。
Jordan-Wigner 変換: \(n\)個の軌道を持つフェルミオン系の生成消滅演算子\(c_i^\dagger,c_i\)は、以下のように\(n\)個の1/2スピン系の演算子へと対応付けられる。
\begin{align}
c_i^\dagger &\longleftrightarrow (-1)^{n-i}\sigma_{nz}\sigma_{n-1,z}\cdots\sigma_{i+1,z} s_{i+} \\
c_i &\longleftrightarrow (-1)^{n-i}\sigma_{nz}\sigma_{n-1,z}\cdots\sigma_{i+1,z} s_{i-}
\end{align}
当然逆変換も考えられる。例えば\(s_z\)をフェルミオンの演算子で構成してみよう。スピン系で\(c_i^\dagger c_i\)を計算すると、
\[c_i^\dagger c_i \longleftrightarrow s_{i+}s_{i-}\]
となるので、\(s_z = s_{+}s_{-}-\frac{1}{2}\)に注意すれば、
\[s_{iz} \longleftrightarrow c_i^\dagger c_i - \frac{1}{2}\tag{10}\]
を得る。次に\(s_x\)を構成してみよう。\((s_+ + s_-)/2 = s_x\)を思い出して、スピン系で\((c_i^\dagger + c_i)/2\)を計算してみると、
\[\frac{c_i^\dagger + c_i}{2} \longleftrightarrow (-1)^{n-i}\sigma_{nz}\sigma_{n-1,z}\cdots\sigma_{i+1,z} s_{ix}\]
となる。あとはいらない\(\sigma_z\)を、\(\sigma_z^2 = 1\)を利用して消せば良い。そうすると以下の対応がつく。
\[s_{ix} \longleftrightarrow (-1)^{n-i}(2c_n^\dagger c_n - 1)(2c_{n-1}^\dagger c_{n-1} - 1)\cdots(2c_{i+1}^\dagger c_{i+1} - 1)\frac{c_i^\dagger + c_i}{2}\]
\(s_y\)も同じようにすれば良い。以下に逆変換もまとめておこう。
Jordan-Wigner 変換: \(n\)個の1/2スピン系の演算子は、以下のように\(n\)個の軌道を持つフェルミオン系の生成消滅演算子\(c_i^\dagger,c_i\)はへと対応付けられる。
\begin{align}
s_{ix} &\longleftrightarrow (1-2c_n^\dagger c_n)(1-2c_{n-1}^\dagger c_{n-1})\cdots(1-2c_{i+1}^\dagger c_{i+1})\frac{c_i^\dagger + c_i}{2}\\
s_{iy} &\longleftrightarrow (1-2c_n^\dagger c_n)(1-2c_{n-1}^\dagger c_{n-1})\cdots(1-2c_{i+1}^\dagger c_{i+1})\frac{c_i^\dagger - c_i}{2i}\\
s_{iz} &\longleftrightarrow c_i^\dagger c_i - \frac{1}{2}
\end{align}
よく見てみたらマヨラナフェルミオンがいる。なぜだろう。なにか深い意味があったりして。