2017-03-14 3 views
2

PythonでOpenAI-gymのMountainCar-v0環境を使用する場合、doneの値は200のタイムステップ後にtrueになります。何故ですか?目標状態に達していないため、エピソードを実行すべきではありません。200回のタイムステップ後にエピソードが行われるのはなぜですか(ジムの環境MountainCar)?

import gym 
env = gym.make('MountainCar-v0') 
env.reset() 
for _ in range(300): 
    env.render() 
    res = env.step(env.action_space.sample()) 
    print(_) 
    print(res[2]) 

車がフラグに達してからforループを解除するまで、ステップメソッドを実行します。これは可能ですか?

n_episodes = 10 
done = False 
for i in range(n_episodes): 
    env.reset() 
    while done == False: 
     env.render() 
     state, reward, done, _ = env.step(env.action_space.sample()) 

答えて

4

env.monitorを使用しない場合でも、現在の最新のジムでは、200ステップで環境が強制停止されます。これを避けるために は、https://github.com/openai/gym/wiki/FAQからコピー env = gym.make("MountainCar-v0").env

3

を使用します。

環境をベンチマークに順番にそれらを解決するための強化学習エージェントの能力で、難易度のさまざまなレベルを有することが意図されています。環境の多くは最新の技術水準を超えているため、それらのすべてを解決することは期待しないでください。 (もしそうなら、応募してください)。

異なる動作をする環境のバリアントを試したい場合は、簡単なバリアントで動作しているエージェントと元の環境で動作している他のエージェントを誤って比較しないように新しい名前を付ける必要があります。たとえば、MountainCar環境の一部は、タイムスタンプが200回に制限されているため、最初にリセットされます。成功したエージェントは、200未満のタイムステップでそれを解決する必要があります。テスト目的のために、あなたはgym/gym/envs/__init__.pyで見つかっ登録する呼び出しのいずれかを適応させることによって、異なるパラメータを持つ新しい環境MountainCarMyEasyVersion-V0を作ることができる:

gym.envs.register(
    id='MountainCarMyEasyVersion-v0', 
    entry_point='gym.envs.classic_control:MountainCarEnv', 
    max_episode_steps=250,  # MountainCar-v0 uses 200 
    reward_threshold=-110.0, 
) 
env = gym.make('MountainCarMyEasyVersion-v0') 

これらの環境名は、あなたのコードに知られているので、あなたはしませんそれをスコアボードにアップロードすることができます。

関連する問題