@yuichirominato 2019.01.24更新 247views

【化学】高校時代化学赤点だったベンチャーのおっさんが量子化学を極めるため頑張るブログ(その3)


はじめに

仕事でどうしても量子化学が必要なので根性で覚えます。化学が苦手です。そして実は数学も苦手です。さらにいうと実は国語も苦手です。

スレイター行列式

とにかくここに時間がかかります。以前のブログその1とその2も結構前提知識の掘り下げに多大な時間がかかりました。

スレイター行列式の説明はwikipediaを愛用しています。あってるのかどうかすら今の僕には判断がつきませんが、なんとかここまできました。

https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%AC%E3%82%A4%E3%82%BF%E3%83%BC%E8%A1%8C%E5%88%97%E5%BC%8F

前回は2電子のスレイター行列式をハートリー積から導き出しました。これは一般化できるようです。

一般化は大事です。これで安心しました。

複数スレイター行列式

安心したので軽く流して読み進めてましたが、ここでまた無視できない用語がいくつか出てきました。CIとCCです。量子コンピュータや量子化学勉強会でよく出てくる用語です。

スレイター行列式は、パウリの排他原理を全て満たしているが、その逆は成り立たない。すなわちパウリの排他原理を満たす関数は、スレイター行列式のみではないのである。

とはいっても、それらの関数は、スレイター行列式と大きくは違わない。単に複数のスレイター行列式の線形結合を取ったものなだけである。分子軌道を N 個から増やし、次のように表される。

これを複数スレイター行列式と呼び、パウリの排他原理はすべて、この形式を用いて展開できる。ただし任意の波動関数を表すためには、これらは完全系を成す必要がある。

量子化学におけるハートリー-フォック法は、分子軌道を1つのスレイター行列式で表す。しかし電子相関を正確に取り込む場合は、複数スレイター行列式を用いなければならず、そのような方法を配置間相互作用 (configuration interaction、 CI) 法という。しかし、厳密な波動関数を求めるには、無限個の分子軌道と無限個のスレイター行列式が必要になる。

https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%AC%E3%82%A4%E3%82%BF%E3%83%BC%E8%A1%8C%E5%88%97%E5%BC%8F

よく出てくるCI法というのは複数スレイター行列式を使うようです。

また線形結合だけでなく非線形な結合も含めると、CI法と同じ数のスレイター行列式で打ち切っても、よりも多くの電子相関を取り込むことができる。このような方法を結合クラスター(coupled cluster、 CC)法と呼ぶ。

1つのスレイター行列式よりも当然、複数スレイター行列式の方が表現力が大きく、計算精度は高くなる。 しかし、その代償として、考慮しなければならないスレイター行列式の数は、精度を上げるにつれ極端に大きくなるため、計算コストの面から、あまり多くするわけにはいかないのが現状である。

ここでは量子コンピュータをやってるとよく出てくるCC法が出てきました。ようやく量子コンピュータに近づいてきた気がします。今はまだ理解ができないのでもう少し勉強を進めてみます。CI法は表現がいい代わりに波動関数の近似としてたくさんのスレイター行列式が必要となる。CC法は非線形な結合を含めて複数スレイター行列式の数を減らして精度をだそうということでしょうか。

途中まとめと助け舟

ここで助け舟がきました。。。持つべきものはコミュニティですね。。。

これまで「多電子」を考えてきたので、電子同士の相互作用を考えると3体問題以上の多体の相互作用を考えなくてはいけないので多体問題となって(惑星みたいな感じ)でとても複雑になってしまうため、単体の挙動を考えてから、少しずつ相互作用などをいれて精度を上げていって、電子相関を取り込んでいく。

アンザッツとしての出発点としてハートリー積があり、そこからまずは条件を満たすためにスレーター行列式があり、ハートリーフォック近似が成り立つが、その後により精度を上げるためにスレーター行列式を複数利用して表現力をあげたCI法があり、さらに非線形な結合を考慮した複数スレーター行列式を活用した方式としてCC法があるような感じでしょうか。

そうなるとポストハートリーフォックのwikipedia説明にあった、

ポスト-ハートリー–フォック (: post-Hartree–Fock) 法とは、ハートリー–フォック法平均場近似)を超える、より高精度な第一原理計算手法の総称である。代表的なものに、メラー–プレセット (MP) 法配置間相互作用 (CI) 法カップルドクラスター (CC) 法がある。何れも波動関数として複数のスレイター行列式の線形結合をとったものを使っており、計算精度を上げるに従って計算コストは飛躍的に増大する。

https://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%B9%E3%83%88-%E3%83%8F%E3%83%BC%E3%83%88%E3%83%AA%E3%83%BC-%E3%83%95%E3%82%A9%E3%83%83%E3%82%AF%E6%B3%95

高精度な第一原理計算を実現するために波動関数の表現を高める複数スレイター行列の線形結合の仕方をそれぞれ工夫するという戦略は共通しているという感じでしょうか。

CI法に比べてCC法は少ないスレーター行列式で解けるのでそれを使って量子コンピュータの計算が考えられているという感じでしょうか。

量子コンピュータはユニタリー行列を扱う演算ですが、CC法では必ずしもユニタリー行列ではないので、ユニタリー行列化するためにUCC法という量子コンピュータに最適な理論もあるようです。

出発点(アンザッツ)としてのハートリー積>>スレイター行列式>>複数スレイター行列式というように読み解いていくとわかりやすい気がしました。

スレイター行列式と第二量子化

まだわからないところも多いですが、どんどん進んでみます。wikipediaの最後に載っていたのでみてみると、

第二量子化では、多粒子系の状態を、1粒子状態を占めている粒子数の組で表現する。これを座標表示したものがスレイター行列式である。

{\displaystyle \Vert \chi _{1}\cdots \chi _{N}\Vert \sim |n_{1},n_{2},\dotsc \rangle }

フェルミ粒子の場合、n1,…,nNは0か1のどちらかである。

!!!急に0と1が出てきました。なんとなく量子コンピュータで解ける気がしてきました。第二量子化というのをすると、多電子系の波動関数を座標表示するスレイター行列式になおす?ようです。

しかもボーズ粒子は0からNの値をとるみたいですが、フェルミ粒子である電子は0か1で済むようです。このバイナリ値への変換が量子コンピュータとの相性の良さなんでしょうか。

細かい説明もありましたが難しそうだったので一旦これで納得してみます。。。

再度まとめ

出発点はアンザッツなのでハートリー積な気がします。ハートリー積だとダメなので、実質的にはスレーター行列式がスタートでしょうか。

ハートリー積>>スレーター行列式>>複数スレーター行列式(CC法とくにユニタリ性が必要でUCC法)>>第二量子化でバイナリ値を採用>>演算子を量子コンピュータ向けに変換>>シミュレーションという感じですかね。。。

量子コンピュータ向けに変換を行う変換はJW変換とBK変換があるのは以前調べたことがあります。それも難しかったですが、、、

Jordan-Wigner変換とは?

Jordan-Wigner変換は、スピン演算子をフェルミオンの生成消滅演算子にマッピングする変換で、Pascual JordanとEugene Wignerによって1次元格子モデルが提案された。

引用:https://en.wikipedia.org/wiki/Jordan%E2%80%93Wigner_transformation

生成消滅演算子とパウリ演算子の変換によって、量子コンピュータ分野では特定の問題をゲートマシンで解ける形に変換できるようです。

Bravi-Kitaev変換概要

量子シミュレーション分野は種々の問題を解く可能性がある。Jordan-Wigner変換は、O(n)量子ビット操作によるフェミニオン演算子の表現を可能にする一方、Bravyi-Kitaev変換によって、O(log n)の量子ビット操作によって同じ問題を解けることを確認する。

平均場近似

HFのところで(mean-field theory)と書いてありました。mean-field theoryがなんなのか確認してみます。。。

平均場近似(へいきんばきんじ、: mean field approximation)とは多体問題を一体問題に帰着させる近似のことである。

まさに多体問題を解くための近似のようです。HFのことなんでしょうか。

量子状態=量子回路

なんとなく全体の点が線に繋がってきた気がします。一番最初はやはりHFが基本となっていて、そこに表現としていろいろな相互作用やその他の効果を量子状態として適用していく感じでしょうか?

量子コンピュータでは量子回路を組むことでさまざまな量子状態へともっていくことができると後輩がいっておりました。ということは、最初にアンザッツとして出発点としての適当な波動関数を置いてみて、その波動関数に量子回路を適用して量子状態を変化させる。その変化はスレイター行列式を線形結合したCC法をつかって有限のスレイター行列式で精度が出るように考える。CC法のなかでも量子コンピュータに相性の良いユニタリー行列を扱えるUCC法がある。量子回路では量子状態の基底エネルギーをVQEなどのアルゴリズムを使って計算できるので、準備したHFの単純なアンザッツの量子状態に対してUCC理論に準じて量子状態を変化させて複雑な量子状態を準備して、その基底状態を求めることを原子間距離を変えながら少しずつ行ってみる。

という感じでしょうか。なんか急に全体像がおぼろげに見えてきました。。。

UCC理論は複数のスレイター行列式の線形結合だけど、その線型結合の方法によって様々な量子状態の実現ができて、そのあたりの相互作用の考え方などたくさんルールがあって、その調整が難しそうです。

その過程で第二量子化は01のバイナリに置き換えて量子ビットに合わせるようにする。JW変換やBK変換は第二量子化した演算子を量子コンピュータ向けのパウリ演算子に変換できる。という感じでしょうか。

ここまでのまとめで量子コンピュータを使って量子化学をするためにすること(たぶん)

アンザッツと呼ばれる単純な単体電子の運動を考えたHFからスタートして、そこにCC(UCC)理論を活用してそのアンザッツの波動関数の量子状態を量子回路を用いて変化させて、その最終的な量子状態の基底状態をVQEアルゴリズムを用いて求めるのが量子コンピュータを使って量子化学計算をするという手順のような気がしました。

そうなると僕もまだよくわかっていませんがその量子ビットの量子状態を変化させる量子回路の作り方を少し続きとして次回見てみたいと思います。

{\displaystyle \Vert \chi _{1}\cdots \chi _{N}\Vert \sim |n_{1},n_{2},\dotsc \rangle }

第二量子化された多電子状態は01の配列で持てるようなので、それらを量子回路のXゲートを使って準備してそっからCC理論を使って量子状態を変化させるような手順なのでしょうか。そのあたりを確認してみたいと思いますし、ここまでくればあとはデータを揃えて実際にHFを準備してCCに合わせて例題を1つつくって測定を通じて基底状態を機械的にできそうな気がしてきました。

次回以降は早速H2について、初期のハミルトニアンから各種変換を通じて量子状態を実現する量子回路をつくってみてVQEを通じて基底状態を求めるという具体的な手順について調べて実装を目指してみます。

つづく。。。

Recommended


CONTACT

info@mdrft.com

ブログトップへ Wikiへ移動

量子コンピュータ一般

量子ゲートアルゴリズム

量子アニーリング一般

量子アニーリングアルゴリズム

BlueqatSDKの使い方