atomsk を使用した dislocation core の visualization

最近の論文で dislocation core structure を計算したのは、だいたい atomskというツールを使って Nye tensorを計算し、芯がどのへんにあるか絵を書いています。Scripta Materialia 75, pp.42-45 (2014) とか。とりあえず自分も以前やったのでメモ

ここからダウンロード。WINDOWS実行ファイルが手っ取り早い。
http://atomsk.univ-lille1.fr/

用意するファイルは、lammpsのファイルでもVASPのCONTCARでもいいけど、転位の構造のファイルと、同じ原子数、同じ原子の並びで完全結晶のファイル。これをatomskの実行ファイルと同じ場所において、 terminal を開いてその場所にcdし、
atomsk --nye perfect.poscar dislocation.poscar nye.cfg
とすると各原子の Nye tensorを計算しnye.cfgに出力する。*.cfgはatomeyeのフォーマット。
値自体は原子に対し定義されてるけど、その間の空間にも可視化ソフトで補間して背景の色として重ねるのが流行っているようだ。

ダイマー法のざっくりした説明

A dimer method for finding saddle points on high dimensional potential surfaces using only first derivatives, G Henkelman and H Jónsson, J.Chem.Phys. 111, 7010 (1999).
院生の方に原論文を解説してもらいざっくり理解したのでその説明。

「峠点 saddle point」を見つける計算手法です。たとえば小仏峠。右は影信山、左は城山、手前が東京、向こうが神奈川です。昔は甲州街道がここを通ってました。いまはトンネルで、渋滞名所ですが。
20170602192759
山を越えるのにいちばん楽なルートはどこか。標高だけ考えれば、歩いていて一番標高が高くなる場所が、なるべく低いほうが楽です。一番高い場所が一番低くなる地点。最大の最小を求める問題です。単純な最小(盆地の底)を見つけるのなら玉を転がして落とせばいいだけですが、峠を見つけるには工夫がいります。

この最大の最小という考えは他にゲーム理論において重要な概念となります。ある手を打ったとき、相手がそれに対応して一番有利(=こっちに不利)な対抗策を打つことを考え、その場合の損害を一番小さくする、つまり損害の最大値を最小にするような自分の手を選べばいい、というのがゲーム理論の基本的な考えです。例えば米ソがプレイヤーで、核攻撃するか、しないかというゲーム。しない場合の最悪のシナリオは相手に一方的に攻撃されて自分だけ滅亡すること。一方攻撃する場合は世界が核の炎につつまれ全滅するのが最悪。どっちがマシかというと、負けより引き分け、と考える馬鹿なら核のボタンを押すことになります。実際ゲーム理論創始者であるノイマンは今すぐにでも攻撃しろと騒いでたそうですが。以上余談。

峠というのはある方向にそって動くと一番高くなる点だけど、それ以外の方向では最低になる点。なのである方向だけ特殊なことをして、それ以外は坂で玉を転がすようなことをすればいい。
ダイマー法では、まず棒切れを転がす。中心が動かないようにして回転だけするようにする。そうすると、谷筋の登山道であれば棒は登山道の方向を向く。そっちに向かって登っていけばいい。棒の方向以外には動かしてもいい。たとえば登山道から横にずれてちょっと斜面をのぼっちゃった場合は、ずりずり滑って登山道にもどる。そうやって棒を回転させてその向きにすこし歩き、また同じことを繰り返す。すると谷筋の道からはずれないまま、もうこれ以上登れない、という所にやってくる。数学的にそれは峠点。

ちなみにダイマーというのはディオに「かかったなアホが!」と言って粉砕される波紋使い

2+2次元

Dichronauts

Dichronauts

3+1次元に限界を感じ、5+1次元とか4+0次元でSFを書きはじめたイーガンさんですが、今度は2+2次元です。
前にも書きましたが timelikeな方向が二つあるからといって、時間が流れるのは一方向です。残りの一つは計量が負の変な空間方向となります。
作品中では南北方向がそれに対応するため、主人公たちは南北を向けないとか、生まれた時から顔が西向きか東向きかのどっちか、とか、かなり変な世界です。こんな世界で物質が存在できるのか。ちょっと初歩的な計算実験をしてみました。LJポテンシャルを使い、100個の粒子が互いに距離1程度の位置にいようとする系を考えます。
我々の世界では二次元だと以下の様に三角格子になります。

ここで距離の定義を変えてsqrt(|X^2-Y^2|)として同じ計算をしたのが以下:青と緑の線はX^2-Y^2の符号の違い。こうした集団がアボガドロ数まで拡張できるかは不明。
斜め方向に他の粒子が来てはいけないので、Nクィーン問題のようになります。http://www.info.kanagawa-u.ac.jp/~hatori/study/yousi2003-3.htm

これら粒子の相互の距離を不変に保ちつつ回転させるには、ローレンツ変換で変形させる必要があります。南北にカニ歩きしてる時に躓いて転ぶと身長が何倍にもなりリます。


そういえば以下の本に解説を書きました。あと6月に出る「白熱光」文庫本と電子版にも解説が載る予定。

プログラミング・コンテスト

http://azspcs.com/contest/polygonalareas
なかなか奥が深い問題です。N*Nのグリッド上にN個の点を置いて順に結び多角形を作ります。以下の三つの条件を満たすこと:

  • X,Y座標ともに重複がない
  • どの辺も交差しない
  • どの辺も平行でない

この条件の元で面積がなるべく小さいものと大きいものを見つけた人の勝ち。
整数の足し算、掛け算だけで辺の平行、交差の判定や面積の計算を行うとか、O(N)の計算時間にするとか、なかなか高度な技術を要求されます。
そんなん楽勝やん、という人は是非挑戦を。登録しなくても Best scoreは見られるので計算結果がどの程度いい線いってるかは分かります。
最大サイズでも全てキャッシュに乗るサイズなんで純粋に計算の速さが効いてきます。

ポケモンGO Best Gym Aggressor

アグレッサーとは戦闘機の訓練で仮想敵の役割をする部隊のこと。映画トップガンのヴァイパーとジェスターですね。空自では飛行教導群。
ポケモンGOでジムにポケモンを置くには敵のジムの名声を0にするか味方のジムの名声レベルを上げるかになる。
味方のジムを攻める場合、一度の戦闘で上がる名声は、こちらのCPが相手のCPより高い場合は250/CP比、低い場合は500/CP比となる。防衛側よりわずかに低いCPのポケモンで攻めて約500点を稼ぐのが効率のいい方法。
戦闘における勝ち負けは、両者の(攻撃力)*(防御力)*(HP)*(技のDPS)の大小でだいたい決まる。一方でCP値は(攻撃力)*(防御力)*sqrt(HP)で計算される。つまりCP値の計算に入っていない、技のDPSが高くてHPも高いポケモンが「CP値のわりに強い」ということになる。
いろいろな対戦について計算してみたけど、「はたく(DPS 16.2)」を持ったラッキー(次点でプクリン)が万能、ということになった。
20160920184455
注意すべきは個体値は無関係ということ。個体値の低いポケモンでもレベルを上げてCPを調節すればいい。理想的には、いろいろなCPに対応するために例えばCPが2000,1600,1200,900,600などのアグレッサー群を揃えておくことになる。なかなかそうはいかないけど。
実践して確認したいところだけど、今まで入手した2匹のラッキーのうち一匹は個体値が低くて博士に送ってしまった。残った方は「はたく」を持っていない。一匹持ってるプクリンも「はたく」じゃない。
ラッキーを入手したらダブってもアメにしないこと!

理想的にはこんな感じか。

  • 敵のジムを攻める:いぶき持ちのカイリュウ
  • ジム防衛:はがね持ちカイリュウ
  • 味方ジム攻め:はたく持ちラッキー・プクリン軍団

ポケモンGO Best Gym Offender/Defender

特定のジム防衛ポケモンに最も有効な相手はなにかを考える。
評価基準としては一定のダメージを与えた時にこちらが受けるダメージの少なさで考える。時間をかけて何度も挑戦してれば必ず勝てるけど、途中できずぐすりが切れたら終わりなので、なるべく少ないきずぐすりで攻略することを考える。
与えるダメージは(こちらの攻撃力)*(技の攻撃力)/(あちらの防御力)となり、くらうダメージは(あちらの攻撃力)*(技の攻撃力)/(こらの防御力)となる。くらうダメージ÷与えるダメージ、が求める量になる。これは相手を固定してこちらをいろいろ変える場合には(こちらの攻撃力)*(こちらの防御力)に反比例する。
技の攻撃力(damage per second)は技の属性とポケモンの属性が一致していると1.5倍となる。また相手の弱点を突く属性はダメージ1.25倍、逆の場合は0.8倍となる。
とりあえず適当な仮定として、総合値は通常技のDPSを0.8、タメ技を0.2のウェイトで足したものとする。またゲージ最長のタメ技はDPSを0.7倍と控えめに計算する。
結論としては、カイリューTUEEEEでおしまい。
評価値はカイリューで弱点攻撃なしの場合を1.0とした。他のポケモンで1.2とかの場合、カイリューで攻めた場合より1.2倍クスリを使うということ。また値は同じレベル同士で比較した場合の評価。攻撃、防御ともに(基本値+0から15の個体差)*sqrt(レベル)、となるらしいので、レベルが違う同士を比較するときはレベルをかけて比べる。CP値=攻撃*防御*sqrt(HP)なので、だいたいそれで見ればいい。
ディフェンダーとしての評価は、一番苦手な相手に攻められた場合に相手に倒されるまでにどれだけダメージを与えられるかで評価できる(min-max理論)。これは攻め側の評価値に防衛側の攻撃、防御、HP、技のダメージをかけることで計算できる。防衛側は1.5秒に一回攻撃と決まっているので、技の強さはDPSでなく単発のダメージで評価する。

Summary and Conclusions

攻撃側の評価値は攻撃*防御*技DPS、防御側はこれにさらにHPをかけたものとなる事が分かった。ゲーム中で強さを表すCP値は攻撃*防御*SQRT(HP)に比例し、攻撃側と防御側の評価値の相乗平均となっていることから、運営側も同様の評価方法を使用していることが推測できる。
評価値はCP値に技のDPSと属性の相性を加味したものでよく近似できる。もっとも影響が大きいのはSTAB(属性一致ボーナス)の1.5倍で、技とポケモンの属性が一致している場合はCP値を1.5倍したものを使い比較することになる。
現状、属性に起因する三すくみのような関係はなく、少数の強いポケモンがほぼ万能である状況である。そうしたポケモンが今後広くユーザーにいきわたりジムバトルが単調になった場合、仕様が変更される可能性もある。

続きを読む

ジュラルミン

アルミ合金60cmネット枠が破断したので買い替えなきゃいけない訳ですが、
http://kawamo.co.jp/roppon-ashi/sub175.htm#ultra
この超々ジュラルミンにするか、迷うところ。零戦に使われたアルミ合金(銅、亜鉛マグネシウム)です。購入の暁には岩本徹三か坂井三郎のマーキングでもするか。艦これで艦載機を消耗すると減っていくボーキサイトはアルミの鉱石。
でも枠を重いと感じたことはないので、志賀の鋼鉄製でもいいかな。強度は断然上だ。例えるなら、零戦に対するグラマン・アイアンワークスといった所か。馬力(体力)があれば重さは問題ではない。空中戦主体の蝶屋さんは軽合金がいいだろうけど、掬い主体の甲虫屋はこちらがいいかもしれない。

ジュラルミンといえば、機動隊の盾ですね。梅川銀行強盗事件とかを思い出します。ちなみに機動隊は米では riot force、暴徒鎮圧部隊と呼ばれます。みもふたもない。
機動部隊といえば南雲機動部隊。主力の空母6杯を集中運用するというのはかなり革新的なアイディアでした。考えたのは源田実。外国の観艦式の写真を見て思いついたらしい。対して米はTask Force を編成し、各TFは空母1-2と巡洋艦駆逐艦からなる。

7月は Aim-High

だいたい2000m帯への出撃を考えています。第一段は上高地。岳沢では6月に既にナナカマドが咲いているとのこと。天気は読めないがしょうがない。ニミッツ提督が言うところの "Calculated risk"というやつだ。
https://www.usnwc.edu/getattachment/e0c936f8-6add-4653-8163-627244ed890f/Deconstructing-Nimitz-s-Principle-of-Calculated-Ri.aspx
作戦計画:

  • 晴れ:T峠でエゾラギ、オトメの後、柳でトホシ、エサキン
  • 小雨:岳沢でピド、ホクチ、ミヤマドウボソなど
  • 大雨:長靴で池周辺でハムシ(大正池ってくらいで大正時代にできた池なんで生態系の遷移過程にあるかも)、周囲のテンカラを見回りサハリン下見

大雨でも止みそうなら長靴で岳沢途中まで登りショウマなどでピド探して待ち、小雨になったら靴履き替えて岳沢まで行く
初日晴れてエゾラギ・トホシをクリアしたら二日目は蝶ケ岳でオトメ、シララカ。夜明け前発、バスのため1500までに戻りトホシチェック。
速報:一日目晴れルート、ラギ手応えありもタダラギのみ、オトメ手応えなし。シラビソにクモマハナが産卵してた。ナナカマドには外道のみ。トホシ大勝利。エサキン未見

目標整理

  • 狙いたい単騎待ち上等(ブナ帯):パキタ、パキピド,イガブチ,ムナミゾ,ムネアカメダカ,キイロメダカ,ラニウス,ゼブラ,フトキクスイ,クビジロ,ヒトオビチビ,イタヤ,ヤツボシシロ,オオシロ,マルバネコブヒゲ,クモノスモン,トゲムネアラゲ,ヨコグロケシ,トホシ,カスガキモン,シラホシキク【ちと遅いか】ムネマダラトラ,コトラ,ヨツボシ
  • 狙いたい単騎待ち上等(亜高山):オトメ,ホクチ,スミイロ,サハリン,ikedai,suzukii,タカネ,エゾラギ,ワルサワ,シララカ,ゼブラ
  • 難しくないので無理には狙わない:クスベニ,トゲヒゲトビイロ,セミスジニセ,ヒメヨツ,タイワンメダカ,キボシチビ
  • 難しいので無理には狙わない:gigan, odai, オオトラ
  • 別種かどうか疑問:ミヤマドウボソ,ヒスイヒメハナ,シンシュウヒメハナ,ハクバヒメハナ

御嶽、北岳or鳳凰、富士五合目あたり。登山目的じゃないので岳沢止まり、T峠止まり、白根御池止まりなど山登ラーに鼻で笑われそうなコースしか予定してません。オトメはハイマツに来るけどハイマツ帯にはいない。