Ccmmutty logo
Commutty IT
4 min read

pythonで量子力学をしてみよう。

https://cdn.magicode.io/media/notebox/b7579f37-c178-4c4c-9d2b-7bf67766fd7d.jpeg

始めに

近年、量子コンピュータやらコンピューティングが話題になる事が多くなってきました。ここでは私の作った量子力学系を古典コンピュータでシミュレートするためのスクリプト群を紹介していきたいと思います。
量子力学のシミュレーションって古典コンピュータでの計算が指数関数的に難しくなるんですけど、ゴニョゴニョとうまく空間を切り貼りしてうまくやっています。
このブログ記事を持って日本語ドキュメンテーションとまではいかないけど、まぁそんなものになっていけばなぁと思っています。
これの詳細が日本語でしりたい!というのをコメントしていただければと思います。
訳語が無い言葉に関しては自分なりに訳語を作ってみました。当方、もうかれこれ10年くらい海外に住んでいて、大分日本語が怪しいので、誤訳等がありましたらコメントで教えていただけるとありがたいです。

1. Clifford Circuit Toolkit (量子クリフォード回路の道具箱)

スタビライザー状態というのは、N個のパウリ群の要素の同時固有状態であらわされる状態です。 そんな状態にクリフォード群から選んだゲートを作用させると、N個の要素はパウリ群の他の要素にうつされ、よって、同時固有状態が別な物になります。 パウリ群の要素はパウリ行列のテンソル積で表す事ができるので、N×N個のパウリ行列の回転をうまい事追跡してやるとNGNGくらいのオーダーの計算でゲート数GGの回路のシミュレートができます。
N2N^2くらいのオーダーでエンタングルメントエントロピーや測定もきます。
英語ですが、詳しい事はここ (CHP: Scott Aaronson)にのってます。
コメントがきたら詳しい記事とかも書きたいと思います。
解説記事を書きました!
  1. 解説記事 Part1. パウリ紐演算子とは?

2. イジングモデルの道具箱

実は、各サイトのヒルベルト空間の次元がDlocD_{\mathrm{loc}}のランダムなユニタリー回路から出力された状態のエンタングルメント(レニー)エントロピーはIsingモデルの自由エネルギーの差を計算する事によって求める事ができるのです。な、なんだってー!?
詳しくはこちらを。

3 パコレーションの道具箱

超高速のボンドパーコレーションのシミュレーション用のスクリプト。 実は、ランダムなユニタリーの回路の出力状態の0次レニーエントロピーは上記と同じ方法で格子に写してあげると、最小切断の数に等しくなるんですね。
そこに計測を加えると、量子同士の因果関係が切断されるので格子のボンドを切る事に等しくなるわけです。よって、ゲートを当てたあと確率ppで計測するような回路を考えてあげると、パーコレーション問題に等しくなるわけです。重要なのは、この問題は計測誘導相転移(Measurement Induced Phase Transition)というのに等しく、その0次の物理的な現象論はパーコレーション理論によって記述されるという事ですね。
ここにあるスクリプトはボンドパーコレーションの問題をボンド数NNくらいのオーダーでちゃちゃっと解いちゃうアルゴリズムです。

4 離散的刈り込みウィグナーの道具箱 (Discrete Truncated Wigner Toolkit)

量子格子モデルを半古典的手法でシミューレトする方法。格子点上のヒルベルト空間の次元が無限(連続)でなくても、つまりスピンS=1/2や5/2や8でも計算できるよってやつ。

5 半古典スピンの道具箱

上記の連続版(s=s=\infty).

6 平均場近似の基底状態ソルバ

自己一貫性のある平均場近似を用いたボーズハバードモデルやスピン格子モデルの基底状態のソルバ

終りに

上記は全てMITライセンスの元公開しているので、しっかりと引用してくれている限り私の許可無く転載などしてくれて結構ですが、利用してその結果をどっかに置いておく(出版する)際は必ず出展にこの記事ではなく、readmeにあるDOI、年そして私の名前を書いておいてください。

Discussion

コメントにはログインが必要です。