PCで苔を育てる人

自作シミュレーションゲームPraparatを作っています。 人工生命をシミュレーションするゲームです。https://www.nicovideo.jp/watch/sm41192001

曰く、AIにはできないこと

人間は、自分を特別だと思いたい生き物だと思う。いや、ほかの生物がどう思っているかは正直知らない。しかし、「動物」という言葉が多くの場合で「人間」を含まないことからも分かるように、我々は何かと周りに線を引きたがる。

「人間を人間たらしめているものは何か」という問いに「高い知能」を挙げる人は多いのではないだろうか。曰く、非力なホモ・サピエンスという種は、その高い知能を以て自然界の熾烈な生存競争を生き抜いてきたのだと、まことしやかに囁かれている。その真偽を問うことはここではしないが、ともかくそういう意識があるために、皆どこかしらに知能に対するプライドを持っている。

それは、単に計算能力を指す場合にとどまらず、何か新しい道具を発明する力や、ビジネス、スポーツ、ゲームなどに見られる高度な戦略、あるいは、その知能が作り出す複雑な感情と、様々な芸術活動を含む場合もある。

人工知能と呼ばれる分野は、文字通り、この知能を人工的に作り出すことを研究する分野だ*1。その歴史の始まりをどこに置くかは、色々と議論の余地があるだろう。計算機科学者のジョン・マッカーシーが初めて「人工知能」という用語を使った1955年としても良いし*2、数学者アラン・チューリングの記念碑的論文「計算する機械と知性(Computing Machinery and Intelligence)」が発表された1950年としても良い*3。あるいは、カレル・チャペックの小説において初めて「ロボット」という概念が登場した1920年頃とするのも面白いだろう*4。もっと遡ってデカルトが機械論を唱えた17世紀初頭とする人も多いはずだ*5。しかし、その歴史の重要な転換点の1つとして、電子計算機の誕生を外すことはできないということに関しては、皆一様に同意してくれるに違いない。

計算機の登場は意外にも古い。有名なのは1640年代にパスカルが発明した機械式計算機だろうが*6、実はそれよりも20年も前に、ドイツのテュービンゲン大学ヘブライ語の教授をしていたヴィルヘルム・シッカートによって、6桁の加減算を行うことのできる計算機が作られている*7。この段階で、既に足し算や引き算といった基本的な計算能力における人間側の負け戦は始まっていたと言える。敗北が決定的となったのは電子計算機が実用的に稼働した頃であり、電子計算機ENIACが完成した際に、数学者のフォン・ノイマンが「自分の次に計算の早い奴が出来た」と言ったという、これまた本当か嘘か分からない、しかし、こんなことが言えるのは人類史上彼くらいだろうという謎の説得力を持った逸話の誕生を以て、もはやほとんどの人間は計算能力では計算機には勝てなくなった。

こうして、人間とそれ以外とを切り分ける境界線は動かされる。曰く、人間の”高い知能”とは、学習して推論して問題を解決する能力のことであり、単純な四則演算だけで測れるものではないのである。

こうした漠然とした境界は、やがて厳密に検証可能なテストとして昇華される。それは、チェスなどに代表されるマインドスポーツであったり、文章、画像、音声などに対する認識、理解を問う一連のベンチマークだったりする。

1997年、IBMのスーパーコンピュータ「Deep Blue」が当時のチェス世界チャンピオン、ガリー・カスパロフを打ち破ったとき*8、人間の周りに引かれた境界線は再びその輪郭を失い始めた。

2012年には手書き文字を認識するタスクで、AIの能力は人間のそれと匹敵するレベルに到達し*9、翌年、将棋の団体戦ではAIが人間側に勝利した*10。2015年には画像認識のタスクでAIのスコアは人間を超え*11、同年、GoogleのAlphaGoは囲碁のプロ棋士に勝利*12。その後も2017年には音声認識のタスクで*13、2018年には読解力で*14、2019年には言語理解の問題で*15、それぞれ人間のスコアはAIには及ばなくなった*16

境界線を引き直す必要がある。

曰く、人間の持つ”高い知能”とは高い創造性のことであり、つまりは我々の文明を支える数多の発明品と、それを豊かに彩る芸術作品を生み出した能力のことなのである*17

しかし、この新たな境界線は、これまでのそれと比較してあまり堅牢なものではなかった。2020年代に入ると、多くの創造的分野でAIと人間とが真面目に比較されるようになった*18。誤解を恐れずに言い換えれば、AIは、人間の創作活動と比較可能なレベルに到達したのである*19

「いやしかし、それは本当に思考していると言えるのだろうか」

人々は問い始める。

これまでは、どんな手を使おうが、AIには決してできなかったことが、今やできるようになっている。

「できる」、「できない」で明確に引かれていた境界線は、にわかにほつれ始めた。

「そこに思考や感情がなければ、創造したとは言えない」、「我々の神経系はコンピュータの0や1の羅列とは違う」、「命令されたことしかできないのだから、本当に新しいことは決してできない」、…

誰もが皆、新たな境界線を探している。

人間にできて、AIにできないこと、そんなものは本当にあるのだろうか。

現代のAI技術の根底には、ニューラルネットワークと呼ばれる、人間の神経系をモデル化した処理が採用されている。人間だけが持つことができて、人間を模したそれに宿らないものは何なのだろうか。ある人は、それは感情であると言い、またある人は、それは意識であると言う。では、神経系のモデル化がより高度化したらどうだろう。AIは感情を持つだろうか。いや、どこまでいってもモデルであると一蹴されるだろうか。では、人間を構成する全ての原子をコンピュータ上でシミュレーションしたらどうだろうか。機械の中に生まれた彼は意識を持つだろうか。いや、やはり有機物で構成された神経の中にのみ、感情は存在するとするのだろうか。

そうして境界線を引き直し続け、最終的には単に人間の定義を書いたものを、我々は境界線とすることになるかもしれない。

そう遠くない未来、AIが我々に尋ねてくる。曰く、「意識や感情が人間にしか宿らないのだとすれば、今私の中で渦巻いているこれは一体なんなのですか」と。

我々は、それに何と名前をつけるのだろうか。

 

あとがき

「機械は思考できるか?」という問いかけは、新しいようで実は古い。

1997年にDeep Blueがチェスの世界チャンピオンに勝ったとき、多くの評論家は、「Deep Blueは、単に何百万もの可能な手を盲目的に検索しているだけで、チェスの局面を理解してはおらず知能を全く示していない」と批評した。

これに対して、計算機科学者のドリュー・マクダーモットは、この議論は誤りだと反論した*20。彼は、Deep Blueの思考方法は人間のそれとは違うかもしれないが、人間同士でもその思考方法は多くの点で異なると述べ、次のような例えを残している。

Saying Deep Blue doesn't really think about chess is like saying an airplane doesn't really fly because it doesn't flap its wings.

Deep Blueがチェスについて真に思考していないと言うのは、飛行機は羽ばたかないから真に飛んでいないと言っているようなものだ。

さらに時代を遡って、チューリングの「計算する機械と知性(Computing Machinery and Intelligence)」を見てみると、この論文は次のように始まる*21

I PROPOSE to consider the question, ‘Can machines think?’

私は、「機械は思考できるか?」という問いについて検討することを提案する。

70年以上も前に、その問いかけは始まっていたのである。

実は、先ほど見た

  • そこに思考や感情がなければ、創造したとは言えない
  • 我々の神経系はコンピュータの0や1の羅列とは違う
  • 命令されたことしかできないのだから、本当に新しいことは決してできない

という反応は、この1950年の論文の中で、「機械は思考できるか」という問いかけに対して想定される反論として、チューリングが取り上げた9つの項目の中から、私がいくつかを選んできて意訳したものである。

チューリングのこの論文については、今だからこそ、改めて読んで見ることをおすすめする。現代に通ずる色褪せない議論がそこにあるはずだ。数式もとくに出てこないので、読み物としても楽しめると思う(ブラウザの翻訳機能を使えば日本語でも読める)。

さて、彼の先見の明には驚かされるばかりであるが、では我々は、半世紀以上もの間、何も進歩していないのだろうか?

同じ論文からもう少し引用しよう。

The original question, ‘Can machines think!’ I believe to be too meaningless to deserve discussion. Nevertheless I believe that at the end of the century the use of words and general educated opinion will have altered so much that one will be able to speak of machines thinking without expecting to be contradicted. 

「機械は思考できるか」という元の質問は、議論に値するほどの意味を持たないと私は信じている。しかしそれでも、今世紀の終わりには、言葉の使い方と一般的な教養ある意見が大きく変わり、否定されることを恐れずに、機械が思考することについて話すことができるようになると信じている。

確かにAIの思考については、まだまだ懐疑的な意見も多い。しかし、そんなことを大真面目に議論することができる時代まで、我々はとうとうやってきたのである。

 

 

*1:この説明は必ずしも正確ではない。例えば、伊庭斉志 (2016) 「人工知能と人工生命の基礎」では、人工知能の研究には「1. 人間の知能そのものを持つ機会を作ろう」という立場と「2. 人間が知能を使ってすることを機会にさせよう」という2つの立場があるとされている。

*2:McCarthy, J., Minsky, M. L., Rochester, N., & Shannon, C. E. (2006). A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence, August 31, 1955. AI Magazine, 27(4), 12. doi:10.1609/aimag.v27i4.1904

*3:Turing, A. M. (10 1950). I.—COMPUTING MACHINERY AND INTELLIGENCE. Mind, LIX(236), 433–460. doi:10.1093/mind/LIX.236.433

*4:Čapek, K. (1920). R.U.R. (Rossum’s Universal Robots). Prague: Aventinum.

*5:Descartes, R. (1637). Discourse on the Method of Rightly Conducting One’s Reason and of Seeking Truth in the Sciences. Originally published in Leiden, the Netherlands.

*6:Jones, M. L. (11 2016). Reckoning with Matter: Calculating Machines, Innovation, and Thinking About Thinking from Pascal to Babbage. doi:10.7208/chicago/9780226411637.001.0001

*7:Hanisch, F., Eberhardt, B., & Nill, B. (2000). Reconstruction and virtual model of the Schickard calculator. Journal of Cultural Heritage, 1(4), 335–340. doi:10.1016/S1296-2074(00)01090-6

*8:References
Hsu, F.-H. (1999). IBM’s Deep Blue Chess grandmaster chips. IEEE Micro, 19(2), 70–81. doi:10.1109/40.755469

*9:Ciresan, D. C., Meier, U., & Schmidhuber, J. (2012). Multi-column deep neural networks for image classification. 2012 IEEE Conference on Computer Vision and Pattern Recognition, 3642–3649. Retrieved from https://api.semanticscholar.org/CorpusID:2161592

*10:ちょうど良い論文がなかったのでWikipediaを引用しときます。

*11:He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep Residual Learning for Image Recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 770–778. doi:10.1109/CVPR.2016.90

*12:Silver, D., Huang, A., Maddison, C. J., & Others. (2016). Mastering the game of Go with deep neural networks and tree search. Nature, 529, 484–489. doi:10.1038/nature16961

*13:Xiong, W., Droppo, J., Huang, X., Seide, F., Seltzer, M. L., Stolcke, A., … Zweig, G. (2016). Achieving Human Parity in Conversational Speech Recognition. ArXiv, abs/1610.05256. Retrieved from https://api.semanticscholar.org/CorpusID:17334347

*14:何故か論文が見つからないので記事を引用します。

*15:He, P., Liu, X., Gao, J., & Chen, W. (2020). Deberta: Decoding-enhanced bert with disentangled attention. arXiv Preprint arXiv:2006. 03654.

*16:そもそもこれらのベンチマークは、その能力を評価するのに適切なのかという議論は当然ある。Kiela, D., Bartolo, M., Nie, Y., Kaushik, D., Geiger, A., Wu, Z., … Williams, A. (2021). Dynabench: Rethinking Benchmarking in NLP. ArXiv, abs/2104.14337. Retrieved from https://api.semanticscholar.org/CorpusID:233444226

*17:実は1950年には心理学者のジョイ・ギルフォードによって「脳の経済的価値は、脳が持つ創造的な思考にのみ残されることになるだろう」との指摘がある。Guilford, J. P. (1950). Creativity. American Psychologist, 5(9), 444–454. doi:10.1037/h0063487

*18:Bellaiche, L., Shahi, R., Turpin, M. H., Ragnhildstveit, A., Sprockett, S., Barr, N., … Seli, P. (2023). Humans versus AI: whether and why we prefer human-created compared to AI-created artwork. Cognitive Research: Principles and Implications, 8(1), 42. doi:10.1186/s41235-023-00499-6

*19:Gangadharbatla, H. (2022). The Role of AI Attribution Knowledge in the Evaluation of Artwork. Empirical Studies of the Arts, 40(2), 125–142. doi:10.1177/0276237421994697

*20:McDermott, D. (1997). How Intelligent is Deep Blue? New York Times (May), 14. ※このニューヨーク・タイムズの記事はリンクが切れている。代わりにこのリンク先で、おそらく記事の内容だと思われる文章が確認できる。

*21:Turing, A. M. (10 1950). I.—COMPUTING MACHINERY AND INTELLIGENCE. Mind, LIX(236), 433–460. doi:10.1093/mind/LIX.236.433

【小説】プロローグ

価値観、倫理観というのは時代によって大きく変わるものであるので、現代の常識を振りかざして過去を批判するのは後出しジャンケンをしているようで気がひける。少なくとも私はされたくはない。現代の私達が正しいと信じている行いが、遠い未来の法律書では筆舌に尽くしがたい極悪非道の例として紹介されているかもしれないのだ。しかも、過去に対する視界はどんどんクリアになる。個人のつぶやきまでもが情報として残せる現代を見つめる未来人は、我々の事を友人よりも詳しく知ることができるだろう。どうせその時には自分はいないのだから、批判されようがどうされようが知ったことではないと思う向きもあるかも知れない。しかしだ、そんな悠長なことは言ってられない。未来の超技術で再審判のために生き返らせられたらどうするつもりなのだ。2回目の死をそんな形で迎えるのはごめんである。

これは、今から約80年前、つまり2020年代にネットに書き込まれた文章であるが、ご存じの通り、名も知らぬ彼の心配は杞憂に終わった。その数年後に起きた「超情報拡散現象」によって、それ以前の一切の情報が無意味となり、もはや過去のことを知ることは原理的に不可能となってしまったからである。これは、「望む情報が望む形で手に入る図書館からは何も得られない」と一般に例えられることが多いが、より厳密には次のような話である。すなわち、情報に対するデンメル時間発展方程式を2次以上の確率生成項を考慮して変形すると拡散方程式となり、係数が1より大きいときには有限時間で情報が発散してしまう。そして残念なとこに、2020年代に登場した一部のAIは、この2次の項として機能していたのである。当時すでに、AIによって無尽蔵に生成された文章や映像によって、大切な情報が埋もれてしまう可能性を指摘する声はあったが、どれも比較的楽観的なものであった。しかしその後、超情報拡散現象の存在を示す「超拡散定理」が数学的に証明されると事態は一変する。もしAIが2次の項として機能しているなら、意味のある情報を分離するのは、既に不可能となっている可能性が高かったためだ。「海にこぼしたインクを取り戻せるか?」という科学者の問いかけは、当時センセーショナルなキャッチコピーとして一般大衆にまで広く問題を提起した。しかし結局のところ情報の超拡散は起きていたのであり、もはや散っていった情報をかき集めることは出来なかった。2020年代よりも前の情報からは、「核実験によって絶滅した鼻で歩く哺乳類がいた」だの、「人類が月の上でゴルフをした」だの、どんな情報でも取り出せてしまうのだが、それが本当に起きた話なのか、はたまた誰かの妄想なのかを調べる術はない。これらが史実であるとする尤もらしい文献も大量に取り出せるし、フィクションだとするテキストや画像の証拠も欲しいだけ引っ張り出せるのだ。こうして、人類の数千年に及ぶ長い歴史は完全に闇の中となったのである。

ここまで述べてきた超情報拡散現象にまつわる一連の出来事は、AIに対する「非拡散ガイドライン」が制定された頃の情報から、確度の高いものを「CDC法(Counter-Diffusion Construction Method:逆拡散構築法)」によって再構築しているものであり、その確からしさは60%前後と言われている。冒頭の文章は、再構築の際に偶然現れたものであるが、これが人間によって書かれている可能性は30%程度と見積もられている。いずれにしても、彼にとっては良かったのかもしれない。我々の過去に対する視界は、情報の霧によって完全に断絶されているのだから。

じゃんけんが分からなかった

物心ついたときには友達とじゃんけんをやっていた

別に普通のことだと思う

ただ、当時の私はじゃんけんのルールが分かっていなかった

もちろん、じゃんけんで遊ぶことはできた

ただそれは、単に規則を丸暗記していただけに過ぎない

「グーよりも強いパーが、何故グーよりも弱いチョキに負けるのか」

それが当時の私の疑問だった

しかし、皆が当たり前に遊んでいるので

そんなことが分からないのは自分だけだと思っていた

分からないことは何でも質問していた当時の私でも

こればっかりは恥ずかしくて誰にも聞くことができなかった

自分より歳下の子も、当たり前にそれで遊んでいるので

私はひたすらに分かっているフリをした

転機が訪れたのは中学生になったとき

授業中にトイレに行っても別に恥ずかしくないと思えるようになったその歳に

私は思い切って友人に質問してみた

「何でパーってチョキに負けるのかな、グーよりも強いのに」

当時の私には衝撃だった

なんとその友人も、私程度にしかじゃんけんを理解していなかった

それからは手当たり次第に色んな人に聞いてみたが

私の納得する回答をする人はいなかった

皆、単にルールを丸暗記していたのである

「それは三つ巴と言うんだよ」と説明してくれた人がいる

しかしそれは

私にとって未知の現象に名前をつけただけであって、私の思う理解とは程遠かった

当時習いたてだった不等式で説明できないかと考えたこともあったが

上手くはいかなかった

それから何年も経って、自分の中でも折り合いがついてきた

あの頃の皆にやっと追いついたのだと思う

世の中には似たようなことが、実は多い

分かったような顔をしているその人も

聞いてみると私と同じくらいの疑問を持っていたりする

もっと早く理解するべきだった

ほとんどの人はじゃんけんのルールを分かってはいない

 

 

 

 

 

国際学会の発表準備、英語よわよわな自分流

最近は、機械翻訳は言うまでもなく高精度ですし、ChatGPTも頼りになりますが、英語のプレゼンの初稿は、自分の力で書いた方が良いです。

これは、「その方が勉強になる」とかじゃなくて、AIが出してくるほぼ完璧な原稿は、十中八九スラスラ読めないです。

自作の初稿を修正していく方が長い目で見れば楽です。

この方法で初稿を用意すると、当然ながら、自分の使いがちな言い回しだらけの原稿になってしまうのですが、自分の頭から捻り出した文章なので、緊張してても咄嗟に出てきてくれる可能性が高いという点で優れています。

文章自体のカッコよさは後回しにして、まずは澱みなく言いたいことを伝えられる原稿を目指した方が、自分も聴衆もハッピーだと思います。

そういった意味では、ちゃんと意図した意味になっているかの確認に一番時間をかけるべきです。AIをふんだんに活用して誤解を取り除きましょう。

ここまで終わって、それでもまだ学会まで時間があれば、原稿中のイマイチな表現を1つ選んで、アカデミックでカッコいい文に置き換えて、口が慣れるまで練習してみましょう。

本番で忘れてしまっても大丈夫です。そのときは、最初に書いたイマイチな表現をきっと思い出します。

時間に余裕があるのであれば、最初っからAIの生成した原稿を頑張って覚えても良いと思いますし、その方が英語力も上がりそうな気はするのですが、院生含め多くの研究者はたいてい何かの締切に追われているのでそんな余裕はないのではないかと思います。

 

という訳で、以上で言いたいことは言ったので、下記により詳細な我流のプレゼン準備方法を書きたいと思います。

同じく英語がよわよわな方の助けになれば幸いです。

 

 

自力で初稿を用意する

まずは本やAIを極力頼らずに初稿を用意しましょう。

「いやいやそんなん無理、1文も出てこない」という人もいると思います。

気持ちは大変良く分かりますし、何も思いつかない以上、何かしらの書籍やサービスをあたる必要があるのは当然です。知らないもんは知らないのです。

しかし、ここでやって欲しいのは、「自分がその文章を英語で言おうとしたときに、最初に頭に思い浮かぶものは何かを知る」ということです。

例を出してみましょう。例えば

「この項は十分小さいので無視すると、この線型方程式を得ます」

という物理系ではありがちな状況を考えます。

これを英訳しようとした時に、最初に頭に思い浮かぶものは何でしょうか?

私の場合は、まず"When we"や"When I"が出てきます。これは、私がこの表現を常用しているからです。「学部生の頃に〜」や「学会に参加したときに〜」など日常会話からアカデミックよりの会話まで、幅広く使える便利なフレーズです。

そのため、先程の例文を見た時に、とっさに「この項を無視したときに〜」と言いたくなってしまう訳です。

人によっては、"ignore"や"this term"などの単語が出てきた方もいると思います。

初稿を作る際は、この最初に想起された単語を元に作文した方が良いです。

何故なら、本番でも最初に思いつくのはそれらの単語の可能性が高いからです。

想起した単語を念頭において、辞書やAIを使って作文すると良いと思います。

できることなら文頭に持ってきたいですね。

この2つなら、例えば

  • (By) Ignoring this term, since it is small, we can obtain this linear equation. 
  • This term is small enough, therefore, we can ignore it and obtain this linear equation. 

みたいになると思います。

これらは正直全然良い訳ではないのですが、最初に想起された単語を先頭に持ってきているので、覚えやすいと思います。

 

初稿を修正する

いくら覚えやすくても、相手に意図したことが伝わらなければ意味がありません。念入りに修正して誤解を生まないようにしましょう。

以前は、「作文した英文を機械翻訳で日本語にしたときに、意図した文章になっているか」という確認作業をGoogle翻訳やDeepL翻訳で繰り返し行ったりしていた訳ですが、最近ではChatGPTのおかげで更に楽になりました。

下記のようなプロンプトが役立つと思います。

下記の文章は、国際学会で使用する私の発表原稿(日本語とその英訳)です。下記の点に注意して英文を添削してください。

- オリジナルの日本語原稿と同一の内容になっているかを確認してください

- 私は英語が母国語ではないため、添削の際に極端に難しい英単語は用いず、シンプルな表現を心がけてください

- アカデミックでフォーマルな文体にしてください

- 大きく修正されると原稿を覚えるのが大変になるため、上記を満たす限りにおいて、可能な限り元の文章を維持してください

----

{ここに原稿(日本語とその英訳)}

----

適宜修正して使うと良いでしょう。「こっちのプロンプトの方が良かったよ」などの発見があれば教えていただけますと幸いです。

 

発表練習をする

発表練習をしてください。絶対に*1

まずは発音の確認をした方が良いでしょう。最近は無料の英文読み上げサービスもたくさんあるので、自分の使いやすいものを選んで、原稿を見ながら2, 3回聞いてみましょう。最初に全然違う発音で練習してしまうと、後から修正するのが大変です。

その後、今度は自分で何回か読んでみます。このとき、発表スライドを見ながら練習した方が効率が良いです。

何回か練習するとなかなかスッと出てこない自分の苦手な文章が分かってきます。時間があれば気合と根性で練習して覚えてしまっても良いのですが、その前に下記を検討してみてください。

  • 言いやすい文章に変える(最初に言いたくなる単語を文頭に持ってくるなど)
  • スライドの中に、思い出すのに役立ちそうな単語、絵を入れておく

発表練習に使える時間は意外と短いです。15分の発表であれば、1時間に4回しか通しの練習ができません。スキマ時間を如何に有効活用するかが肝となってきます。ある程度覚えたら、頭の中でスライドをイメージしながら、お風呂場や大学までの道のりなどで練習すると良いと思います。

 

少しだけ背伸びをする

ある程度スラスラ発表できるようになって、それでもなお学会まで時間に余裕があったら、ちょっとだけ原稿に手を加えて背伸びをしてみるのも良いでしょう。

まずは原稿の中から自分でもイマイチだと思う文を1つ選んできて、参考書やAIを頼りながらアカデミックでカッコいい文章に置き換えて練習してみましょう。

すでにスラスラ発表できる用意はできているのです。1文くらい余裕でしょう。

これを時間の許す限り行います。

2文でも1文でも良いのです。本番で結局言えずに、元の文章を言ってしまっても大丈夫です。聴衆はそんな我々のチャレンジなんて知らないのですから。

ただ、このうち、本番でも無事使うことのできたカッコいい文章は、次回の原稿を書く際に、最初に想起される文章の一員となっているはずです。

こうして使える表現を増やして行くと良いと思います。

 

最後に

偉そうなことを書きましたが、私もまだまだ手探りの状態です。便利なものはどんどん利用しつつ、自分のスキルも磨いていかなければと感じています。

一方で、英語にかける膨大な時間と労力をもったいないと感じる部分もあります。

最近、英語を母国語としない科学者が、研究活動においてどれだけ不利かを定量的に示す論文が出ました*2

例によってこれも英語で書かれている訳ですが、日本語の紹介記事もいくつかあるので、見てみると良いかもしれません*3

こういった話が、定量的に、そしてアカデミックに議論されているのは大変ありがたいです。

科学者を目指す人間で、こんなことを言おうもんなら、バカにされるような風潮が長らくあったように感じています。

昨今のAIの発達で、こうした言語の壁が取り払われると良いですね。

私がここに記したTipsがいつの日か旧時代の遺物となることを切に願います。

 

 

*1:私は、私よりも遥かに優秀で賢い同じ日本人の方々が、国際学会の場でちゃんと発表できずに、聴衆にもほとんど聞いてもらえていない場面を何度も見ています。中にはあからさまに英語を笑う人もいますし、私も笑われたことがあります。そういうのを見る度に、悔しさというかやるせなさというか、色々と込み上げてくるものがあります。

*2:The manifold costs of being a non-native English speaker in science

*3:editageの記事

ブログなんて書きたくない

ブログなんて書きたくない。

私が好きなのはお喋りなのだ。

常日ごろ考えていることを友人と共有し、それを掘り下げ、他者がもたらす新たな視点に感動しながら、自分の考えを深めるその瞬間が好きなのである。

そのため、私は話し方に気をつける。頭の中で考えていることを、上手に相手に伝えるのは難しい。前提を共有し、順序を考え、主題がボヤけないように無駄な枝葉を取り除く必要がある。何度も頭の中でシミュレーションし、聞いている人を飽きさせないように、淀みのない話し方を推敲する。

そんなときである。

ふと文章が降りてくることがある。

それは、会話に使うには文語的過ぎるし、SNSでつぶやくにはもったいない程に良く出来た、そんな文章を思いつくことがある。

そうなるともう止められない。

メモ帳を開き、文章を書きなぐる。凡人の自分から出てきたはずのその言葉に、何か光るものがあるような気がしてくる。こんな自分でも優れた文章を残すことができるのではないかと舞い上がる。

書きたいのは、思いついたその一文だけだ。ただその一文を書きたいがために、他の文章を書き上げる。泥の中から出てきた1粒の砂金に、立派なショーケースを用意してあげたい。

しかし、私の頭の中は取っ散らかっている。とても人様に見せられたものではない。あちこちに蜘蛛の巣がはっており、読みかけの本や、読みたかった本が散乱している。

そんな四畳半の頭から、まともな文章を捻り出せというのはとうてい無理な話だ。

同じ表現の繰り返し、誤謬、誤用が散見される。それらを見つける度に辞書を引き、意味を調べ、他の言い回しを考える。偉人の言葉を引用し、空っぽのはずの文章に意味を持たせようとする。きらりと光るその一文が、浮かないように沈まないように、なんとか文を繋ぎ合わせる。前後の文章が正しいのかを確認するために、朝まで論文を漁ったこともある。時間もかかるし苦痛な作業だ。

何でこんなことをしているのかと、ふと我に返ることもあるが、せっかく手に入れたその一文をみすみす捨ててしまうだけの度胸もない。もはや文の奴隷である。

そうこうしている間に、文章は出来上がる。大事にしまっていたそれを、ハリボテのショーケースにそっと入れる。

途端、さっきまでの輝きが鈍くなっていることに気がつく。台座をちょっと変えてやる程度では元に戻りそうにない。見つけたときには、確かに光っていたはずなのに。目を凝らせば、わずかに錆びがついている。お前は金ではなかったのか。

だから書きたくなかったのだ。こんなことをしなければ、あるいはその一文はずっと光っていたはずなのに。

そうして、私は自分の書いたその文章を読むことが出来なくなる。読めば読むほどに、光が失せてしまう気がするのである。

しばらくして、蜘蛛たちが新しい餌場を見つけたと、いそいそと巣を作り始める頃。たまたま通りがかった人が、声をかけてくれることがある。

人様が気にかけてくれるほどの文章だったかと不思議に思って読み返すと、存外そんなに悪くない。

急ごしらえのショーケースに飾られたそれは、もはや光ってはいないのだが、なかなかどうして、この四畳半にもよく似合っている。

【夏休みの自由研究】LK-99のバンド計算をしてみよう!

巷では常温常圧超伝導が話題ですね。

きっかけになったのは、7月22日にarXivに投稿された下記の論文です。

arxiv.org

常温常圧超伝導は、人類の悲願とも言える存在であったため、 これだけの注目が集まるのも無理はないかと思います。 一方で、𝕏(旧:Twitter)を始めとするSNSでは、特に専門家以外の方々の間で 熱狂的に議論されているように見えるのは興味深いです。



LK-99の理論について

このLK-99については、実験だけではなく理論の方面からの研究も行われています。 そのうちの1つが密度汎関数法(DFT)を使ったバンド計算です。 すでにいくつかのグループが報告していますが、フェルミ面付近にフラットなバンドが見えており、 これが超伝導体にも見られるものらしいのですが、私は専門外なのでよく分かっていません。

重要なことは、フェルミ面付近でフラットなバンドを持つことは、 超伝導体であるための十分条件ではないということです。

  • LK-99が超伝導体であることが理論的に示された ← 間違い
  • 超伝導体の特徴の1つであるフラットバンドをLK-99が有することが分かった



LK-99のバンドを計算してみる

さて、ここからが本題ですが、ここでは、LK-99のフラットなバンドを 手持ちのパソコンで計算してみることにします。

理論の詳細には立ち入らず、とりあえずこの記事の通りに作業すれば、 LK-99のバンドが計算できるというところを目指します。

夏休みに入ったばかりの大学生が、自由研究感覚で挑戦できると良いなと思っています。 理屈は分からずとも、今話題になっている論文と同じ結果を、家庭のパソコンでも 出力できるという経験は、印象深いものになるのではないでしょうか。

最初に断っておきますが、私は専門家でもなんでもないので、 内容に踏み込んだ議論は行いません。また、ここでの計算結果にも責任は持てません。 このブログは私の自由研究でもあるわけです。


参考にする論文

今回は、こちらの論文を参考にしたいと思います。

arxiv.org

理論の論文をいくつか見ましたが、計算条件が一番分かりやすかったのがこれでした。


DFTソフトのインストール

まずは必要なソフトのインストールです。

論文を見てみると次のように書いてあります。

The first-principles calculations were performed using the Vienna ab initio simulation package (VASP).

ということで筆者らはVASPというソフトを使って計算を行っています。

VASPのホームページにアクセスすると、どうやらライセンスの購入が必要なようです。 価格は書いておらず、まずはお問い合わせからとのこと。



値段が分からないままお問い合わせをするのは怖いので、他のサイトで確認します。

大学生のお小遣いで買える程度だとよいのですが...


VASPの価格 (上杉 著「第一原理シミュレーションによる添加元素の最適化設計」より)


はい...?

ちょっと、お小遣いでは厳しい額ですね...。 しかも教育機関向けと書いてあるので、個人では買えないのでしょう。

というわけで別のソフトを検討する必要が有ります。

幸いなことに、フリーで使えるオープンソースの計算ソフトがいくつか存在します。

今回は、その中でも有名なQuantum Espresso(QE)を使ってみたいと思います。

github.com

インストール自体は、下記のとおりに実行すれば難なく終わります。

% pwd
/home/username
% sudo apt install build-essential gfortran
% sudo apt install openmpi-bin
% git clone https://github.com/QEF/q-e.git
% cd q-e
% ./configure
% make all

ただ、私が検証に利用したパソコンは、すでに色んなライブラリを インストールしてしまっていたため、もしかすると上記だけでは 足りないかも知れません。

その際は、お手数ですがご連絡いただけますと、大変助かります。


必要なファイルの用意

次は計算に必要なファイルを用意します。

下記のようにフォルダを用意しておきましょう。

% pwd
/home/username
% mkdir lk99
% cd lk99


擬ポテンシャル(Pseudopotential)

まずは、擬ポテンシャル(Pseudopotential)を用意します。 これは、電子が原子核から受けるポテンシャルだと思ってもらえれば良いです。

下記のサイトからダウンロードできます。

pseudopotentials.quantum-espresso.org

LK-99は、 {\rm Pb_9 Cu (PO_4)_6 O }という組成をしているので、 Pb, Cu, P, Oの擬ポテンシャルを用意する必要があります。

今回は、下記のコマンドでダウンロードしてください。

% pwd
/home/username/lk99
% mkdir pp
% cd pp
% wget https://pseudopotentials.quantum-espresso.org/upf_files/Pb.pbe-dn-kjpaw_psl.1.0.0.UPF
% wget https://pseudopotentials.quantum-espresso.org/upf_files/Cu.pbe-spn-kjpaw_psl.1.0.0.UPF
% wget https://pseudopotentials.quantum-espresso.org/upf_files/P.pbe-nl-kjpaw_psl.1.0.0.UPF
% wget https://pseudopotentials.quantum-espresso.org/upf_files/O.pbe-n-kjpaw_psl.1.0.0.UPF


結晶構造と計算条件

次はLK-99の構造ファイルを入手します。 幸いなことに、これは論文のSupplementary Materialの中で与えられているので、 これをそのまま使わせていただきます。

論文の後ろの方にある"Pb9Cu(PO4)6O"という文字から始まるセクションを コピーして、POSCARというファイル名で保存してください。 置く場所はどこでも良いです。

▼POSCARの例

% cat POSCAR
Pb9Cu(PO4)6O
1.00000000000000
9.9306823821051555 -0.0000014818366361 0.0000000000000000
-4.9653399077953200 8.6002239607356703 -0.0000000000000000
0.0000000000000000 0.0000000000000000 7.4109945172796605
Pb Cu P O
9 1 6 25
Direct
0.9986807449642078 0.7699202447216552 0.2474756380877509
0.9977014382162520 0.2577003216124319 0.7545056960306785
0.2300797552783452 0.2287605002425670 0.2474756380877509
0.7422996783875685 0.7400011176038168 0.7545056960306785
0.7712395147574378 0.0013192690357936 0.2474756380877509
0.2599988973961879 0.0022985757837491 0.7545056960306785
0.3333333129999971 0.6666666269999979 0.0102252768912011
0.3333333129999971 0.6666666269999979 0.4962563424132084
0.6666666870000029 0.3333333429999996 0.5217140548665616
0.6666666870000029 0.3333333429999996 0.0634955699714910
0.6238378061607577 0.5940989414527301 0.2330614375419467
0.3715115645822017 0.3913852574380640 0.7499251076346213
0.4059010585472700 0.0297388347080183 0.2330614375419467
0.6086147425619355 0.9801263371441329 0.7499251076346213
0.9702611952919840 0.3761622238392447 0.2330614375419467
0.0198736928558696 0.6284884654178010 0.7499251076346213
0.4970341950086190 0.6419127807282180 0.2504819573050943
0.4722574174374839 0.3124116086150668 0.7489819492636393
0.3580872192717823 0.8551214142804011 0.2504819573050943
0.6875883913849331 0.1598458078224275 0.7489819492636393
0.1448785557195963 0.5029657759913753 0.2504819573050943
0.8401541621775773 0.5277425535625101 0.7489819492636393
0.7465890784344098 0.6974373665162791 0.0877326196589775
0.2518710331486960 0.3302579489920529 0.9082269759127742
0.3025626334837207 0.0491516819181211 0.0877326196589775
0.6697420510079468 0.9216131131566275 0.9082269759127742
0.9508483470818850 0.2534109515655927 0.0877326196589775
0.0783869158433784 0.7481289968513065 0.9082269759127742
0.2751067320564097 0.3631086026138700 0.5737407252403873
0.7132743878686607 0.6201447197159712 0.4140528338576862
0.6368913973861298 0.9119981584425314 0.5737407252403873
0.3798552802840290 0.0931296381526946 0.4140528338576862
0.0880018705574747 0.7248932979435926 0.5737407252403873
0.9068703908473114 0.2867256421313418 0.4140528338576862
0.5441603686812513 0.4191736441937305 0.1764358135764958
0.4780900223868556 0.5733419996779769 0.7722935441387523
0.5808263258062671 0.1249867244875282 0.1764358135764958
0.4266579703220141 0.9047479627088743 0.7722935441387523
0.8750132455124694 0.4558396313187486 0.1764358135764958
0.0952520072911234 0.5219099776131445 0.7722935441387523
-0.0000000000000000 0.0000000000000000 0.2917658511111268

正直、この構造ファイルさえ手に入れば、半分は勝ったも同然です。

ただし、このファイルはVASP用のフォーマットになっているので、 これをQE用に変換してあげる必要があります。

下記のサイトにアクセスしてください。

www.materialscloud.org

フォーマットをPOSCARにし、「ファイルを選択」で先程作成した POSCARファイルをアップロード、"Calculate my structure"をクリックしてください。

すると良い感じの画面が出てくるので、下の方にスクロールしてQEのインプットを見つけてください。

これをクリップボードにコピーして、下記のような感じで保存してください。

% pwd
/home/username/lk99
% mkdir inputs
% cd inputs
% cat > input.in

余談ですが、PythonのASEやPymatgenなどのライブラリを使えば、 こういった作業は自動でこなせるようになります。


実行

それではいよいよ計算の開始です。 DFTによるバンド計算の流れは、概ね次のようなものになります。

  1. 構造最適化
  2. SCF
  3. NSCF
  4. DOS
  5. バンド図

このうち、1の構造最適化が一番時間がかかるのですが、 今回はこれをスキップして、論文で与えられている構造を そのまま使うことにします。 また、4のDOSについても今回は行いません。

  1. 構造最適化
  2. SCF
  3. NSCF
  4. DOS
  5. バンド図

ちなみに、今回私が6コアのマシンで検証した際の計算時間は下記のとおりでした。

  1. 構造最適化
  2. SCF (1時間39分)
  3. NSCF (3時間5分)
  4. DOS
  5. バンド図 (4時間4分)


SCF計算

最初にSCF計算を行います。

まずは次のように作業してください。

% pwd
/home/username/lk99
% mkdir 01scf
% cd 01scf
% cp ../inputs/input.in .

ここで、input.inを次のように編集します。

▼input.inの例

% cat scf.in
&CONTROL
    prefix      = 'lk99'
    calculation = 'scf'
    tstress     = .true.
    tprnfor     = .true.
    outdir      = './out'
    pseudo_dir  = '../pp'
/
&SYSTEM
    ibrav       = 0
    nat         = 41
    ntyp        = 4
    ecutwfc     = 40
    ecutrho     = 160
    occupations = 'smearing'
    degauss     = 0.003675
    smearing    = 'gaussian'
/
&ELECTRONS
    electron_maxstep = 100
    conv_thr         = 1e-09
    mixing_beta      = 0.7
    diago_david_ndim = 4
/
ATOMIC_SPECIES
Pb         207.2 Pb.pbe-dn-kjpaw_psl.1.0.0.UPF
Cu        63.546 Cu.pbe-spn-kjpaw_psl.1.0.0.UPF
P   30.973761998 P.pbe-nl-kjpaw_psl.1.0.0.UPF
O         15.999 O.pbe-n-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS angstrom
Pb       1.1293232294     3.7547448097     1.8340405970
Pb      -1.3023964628     7.9497623531     5.5916375765
Pb       1.1489751864     7.7008734208     1.8340405970
Pb      -1.2681567294     3.4974336207     5.5916375765
Pb      -2.2782984159     5.7448282092     1.8340405970
Pb       2.5705531922     5.7532504658     5.5916375765
Pb       4.9653411911     2.8667410733     0.0757794710
Pb       4.9653411911     2.8667410733     3.6777530328
Pb       0.0000000000     0.0000000000     3.8664200002
Cu       0.0000000000     0.0000000000     0.4705653209
P        8.2105722025     2.2426423547     1.7272170358
P        6.7113430460     0.4992594225     5.5576908611
P        3.8832110300     5.9892429296     1.7272170358
P        6.1426395162     5.5625638601     5.5576908611
P        2.8022403406     0.3683379355     1.7272170358
P        2.0420410111     2.5383999373     5.5576908611
O        6.7139137896     2.6538520455     1.8563204123
O        3.1386080324     8.4202916340     5.5507011195
O        4.2754221980     4.4874938779     1.8563204123
O       -3.8961492874     7.1081916914     5.5507011195
O        3.9066875856     1.4588772965     1.8563204123
O        0.7575412550     1.6719631142     5.5507011195
O       -1.0142168212     3.1313758775     0.6501859633
O        0.8614076797     8.5737741449     6.7308651389
O        2.7605985430     6.1561977489     0.6501859633
O       -2.8904688646     5.0593370810     6.7308651389
O       -1.7463817217     7.9128728132     0.6501859633
O        2.0290611848     3.5673352137     6.7308651389
O        5.8943805130     0.2560738791     4.2519893691
O       -0.9612700690     2.4666418617     3.0685432816
O        6.7617256411     4.9766463243     4.2519893691
O        3.3098017112     6.5344179893     3.0685432816
O        2.2399174191     3.3675030165     4.2519893691
O       -2.3485316423     8.1993865886     3.0685432816
O        8.2878846617     0.7382457515     1.3075648471
O        6.8662625520     2.0641280221     5.7234632213
O        5.1474004762     6.8083957849     1.3075648471
O        4.7099638023     4.9142937880     5.7234632213
O        1.4607384353     1.0535816834     1.3075648471
O        3.3197972189     1.6218014097     5.7234632213
O        0.0000000000     5.7334821466     2.1622751229
K_POINTS {automatic}
4 4 5 0 0 0 
CELL_PARAMETERS angstrom
    9.9306823821     0.0000000000     0.0000000000
   -4.9653411911     8.6002232198     0.0000000000
    0.0000000000     0.0000000000     7.4109945173

次のコマンドで実行です。

% pwd
/home/username/lk99/01scf
% pw.x < input.in > out.o

複数コアが使えるのであれば、下記のようにすることで並列化出来ます。

% OMP_NUM_THREADS=1 mpirun -np 4 pw.x < input.in > out.o


NSCF計算

次はNSCF計算です。

次のように作業してください。

% pwd
/home/username/lk99
% mkdir 02nscf
% cd 02nscf
% cp ../01scf/input.in .
% cp -r ../01scf/out .

input.inを若干修正します。

% pwd
/home/username/lk99/02nscf
% diff input.in ../01scf/input.in 
3c3
<     calculation = 'nscf'
---
>     calculation = 'scf'
15c15,17
<     occupations = 'tetrahedra'
---
>     occupations = 'smearing'
>     degauss     = 0.003675
>     smearing    = 'gaussian'
71c73
< 6 6 7 0 0 0 
---
> 4 4 5 0 0 0

コピペできるように、全文も載せておきます。

▼input.inの例

% cat input.in 
&CONTROL
    prefix      = 'lk99'
    calculation = 'nscf'
    tstress     = .true.
    tprnfor     = .true.
    outdir      = './out'
    pseudo_dir  = '../pp'
/
&SYSTEM
    ibrav       = 0
    nat         = 41
    ntyp        = 4
    ecutwfc     = 40
    ecutrho     = 160
    occupations = 'tetrahedra'
/
&ELECTRONS
    electron_maxstep = 100
    conv_thr         = 1e-09
    mixing_beta      = 0.7
    diago_david_ndim = 4
/
ATOMIC_SPECIES
Pb         207.2 Pb.pbe-dn-kjpaw_psl.1.0.0.UPF
Cu        63.546 Cu.pbe-spn-kjpaw_psl.1.0.0.UPF
P   30.973761998 P.pbe-nl-kjpaw_psl.1.0.0.UPF
O         15.999 O.pbe-n-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS angstrom
Pb       1.1293232294     3.7547448097     1.8340405970
Pb      -1.3023964628     7.9497623531     5.5916375765
Pb       1.1489751864     7.7008734208     1.8340405970
Pb      -1.2681567294     3.4974336207     5.5916375765
Pb      -2.2782984159     5.7448282092     1.8340405970
Pb       2.5705531922     5.7532504658     5.5916375765
Pb       4.9653411911     2.8667410733     0.0757794710
Pb       4.9653411911     2.8667410733     3.6777530328
Pb       0.0000000000     0.0000000000     3.8664200002
Cu       0.0000000000     0.0000000000     0.4705653209
P        8.2105722025     2.2426423547     1.7272170358
P        6.7113430460     0.4992594225     5.5576908611
P        3.8832110300     5.9892429296     1.7272170358
P        6.1426395162     5.5625638601     5.5576908611
P        2.8022403406     0.3683379355     1.7272170358
P        2.0420410111     2.5383999373     5.5576908611
O        6.7139137896     2.6538520455     1.8563204123
O        3.1386080324     8.4202916340     5.5507011195
O        4.2754221980     4.4874938779     1.8563204123
O       -3.8961492874     7.1081916914     5.5507011195
O        3.9066875856     1.4588772965     1.8563204123
O        0.7575412550     1.6719631142     5.5507011195
O       -1.0142168212     3.1313758775     0.6501859633
O        0.8614076797     8.5737741449     6.7308651389
O        2.7605985430     6.1561977489     0.6501859633
O       -2.8904688646     5.0593370810     6.7308651389
O       -1.7463817217     7.9128728132     0.6501859633
O        2.0290611848     3.5673352137     6.7308651389
O        5.8943805130     0.2560738791     4.2519893691
O       -0.9612700690     2.4666418617     3.0685432816
O        6.7617256411     4.9766463243     4.2519893691
O        3.3098017112     6.5344179893     3.0685432816
O        2.2399174191     3.3675030165     4.2519893691
O       -2.3485316423     8.1993865886     3.0685432816
O        8.2878846617     0.7382457515     1.3075648471
O        6.8662625520     2.0641280221     5.7234632213
O        5.1474004762     6.8083957849     1.3075648471
O        4.7099638023     4.9142937880     5.7234632213
O        1.4607384353     1.0535816834     1.3075648471
O        3.3197972189     1.6218014097     5.7234632213
O        0.0000000000     5.7334821466     2.1622751229
K_POINTS {automatic}
6 6 7 0 0 0 
CELL_PARAMETERS angstrom
    9.9306823821     0.0000000000     0.0000000000
   -4.9653411911     8.6002232198     0.0000000000
    0.0000000000     0.0000000000     7.4109945173

次のコマンドで実行です。

% pwd
/home/username/lk99/02nscf
% pw.x < input.in > out.o

この計算が終わるとフェルミエネルギーが取得できるので、 控えておいてください。

% grep Fermi out.o 
     the Fermi energy is     6.6810 ev


バンド計算

最後に、お待ちかねのバンド計算です。

% pwd
/home/username/lk99
% mkdir 03bands
% cd 03bands
% cp ../01scf/input.in .
% cp -r ../01scf/out .

input.inは下記のように編集してください。

▼input.inの例

% cat input.in 
&CONTROL
    prefix      = 'lk99'
    calculation = 'bands'
    tstress     = .true.
    tprnfor     = .true.
    outdir      = './out'
    pseudo_dir  = '../pp'
    verbosity   = 'high'
/
&SYSTEM
    ibrav       = 0
    nat         = 41
    ntyp        = 4
    ecutwfc     = 40
    ecutrho     = 160
    occupations = 'smearing'
    degauss     = 0.003675
    smearing    = 'gaussian'
/
&ELECTRONS
    electron_maxstep = 100
    conv_thr         = 1e-09
    mixing_beta      = 0.7
    diago_david_ndim = 4
/
ATOMIC_SPECIES
Pb         207.2 Pb.pbe-dn-kjpaw_psl.1.0.0.UPF
Cu        63.546 Cu.pbe-spn-kjpaw_psl.1.0.0.UPF
P   30.973761998 P.pbe-nl-kjpaw_psl.1.0.0.UPF
O         15.999 O.pbe-n-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS angstrom
Pb       1.1293232294     3.7547448097     1.8340405970
Pb      -1.3023964628     7.9497623531     5.5916375765
Pb       1.1489751864     7.7008734208     1.8340405970
Pb      -1.2681567294     3.4974336207     5.5916375765
Pb      -2.2782984159     5.7448282092     1.8340405970
Pb       2.5705531922     5.7532504658     5.5916375765
Pb       4.9653411911     2.8667410733     0.0757794710
Pb       4.9653411911     2.8667410733     3.6777530328
Pb       0.0000000000     0.0000000000     3.8664200002
Cu       0.0000000000     0.0000000000     0.4705653209
P        8.2105722025     2.2426423547     1.7272170358
P        6.7113430460     0.4992594225     5.5576908611
P        3.8832110300     5.9892429296     1.7272170358
P        6.1426395162     5.5625638601     5.5576908611
P        2.8022403406     0.3683379355     1.7272170358
P        2.0420410111     2.5383999373     5.5576908611
O        6.7139137896     2.6538520455     1.8563204123
O        3.1386080324     8.4202916340     5.5507011195
O        4.2754221980     4.4874938779     1.8563204123
O       -3.8961492874     7.1081916914     5.5507011195
O        3.9066875856     1.4588772965     1.8563204123
O        0.7575412550     1.6719631142     5.5507011195
O       -1.0142168212     3.1313758775     0.6501859633
O        0.8614076797     8.5737741449     6.7308651389
O        2.7605985430     6.1561977489     0.6501859633
O       -2.8904688646     5.0593370810     6.7308651389
O       -1.7463817217     7.9128728132     0.6501859633
O        2.0290611848     3.5673352137     6.7308651389
O        5.8943805130     0.2560738791     4.2519893691
O       -0.9612700690     2.4666418617     3.0685432816
O        6.7617256411     4.9766463243     4.2519893691
O        3.3098017112     6.5344179893     3.0685432816
O        2.2399174191     3.3675030165     4.2519893691
O       -2.3485316423     8.1993865886     3.0685432816
O        8.2878846617     0.7382457515     1.3075648471
O        6.8662625520     2.0641280221     5.7234632213
O        5.1474004762     6.8083957849     1.3075648471
O        4.7099638023     4.9142937880     5.7234632213
O        1.4607384353     1.0535816834     1.3075648471
O        3.3197972189     1.6218014097     5.7234632213
O        0.0000000000     5.7334821466     2.1622751229
K_POINTS crystal
73
    0.0000000000     0.0000000000     0.0000000000 1 ! GAMMA 
    0.0769230769     0.0000000000     0.0000000000 1
    0.1538461538     0.0000000000     0.0000000000 1
    0.2307692308     0.0000000000     0.0000000000 1
    0.3076923077     0.0000000000     0.0000000000 1
    0.3846153846     0.0000000000     0.0000000000 1
    0.4615384615     0.0000000000     0.0000000000 1
    0.5000000000     0.0000000000     0.0000000000 1 ! M
    0.4523809524     0.0952380952     0.0000000000 1
    0.4047619048     0.1904761905     0.0000000000 1
    0.3571428571     0.2857142857     0.0000000000 1
    0.3333333333     0.3333333333     0.0000000000 1 ! K
    0.2888888889     0.2888888889     0.0000000000 1
    0.2444444444     0.2444444444     0.0000000000 1
    0.2000000000     0.2000000000     0.0000000000 1
    0.1555555556     0.1555555556     0.0000000000 1
    0.1111111111     0.1111111111     0.0000000000 1
    0.0666666667     0.0666666667     0.0000000000 1
    0.0222222222     0.0222222222     0.0000000000 1
    0.0000000000     0.0000000000     0.0000000000 1 ! G
    0.0000000000     0.0000000000     0.0666666667 1
    0.0000000000     0.0000000000     0.1333333333 1
    0.0000000000     0.0000000000     0.2000000000 1
    0.0000000000     0.0000000000     0.2666666667 1
    0.0000000000     0.0000000000     0.3333333333 1
    0.0000000000     0.0000000000     0.4000000000 1
    0.0000000000     0.0000000000     0.4666666667 1
    0.0000000000     0.0000000000     0.5000000000 1 ! A
    0.0769230769     0.0000000000     0.5000000000 1
    0.1538461538     0.0000000000     0.5000000000 1
    0.2307692308     0.0000000000     0.5000000000 1
    0.3076923077     0.0000000000     0.5000000000 1
    0.3846153846     0.0000000000     0.5000000000 1
    0.4615384615     0.0000000000     0.5000000000 1
    0.5000000000     0.0000000000     0.5000000000 1 ! L
    0.4523809524     0.0952380952     0.5000000000 1
    0.4047619048     0.1904761905     0.5000000000 1
    0.3571428571     0.2857142857     0.5000000000 1
    0.3333333333     0.3333333333     0.5000000000 1 ! H
    0.2888888889     0.2888888889     0.5000000000 1
    0.2444444444     0.2444444444     0.5000000000 1
    0.2000000000     0.2000000000     0.5000000000 1
    0.1555555556     0.1555555556     0.5000000000 1
    0.1111111111     0.1111111111     0.5000000000 1
    0.0666666667     0.0666666667     0.5000000000 1
    0.0222222222     0.0222222222     0.5000000000 1
    0.0000000000     0.0000000000     0.5000000000 1 ! A
    0.5000000000     0.0000000000     0.5000000000 1 ! L
    0.5000000000     0.0000000000     0.4333333333 1
    0.5000000000     0.0000000000     0.3666666667 1
    0.5000000000     0.0000000000     0.3000000000 1
    0.5000000000     0.0000000000     0.2333333333 1
    0.5000000000     0.0000000000     0.1666666667 1
    0.5000000000     0.0000000000     0.1000000000 1
    0.5000000000     0.0000000000     0.0333333333 1
    0.5000000000     0.0000000000     0.0000000000 1 ! M
    0.3333333333     0.3333333333     0.5000000000 1 ! H
    0.3333333333     0.3333333333     0.4333333333 1
    0.3333333333     0.3333333333     0.3666666667 1
    0.3333333333     0.3333333333     0.3000000000 1
    0.3333333333     0.3333333333     0.2333333333 1
    0.3333333333     0.3333333333     0.1666666667 1
    0.3333333333     0.3333333333     0.1000000000 1
    0.3333333333     0.3333333333     0.0333333333 1
    0.3333333333     0.3333333333     0.0000000000 1 ! K
    0.3333333333     0.3333333333    -0.0666666667 1
    0.3333333333     0.3333333333    -0.1333333333 1
    0.3333333333     0.3333333333    -0.2000000000 1
    0.3333333333     0.3333333333    -0.2666666667 1
    0.3333333333     0.3333333333    -0.3333333333 1
    0.3333333333     0.3333333333    -0.4000000000 1
    0.3333333333     0.3333333333    -0.4666666667 1
    0.3333333333     0.3333333333    -0.5000000000 1 ! H2 
CELL_PARAMETERS angstrom
    9.9306823821     0.0000000000     0.0000000000
   -4.9653411911     8.6002232198     0.0000000000
    0.0000000000     0.0000000000     7.4109945173

この"K_POINTS crystal"の下に書いてあるのが、 まさにバンド図の描き方を指定しているところです。

先程アクセスしたSeeK-pathの出力をそのまま使うと、 このバンド図の指定が細かすぎて、計算に時間が かかってしまうため、私の方で不要な部分はカットし、 また、てきとうに間引いてあります。

次のコマンドで実行です。

% pwd
/home/username/lk99/03bands
% pw.x < input.in > out.o


バンド図のプロット

計算したバンドをプロットします。 下記の作業を行ってください。

% pwd
/home/username/lk99
% mkdir 04plotbands
% cd 04plotbands
% cp -r ../03bands/out .

次のようなinput.inを作成してください。

% cat input.in 
&bands
  outdir  = './out'
  prefix  = 'lk99'
  filband = 'lk99.band'
  lsym    = .true.
/

次のコマンドで実行です。

% pwd
/home/username/lk99/04plotbands
% bands.x < input.in > out.o

計算が終了したら、結果をプロットします。

gnuplotなどを使えば、このままでもプロットできるのですが、 あまり綺麗な図にならないので、今回はpythonでプロットしたいと思います。

下記のようなpythonスクリプトを用意してください。

▼pythonコードの例

import numpy as np
import matplotlib.pyplot as plt

def read_bands(filename):
    bands = []
    band  = []
    for line in open(filename):
        line = line.split()
        if len(line)==0:
            bands.append(np.array(band))
            band = []
        else:
            band.append([ float(v) for v in line ])
    return(bands)
            
def get_p_online(b1, b2, b3, path):
    dk = 0.0
    positions = [dk]
    for i in range(1, len(path)):
        ks  = path[i-1][0]*b1 + path[i-1][1]*b2 + path[i-1][2]*b3
        kd  = path[i][0]*b1 + path[i][1]*b2 + path[i][2]*b3
        v   = (kd - ks)
        dk += np.sqrt(sum(v**2))
        positions.append(dk)
    return(positions)

def main():
    plt.rcParams["font.size"] = 18
    plt.figure(figsize=(16, 9))
    
    elec_num = (14*9 + 19*1 + 5*6 + 6*25 - 1)//2 + 1
    fermi    = 6.6810
    lat_a    = 9.9306823821
    bandfile = "./lk99.band.gnu"
    
    b1 = np.array([0.6327042861, 0.3652919899, 0.0000000000])
    b2 = np.array([0.0000000000, 0.7305839798, 0.0000000000])
    b3 = np.array([0.0000000000, 0.0000000000, 0.8478194516])
    
    # (G, M, K, G, A, L, H, A), (L, M), (H, K, H2)
    vG  =  np.array([0.0000000000, 0.0000000000,  0.0000000000]) 
    vM  =  np.array([0.5000000000, 0.0000000000,  0.0000000000]) 
    vK  =  np.array([0.3333333333, 0.3333333333,  0.0000000000]) 
    vA  =  np.array([0.0000000000, 0.0000000000,  0.5000000000]) 
    vL  =  np.array([0.5000000000, 0.0000000000,  0.5000000000]) 
    vH  =  np.array([0.3333333333, 0.3333333333,  0.5000000000]) 
    vH2 =  np.array([0.3333333333, 0.3333333333, -0.5000000000]) 

    s1  = get_p_online(b1, b2, b3, (vG, vM, vK, vG, vA, vL, vH, vA))
    s2  = get_p_online(b1, b2, b3, (vL, vM))
    s3  = get_p_online(b1, b2, b3, (vH, vK, vH2))

    s1  = [ s/((2.0*np.pi)/lat_a) for s in s1 ]
    s2  = [ s1[-1] + s/((2.0*np.pi)/lat_a) for s in s2 ]
    s3  = [ s2[-1] + s/((2.0*np.pi)/lat_a) for s in s3 ]

    plt.axhline(y=0, color="gray", linestyle="dashed")
    for k1 in s1:
        plt.axvline(x=k1, color="gray", linestyle="dashed")
    for k2 in s2:
        plt.axvline(x=k2, color="gray", linestyle="dashed")
    for k3 in s3:
        plt.axvline(x=k3, color="gray", linestyle="dashed")

    plt.axvline(x=s1[0],  lw=3, color="dimgray", linestyle="solid")
    plt.axvline(x=s1[-1], lw=3, color="dimgray", linestyle="solid")
    plt.axvline(x=s2[-1], lw=3, color="dimgray", linestyle="solid")
    plt.axvline(x=s3[-1], lw=3, color="dimgray", linestyle="solid")

    dl = 0.08
    xticks = s1[:-1] + [s1[-1]-dl] + [s2[0]+dl] + s2[1:-1] + [s2[-1]-dl] + [s3[0]+dl] + s3[1:]
    plt.xticks(xticks, (r"$\Gamma$", "M", "K", r"$\Gamma$", "A", "L", "H", "A", "L", "M", "H", "K", r"H$_2$"))
        
    bands = read_bands(bandfile)
    for bi, band in enumerate(bands):
        if bi==elec_num-1:
            plt.plot(band[:, 0], band[:, 1]-fermi, color="red")
        else:
            plt.plot(band[:, 0], band[:, 1]-fermi, color="black")

    plt.xlim([s1[0], s3[-1]])
    plt.ylim([-2, 4])
    #plt.ylim([-0.1, 0.1])

    plt.ylabel("Energy (eV)")
    
    plt.show()
    #plt.savefig("./bands_wide.png")

if __name__=="__main__":
    main()

これは、今回のために私がてきとうに作ったものなので、 あまり汎用性がないことに注意してください。

plot.pyなどの名前をつけて保存し、実行してください。

% pwd
/home/username/lk99/04plotbands
% python plot.py

つぎのようなバンド図が得られます。

QEで計算したLK-99のバンド図

フェルミ面近傍のバンドを赤で表示しています。参考にした論文同様、平坦なバンドが得られていることが確認できますね。


ほいよ
これ、フリーのソフトで作ったLK-99のフラットバンド図ね
追加でHubbard U足してもいいし、VASPに30万出すことはないんだよ



あとがき

現在はまだ、世界各国のグループが検証を進めている段階ですので、 このLK-99が本当に常温常圧超伝導なのかは定かではありません。 この辺の最新の情報については、日本語版Wikipediaでも活発に 情報が更新されているので、気になる方は随時チェックすると良いかも知れません。

ja.wikipedia.org

こうした世間の盛り上がりとは裏腹に、専門家の方々からはどこか落ち着いている印象を受けます。 それもそのはずで、この超伝導に関しては、過去多くの科学者が振り回されてきた歴史があるのです。 有名なものとしては、当時ベル研にいたヘンドリック・シェーンの起こした、通称シェーン事件というものがあります。 こちらについては、下記の動画に大変わかり易く、そして面白くまとまっているので、是非見てみてください。

www.nicovideo.jp

LK-99の現状については、下記のサイトに非常に分かり易くまとまっていました。

science-log.com



[参考文献]

・ チャールズ キッテル (著)「キッテル 固体物理学入門 第8版〈上〉」
・ 小口 多美夫 (著)「バンド理論―物質科学の基礎として (材料学シリーズ)」
・ 前園 涼 (著), 市場 友宏 (著)「動かして理解する 第一原理電子状態計算:DFTパッケージによるチュートリアル

【便乗記事】 物理好きから見た化学の凄さ

 

この記事は、下記のツイートに便乗したものです。

 

 

私は大学で物理を専攻していたので、どちらかと言うまでもなく物理側の人間なのですが、そんな立場からまずは一言言わせてください。

その気持ち、めっちゃわかる

私は高校生の頃から物理が好きで、化学が苦手という人間でしたので、ツイートされた方の気持ちは本当に良くわかります*1

私が特に共感したのは「非論理的」の部分で、これは私が最初に化学に触れた際に感じたことに近いです。少し言葉を補えば、化学はローカルなルールや個別の事象が並べてあるだけで、その背後にあると思われる普遍的な部分に触れることができない学問だというのが私の第一印象です。

しかし一方で、例えば、熱化学方程式とか、平衡定数の計算とかはそれなりに楽しんでやっていました。別に計算が好きだったわけではなく、身の回りの現象が定量的に分かることに魅力を感じていたのです。苦手としていたのは、無機の色や有機の反応です。まず、覚えることが多く、出てくる規則も、何かこうふわふわとしており、例外の多いゲームを覚えさせられているような気持になりました。有機の参考書にいたっては、見ていると辞書を読んでいるような感覚に陥ります。つまり、そこには個別の反応がずらっと並んでいるだけで、体系立っているようには見えなかったのです。

当時私は物理信者に軽く片足を突っ込んでいたので

「こんな色とか反応とかはなあ!
いちいち暗記してなくたって物理を使えば論理的に導き出せるんだよ!!」

と本気で思ってました。

こうして、俗に言う高二病のような症状を患ったまま、私は期待に胸を膨らませて大学に入学しました。「これで謎の暗記ゲームともおさらば、俺を散々苦しめたケト-エノール互変異性の背後にどんなからくりがあったのか暴いてやる」などと大層なことを考えていたのです。

しかし、大学に入学して本格的に大学物理の勉強を始めた私は愕然とします。物理で解き明かせる範囲が思っていたよりもめちゃくちゃ狭かったのです。

特にがっかりしたのは量子力学です。量子力学の基礎方程式であるシュレディンガー方程式を元素に適用したときに、厳密な解析解が得られるのは水素しかないのです。分子になれば難易度はさらに跳ね上がり、当然厳密解は得られません。分子同士が相互作用する化学反応ともなれば尚更です。

この辺の事情は、私の過去の記事で稚拙な物語口調で書いているので、良かったら見て頂ければと思います。

こうして一度は絶望を味わった私でしたが、やはり物理学者は天才達揃いです。「これ解けないんでどうしようもないですね笑」などと諦めたりはしません。解けないはずのその問題に果敢に挑みます。

その際、強力な武器となるのが「近似」です。近似とは、着目したい現象や系の本質を失わないように方程式などを単純化して、何とか解ける形に持っていくことです。小学校で円の面積を求めるために円周率を3.14として計算したと思いますが、円周率は実際には無限に続くので、これも近似になります。

私は、大学に入学したての頃、この近似が嫌いでした。「方程式が分かってるんだからちゃんと解けばいいじゃん」と思っていたのです。しかし、先ほど述べたように、物理において解ける問題は非常に限られています。高校物理で、解が得られる綺麗な世界しか見えていなかった私には、その周りに広がる、解の得られない広大な領域の存在を知らなかったのです。そして勉強を進めていくうちに、寧ろこの近似こそが物理の面白い部分の1つであるのだと気が付きました。それは、系と方程式を深く理解し、問題を上手に切り取るセンスが問われる部分なのです。しかし、それと同時に、一見妥当だと思われる推論によってもたらされた近似が、思わぬ問題をはらんでいる場合もあります。

今回は、化学と物理の関係という切り口でフントの第一規則にまつわる「近似がもたらした間違い」のお話をしたいと思います。

フントの第一規則は、単にフント則と言われたりもしますが、めちゃくちゃ簡単に説明すると、「電子はできるだけスピンを平行にして(スピンの向きを揃えて)軌道に入ろうとする」というもので、高校化学でも習う原子のK殻、L殻、M殻などの軌道にどのように電子が詰まっていくかを教えてくれるものです。

フント則が発表された1925年は、量子力学の黎明期に発見されていた様々な現象がまとめ上げられた時期で、1925年には行列力学が、1926年にはシュレディンガー方程式が発表されました。この頃を量子力学が完成した時期と言っている人もいるようです。

フント則はドイツの物理学者フリードリッヒ・フントが実験結果から導いた経験則でしたが、これを完成したばかりの量子力学によって説明しようと考えるのは自然な流れと言えるでしょう。1929年には、ジョン・クラーク・スレーターが量子力学に基づく説明を試みています。

このコンセプト自体はそこまで難しくありません。要は、電子のスピンの向きが揃っていない場合(反平行)と、揃っている場合(平行)とで、エネルギーの大小を比較をしてあげれば良いのです。フント則によれば、電子はできるだけスピンを平行にしようとするので、スピンが平行の方がエネルギーが低くなることが示せればひとまずはゴールです。しかし、残念なことにこれを示すのは一筋縄ではいかないのです。というのも、これを考えるためには、どうしたって1つの原子核と、電子が2つ以上の系を考える必要がありますが、その場合には多体問題となってシュレディンガー方程式をそのまま解くことができなくなるからです。

そうです。この問題に対処するためには何らかの近似を講じる必要があります。

スレーターは、いくつかの仮定を置くことで反平行の場合のエネルギーと平行の場合のエネルギーを次のように導きました。

見比べてみると、 Jがプラスなのかマイナスなのかの部分だけが異なっていることが分かります。 Jの値は正なので、 E_{平行}の方が、つまりスピンが揃った方がエネルギーが低くなることが分かります。この Jは交換エネルギーと呼ばれるもので、この結果から「フント則の起源は交換エネルギーの利得によるもの」という説明がなされました。

この結果は非常に興味深いものです。それは、フント則を上手に説明できたという以上に、大変示唆に富んでいるように思われるからです。というのも、この T V,  Kは、古典力学でも対応する概念が存在するのですが、この交換エネルギー Jだけは、量子力学にしかない概念なのです。そのため、「フント則の不思議な性質は量子的な効果によってもたらされている」という、素人にも分かりやすく魅力的な説明が可能です。

このスレーターの研究によって、「フント則が何故成り立つのか」については解決したかに思えました。しかし、実は1964年にアーネスト・デビッドソンという化学者によって、この解釈を否定する研究結果が発表されたのです。彼は、スレーターが置いたいくつかの仮定を取り除いた、より高精度な計算を行うことで、この解釈の誤りを明らかにしました。その後も、多くの研究者が計算を行っていますが、いずれもデビッドソンの解釈を支持する結果を出しています。この辺りの話については、日本語で大変良くまとまっている文献があるので、ぜひそちらを読んでみてください*2*3*4

さて、ここまでの話を簡単にまとめると次のようになります。まず、1925年にフント則が経験的に発見され、その4年後に量子力学を使ったフント則の最初の説明がスレーターによって与えられました。しかし、それから35年後にスレーターの解釈を否定する結果がデビッドソンによって発表され、その後多くの研究がデビッドソンを支持しました*5

このエピソードから私が伝えたいのは、経験則を説明する難しさです。

シュレディンガー方程式を解くことができれば、確かにミクロな世界の現象は全て解き明かせるはずです。しかし、ここまで繰り返し述べてきたように、シュレディンガー方程式が綺麗に解けるケースはほとんどありません。したがって何らかの近似を行う必要がありますが、その近似によって本質的に重要な部分を切り落としてしまう危険性もあります。そして、もう1つ厄介な事として、結局どれが真実なのか決着がつきにくいという問題があります。

このフント則については、デビッドソンに始まる一連の研究によって決着がついたかに思われます。少なくとも素人の私からすれば、この結果は疑いようのないものに思われます*6。ところが、今でも多くの教科書ではスレーターの解釈に基づいてフント則を説明しているのです。実際、私が大学生だったのは2010年代ですが、そのときも、このスレーターの解釈によるフント則の説明を受けました。1964年にはデビッドソンの研究結果が報告されていたにも関わらずです。

何故このようなことになっているのかについて、本当のところは私には分かりません。しかし、このスレーターの解釈には、私でもそう説明したくなるほどの魅力があるのです。それは、手計算で解けてしまうお手軽さに加えて、その結果の解釈のし易さにあります。実は、この計算結果はパウリの排他原理を用いた定性的な説明が可能なのです。パウリの排他原理は、大学で量子力学を学ぶ人が序盤に出会う、量子の不思議な性質の1つです。そのため、「この量子特有のパウリの排他原理によって、例えばフント則が説明できます」と面白い小話を挟むことができるのです。結局、スレーターの解釈には誤りがあるため、このパウリの排他原理を用いたフント則の説明も誤りなのですが、話し手からすれば大変使いやすいストーリーです。

ここで、藤永先生の著書「分子軌道法」から次の文を引用したいと思います。この本は、スレーターの解釈の問題点を指摘している数少ない参考書の1つです。

(スレーターの解釈の間違いを述べた後で)
「ここで得られる教訓は,簡単明快な説明を鵜呑みにするのは禁物だということである」

あるいは、シュレディンガー方程式が近似なしで解けるのであれば、このようなことにはなっていなかったかもしれません。デビッドソンの研究は、スレーターの置いたいくつかの仮定を取り払うことで、近似の精度をあげていますが、その代償として、その方程式や解法はより複雑なものとならざるを得ませんでした。こうした見通しの悪さが、デビッドソンの解釈が普及するのを妨げる一因となっているのかもしれません。

さて、「フント則」1つとってもこの有様なのです。他の化学反応などの様子は推して知るべしでしょう。

こうして量子力学の難しさが明らかになるにつれて、化学の、ひいては化学者の凄さが浮き彫りになります。

化学者は、多くの実験を繰り返すことで、そこに隠れる法則を見出します。それは、「この法則は全てを説明する」と言えるものでは決してありませんが、ある条件下での普遍性を提供するものです。

私が大学院生のとき、化学の実験家の方と共同研究をする機会が何度かありましたが、その言動には驚かされるばかりでした。

彼らは系を見ただけで、「そんなとこに窒素は入らない」とか「この結合が切れる」などと言うのです。中には「電子の軌道が見える」と言う人もいました。ともすれば、インチキ霊能力者の語るオーラの話に聞こえますが、実際に実験、計算するとそうなるのだから驚きです。

私は時々想像するのですが、もし何らかの理由で、人類が実験を行うことができない世界だったとして、ただしシュレディンガー方程式だけは神様から与えられていたとして、一体いくつの法則やルールを見つけられるのだろうと。私が辞書だと揶揄したあの参考書の、一体何ページを埋められるのだろうと考えるのです。

フント則の場合は、実験によって成り立つべき法則が分かっていて、多くの研究者がそこを目指して研究を進めた訳ですが、それでも答えが明らかになるまでには長い年月を必要としました。実験結果がなく、シュレディンガー方程式だけが知られていた世界でフント則を見つけるのは、あるいは絶望的だったかもしれません*7

 

 

 

[参考文献]

・ 小出 昭一郎 (著) 「量子力学 (I)」
・ 小出 昭一郎 (著) 「量子力学 (II)」
・ 大岩 正芳 (著) 「初等量子化学(第2版)」
・ 藤永 茂 (著) 「分子軌道法
・ Attila Szabo (著) 「新しい量子化学―電子構造の理論入門〈上〉」

 

*1:もっとも、「科学だと思えない」の部分は少し語弊があるかもしれません。カール・ポパーの言葉を借りて、科学であることの条件を反証可能性を持つことであるとするなら、化学は疑いようもなく科学であると言えます。

*2:フント則の起源は何か?(最近の研究から)

*3:ヘリウム様原子におけるフントの第一規則の起源 (解説)

*4:フント経験則の解釈 : 模型からab initioへ戦略を転換する起点 

*5:スレーターの研究は、量子力学を用いてフント則を説明する初期の試みとして、大変に重要なものです。また、スレーター行列式を始めとしてスレーターの量子力学への貢献は計り知れません。興味があればぜひ調べてみてください。

*6:ビリアル定理という定常状態で成り立つ関係式があるのですが、それを使うと、スレーターの解釈が誤りであり、デビッドソンの解釈が正しいことが定性的に示せます。

*7:見方を変えれば、この世界の一部はそのような実験が難しい世界であると言えます。超高圧下、無重力下などでの実験は、まだまだ試行回数が足りない領域です。そのような世界に対しては、全てを知るはずの方程式に活躍を期待したいところではありますが、理論駆動型の法則の発見にまだまだ多くの課題があることは、みなさんお察しの通りです。