Cirqを利用したBCSの平均場計算
Last Update:2021/12/09
(株式会社アカデメイア)
1.はじめに
Cirqは誤り訂正のない量子コンピュータ向けのオープンソースフレームワークです。シミュレータ上で動作する量子アルゴリズムを書く事が出来ます。ここでは量子回路を用いたBCSの平均場計算をLinux環境上で実行します。
2.インストール・コンパイル方法(推奨)
ここでは、AnacondaのPython3.6.5、Ubuntu 18.04上でのインストールについて記載します。
インストールはpipコマンドで実行して下さい
$ pip install cirq
上記コマンド実行で、cirqがインストールされます。
インストールの確認は以下の通りです。
$ python3
として、起動するPythonの対話モードで、
>>> import cirq
と入力してEnterを押し、なにもエラーが出なければ、無事にインストール出来ています。
バージョンは
>>> cirq.__version__
と入力してEnterを押す事で確認が出来、’0.6.0’などのバージョン番号が下の行に出力されます。
3.実行方法
それでは実際にCirqを動かしてみましょう。
対象のコードを以下のリンクよりダウンロードします。
https://github.com/quantumlib/Cirq/blob/master/examples/bcs_mean_field.py
上記プログラムは、量子回路を用いてBCS平均場計算を実行するプログラムとなっています。
具体的には下記のハミルトニアンで、サイト数4、電子数4、t = 1、U = -4の場合の計算を実行し、超伝導ギャップを計算しています。
\begin{equation}
\mathcal{H} = -t\sum_{\langle i, j \rangle, \sigma} (c^{+}_{i, \sigma}c_{j, \sigma}+\mathrm{H.c.})+U\sum_i n_{i, \uparrow}n_{i, \downarrow}
\end{equation}
パラメータを変更する場合は、コード内の以下の部分を直接編集して下さい。
def main(): # Number of sites in the Fermi-Hubbard model (2*n_site spin orbitals) n_site = 4 # Number of fermions n_fermi = 4 # Hopping strength between neighboring sites t = 1. # On-site interaction strength. It has to be negative (attractive) for the # BCS theory to work. u = -4. (以下略)
このプログラムを実行します。
$ python bcs_mean_field.py
上記の実行時間は、筆者の手元の環境で0.4秒程度となります。
(Cirqのimport時に時間がかかる場合があります。)
4.実行結果
計算結果は以下のように標準出力に出力されます。
Quantum circuits to prepare the BCS meanfield state. Number of sites = 4 Number of fermions = 4 Tunneling strength = 1.0 On-site interaction strength = -4.0 Superconducting gap = 1.1261371093950703 Circuit for the Bogoliubov transformation: (0, 0) (0, 1) (0, 2) (0, 3) (1, 0) (1, 1) (1, 2) (1, 3) │ │ │ │ │ │ │ │ PhX(-0.434)^0.5 PhX(0.449)^0.5 PhX(0.5)^0.5 PhX(-0.365)^0.5 PhX(0.434)^0.5 PhX(0.551)^0.5 PhX(-0.5)^0.5 PhX(-0.635)^0.5 │ │ │ │ │ │ │ (中略) │ │ │ │ │ PhX(0.25)^0.5 PhX(-0.75)^0.5 │ │ │ │ │ Circuit for the inverse fermionic Fourier transformation on the spin-down states: (1, 0) (1, 1) (1, 2) (1, 3) │ │ │ │ PhX(-0.404)^0.5 PhX(0.25)^0.5 PhX(-0.75)^0.5 PhX(0.375)^0.5 │ │ │ │ (中略) │ │ │ │ │ PhX(0.25)^0.5 PhX(-0.75)^0.5 │ │ │ │ │
上記のように、まずモデルパラメータが出力(Tunneling strengthがt、On-site interaction strengthがUに相当)され、その下に超伝導ギャップが出力されます。
その下にはボゴリューボフ変換に対応した量子回路とフェルミオン系の逆フーリエ変換に対応した量子回路が出力されます。
上記計算の詳細に関しては、文献[1, 2]をご参照下さい。
5.終わりに
ここではCirqを用いた簡単な計算例を紹介しました。ある程度量子計算に関する知識を持っている事が前提となりますが、Cirqを用いる事で量子回路を作成し、計算する事が比較的簡単に出来るようになります。
より実践的な計算については、https://cirq.readthedocs.io/en/stable/にあるチュートリアルを参考にしてください。
[1] F. Verstraete, J. I. Cirac, and J. I. Latorre, Physical Review A 79, 032316 (2009).
[2] Zhang Jiang, Kevin J. Sung, Kostyantyn Kechedzhi, Vadim N. Smelyanskiy, and Sergio Boixo Phys. Rev. Applied 9, 044036 (2018).