技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

遺伝的アルゴリズムとは-自然淘汰をプログラムとして実装し複雑な問題を解く手法-

私自身は遺伝的アルゴリズムを実装したことはないのですが、実装する時に備えて事前に調べたことをまとめておく記事です。
 
遺伝的アルゴリズムとはモンテカルロシミュレーションの一種で、自然界で行われている遺伝と自然淘汰の仕組みをアルゴリズムとして実装することで、複雑な問題の解を得ようとするものです。
実際には新幹線や人工衛星の設計に使われたことがあり、研究ではトランプゲーム等の解を得るために使われます。
 
私のブログでも、以前に少しだけ紹介したことがあります。
ゲーム情報学の紹介

https://akira2kun.hatenablog.com/entry/2018/08/02/233539

 
遺伝的アルゴリズムの説明とPythonでの実装例は以下のページで紹介されています。
【初心者向け】Reゼロから始める遺伝的アルゴリズム人工知能】 - Qiita

https://qiita.com/Azunyan1111/items/975c67129d99de33dc21

 
PythonではDEAPというライブラリが存在し、それを使った例が以下のページで紹介されています。
DEAP - Python機械学習

http://darden.hatenablog.com/entry/2017/04/18/225459

 
ちなみに、javaで実装した例は以下のページで紹介されています。
(個人的にはjavaの方が理解はしやすいです。実務で使っている言語なので。)

https://www.ishikawa-lab.com/montecarlo_10.html