Python(強化学習の試し06_迷路サンプル)

■別の強化学習のテーマ。
前回までは、過去の結果から0と1の2つのActionを選択するサンプルを見てきた。今回から、迷路のサンプルを試してみる。サンプルは、マイナビニュースで紹介されていたpygameのライブラリのものに少し手を加えたもの。

下のような感じ。左上からスタートし、右下がゴールとなる。黄色マスを得点にした。迷路の構造はスタート毎にランダムで入れ替わるけど、2次配列の要素(0,1,2,3に対して壁、道、得点、ゴール)から描写しているので、適当な迷路を固定して強化学習を試す。

このサンプルでは、選択できるActionとして、上、下、右、左の4つがある。また、環境としては、どのマスにいるかによるので、上のサンプルでは、外周を除いた11マス×11マスの121の情報があれば十分。この辺り情報からQ表を考えていく。

報酬については、黄色を通ったらいくらか加点して、移動が少ない方が点が高くなるようにしたい。

強化学習に対する比較としては、単純に4つのActionのうち1つをランダムで選ぶ、というものがあるけど、その場合、来た道をすぐに戻るといった選択もされる。これは現実的ではないと思うので、例えば、来た道を除く他の道からランダムで選ぶとか、過去に行ったことのあるマスを記録しておいてそれを避けるといったものもできそう。

あと結果の分析で、通った道を視覚的に分かるようにしたい。とりあえずはこんな要件で試していく。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です