進化的アルゴリズム(EA)
情報
- CrySPYの基本的な使い方に関しては,はじめにチュートリアル > ランダムサーチ(RS)を見ること.
- アルゴリズム詳細については,探索アルゴリズム > 進化的アルゴリズム(EA)を参照すること.
入力ファイルの準備
下記のどれか一つに従い,その後CrySPY実行のセクションに移ること.
下記のどれか一つに従い,その後CrySPY実行のセクションに移ること.
最終更新日:2026年10月16日
ここで利用しているファイルはCrySPY_utility/examples/ase_Cu8Au8_EAからダウンロードできる. このチュートリアルでは,計算が軽いASEのPure Python EMT calculatorを用いてローカルPCで動作確認を行う.対象となるシステムはCu8Au8.
cryspy.inの例.
algo = EA を使用.energy_output_intervalでエネルギープロットの出力間隔(世代数)を指定できる.デフォルトは1(毎世代),0で自動出力を無効化.backup_intervalで自動バックアップの間隔(世代数)を指定できる.デフォルトは1,0で自動バックアップを無効化.詳細は機能 > バックアップを参照.jobcmdをbashに変更.tot_strucは使用しない.構造数はn_popで決まる.n_pop = n_crsov + n_perm + n_strain + n_randcalc_in/以下はチュートリアル > ランダムサーチ(RS) > ASE in your local PCと同様
最終更新日:2026年10月16日
cryspyを実行すると,構造生成モードになり,第一世代のランダム構造が生成されて,一旦プログラムは終了する.
出力
cryspy.statを見ると,EAでは現在の世代の情報が追加されている.
何度かcryspyを実行して,第一世代の構造最適化を終わらせると,下記のように出力される.
準備ができた状態でもう一度cryspyを実行すると,次世代構造の生成が始まる.
デフォルト(backup_interval = 1)では,次世代構造を生成する直前に自動バックアップが実行される.
v1.5.0以降は,[option]セクションのbackup_intervalで間隔(世代数)を変更でき,0で自動バックアップを無効にする.詳細は機能 > バックアップを参照.
あとはcryspyの実行を繰り返せば,探索が進む.
最終更新日:2026年10月16日
以下は第3世代まで計算を終えたcryspy_rsltの例である.EAでは世代の情報(Gen)も追加される.
v1.5.0以降は,[option]セクションのrslt_outでcryspy_rsltとcryspy_rslt_energy_ascの出力タイミングを変更できる.デフォルトはalways.詳細は入力ファイル > [option] Sectionを参照.
各世代ごとに用いたEAのパラメーターがea_infoに出力される.
構造生成手法や親個体の情報が,ea_originに出力される.
最終更新日:2026年10月16日
バージョン1.4.4からは,デフォルトで各世代の計算終了時に自動的にエネルギープロットが行われ, ファイルは下記に保存される.
./data/energy_plot/energy_EA_gen_{gen}.{fig_fotmat}.
バージョン1.5.0以降は,[option]セクションのenergy_output_intervalで出力間隔(世代数)を変更できる.デフォルトは1(毎世代)で,0なら自動出力を無効にする.詳細は入力ファイル > [option] Sectionを参照.
cryspy.inの[visual]セクションで以下の入力変数が指定可能となっている.
入力変数の詳細はこちら CrySPY > Input file > [visual] section.
もしプロットされた図を調整して再プロットしたい場合は,cryspy-Eplotコマンドを使えば簡単に実行できる.
cryspy-Eplotコマンドを用いる場合は,専用の以下の入力変数も利用可能となっている.
plot_min_genplot_max_genref_gen例えば,2世代目における図を再プロットするには,[visual]セクションを下記のように書く.
cryspy-Eplotを実行すると
この場合,CrysPYは ./data/energy_plot/energy_EA_gen_{gen}.{fig_fotmat}にファイルを上書き保存する.
plot_min_genとplot_max_genを用いることで,プロットする世代の範囲を指定することも可能である.
plot_min_genに値が設定された場合,たとえそれが1であっても普段と異なる次のファイルに図が保存される.
./data/energy_plot/energy_EA_gen_{plot_min_gen}-{plot_max_gen}.{fig_fotmat}.
例えば,第2世代時点での結果から,2世代目だけの結果を抜き出すには下記のように行う.
どの時点での世代の結果を用いるか(x軸の最大値に関係)は,ref_genで指定できる.
例えば,ページ最上部の図にあるように,第3世代までの結果から,第2世代目の結果だけ抜き出すには,以下のように設定する.
ref_genが指定されている場合は,ファイル名は以下のようになる.
energy_EA_gen_{plot_min_gen}-{plot_max_gen}_ref_{ref_gen}.{fig_format}.
より詳細なデータ解析や,図の編集がしたければ,次に書いてあるようにファイルをダウンロードしてJupyter notebookを使うと良い.
ここでは,CrySPYのデータをローカルPCで解析・可視化することを前提としている.
CrySPYをスーパーコンピュータやワークステーションで使用している場合は,データをローカルPCにダウンロードすること.
work や backup ディレクトリは,ファイルサイズが非常に大きくなる可能性があるため,不要であれば削除してよい.
先ほどダウンロードした結果の中にある data/ ディレクトリに移動する.
その後,CrySPY utilityがローカルにダウンロード してある場合は cryspy_analyzer_EA.ipynb をコピーする.
またはGitHubから直接ダウンロードしてくる(CrySPY_utility/notebook/).
Jupyter を起動し(VScode,Jupyter Lab,Jupyter Notebook など),
セルを順番に実行するだけで,以下のような図を得ることができる.