/RouteSearch

迷路問題を遺伝的アルゴリズムとニューラルネットワークで解く

Primary LanguageJava

RouteSearch

ニューラルネットワークと遺伝的アルゴリズムによる経路探索。

概要

ニューラルネットワークによる経路学習と遺伝的アルゴリズムによる強化学習を行う。 自身の位置からどの方向を移動するかをニューラルネットワークによって求め、ゴールへの到達と歩数からスコア付けを行う。 スコアを基に遺伝的アルゴリズムによって優秀な解を見つけだす。

動作例

image

使い方

maze.txtに迷路を書くか迷路自動生成を使う。 genes.txtに第一世代の遺伝子を書く。適当でもいいが、多様性を持たせる必要がある。

考察

メリット

  • 局所解に陥りにくい 突然変異によって局所解から脱することができる。

  • 解を自力で見つけ出すことができる 適当な遺伝子配列から解を見つけることができる。

  • マップに応じた解を見つけ出すことができる マップに適した子孫だけが残るのでマップに適応した解が見つかる。

デメリット

  • ニューラルネットワークが学習しきれない場合がある+時間がかかる。 遺伝子を学習しきれず、スコアが落ちることもある。また、かなりの世代をかけても答えが見つからないこともある。 image