カスタムGym環境作成(9) - 川と橋のあるマップをランダム実行

前回記事で、マップに川と橋を追加しカスタムGym環境を実装しました。

[川と橋を追加したマップイメージ]

今回は、そのマップに対してランダムで実行しています。

川と橋と橋のあるマップをランダム実行

ランダム実行するソースは下記の通りです。

2行目でインポートするカスタムGym環境をenv6にしているのが、唯一の変更箇所となります。

[ソース]

random6.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import gym
from env6 import MyEnv

# 環境の生成
env = MyEnv()

# 環境リセット
state = env.reset()

total_reward = 0
while True:
# ランダム行動の取得
action = env.action_space.sample()
# 1ステップの実行
state, reward, done, info = env.step(action)
total_reward += reward
#print('state=', state, 'reward=', reward)
# 環境の描画
env.render()
print('reward:', reward, 'total_reward', total_reward)
print('-----------')
# エピソード完了
if done:
print('done')
break

ランダム実行のため毎回結果が異なります。
10回ほど実行した結果は下記のようになりました。

[結果]

  • 1回目
    total_reward -150
  • 2回目
    total_reward -571
  • 3回目
    total_reward 30
  • 4回目
    total_reward -1139
  • 5回目
    total_reward -1867
  • 6回目
    total_reward -142
  • 7回目
    total_reward -46
  • 8回目
    total_reward -298
  • 9回目
    total_reward -1286
  • 10回目
    total_reward -441

トータル報酬は -1867から30 の範囲となりました。

次回はStable BaselinesACKTRアルゴリズムを使って、強化学習を行ってみます。