u++の備忘録

遺伝的アルゴリズムで平成から令和に変えてみる

遺伝的アルゴリズムを用いて 'HEISEI' という文字列を 'REIWA' に変えてみました。


開始時

f:id:upura:20190430210939p:plain

終了時

f:id:upura:20190430210938p:plain

ルール

  • 'HEISEI' という文字列から開始
  • 置き換えられる文字は、英大文字と半角スペースの27種類
  • 'REIWA '(末尾は半角スペース)になったら終了

遺伝的アルゴリズムの説明

次のブログの枠組みを流用しています。

upura.hatenablog.com

結果

今回の実験の場合、35世代目で 'REIWA ' を出力できました。1世代当たりのエージェント数を1000に設定しているので、合計で35000回の施行をしたことになります。

>>> 27*27*27*27*27*27
387420489

ナイーブに27通りの6文字を試すと4億通り弱のパターンがあるので、遺伝的アルゴリズムを用いることである程度効率よく探索できていると分かります。

おわりに

実装はGitHubで公開しています。

github.com