gym初级——初识gym环境(一)

描述

从今天开始,有机会我会写一些有关强化学习的博客

这一篇是关于gym环境的

环境

import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
    env.render()
    env.step(env.action_space.sample()) # take a random action
env.close()

运行这段程序,是一个小车倒立摆的环境
可以把CartPole-v0替换为其他环境,比如
MountainCar-v0 山谷里有一个小车
MsPacman-v0 迷宫里吃豆子(依赖Atari)
or Hopper-v1 这个我运行失败了,因为它依赖mujoco

reset(self):重置环境的状态。返回的观察。
step(self, action):一步一步地调整环境。返回观察,奖励,完成,信息。
render(self, mode='human'):渲染环境的一帧。默认模式会做一些对人友好的事情,比如弹出一个窗口。

强化学习写法

我们都知道,强化学习需要的基本要素,agent与environment交互,执行action,得到observation和reward

使用基本思路写下新的代码

import gym
env = gym.make('CartPole-v0')
for i_episode in range(20):
    print("episode "+str(i_episode))
    observation = env.reset()
    for t in range(100):
        env.render()
        print("observation: "+str(observation))
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        print("action: "+str(action)+" reward: "+str(reward)+" done: "+str(done)+" info: "+str(info))
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break
env.close()

输出长得这样
gym初级——初识gym环境(一)_第1张图片
根据我的判断

  • observation
    四维数据代表[小车速度,小车加速度,单摆角速度,单摆角加速度]
  • reward
    1=单摆没倒;0=单摆倒了
  • action
    0/1 = 小车向左或向右
  • done:
    这里是单摆要倒了作为结束条件,执行代码可以发现每次done的时候,observation的第三项,也就是单摆角速度都很大,大约在±0.2左右时done会变为true,估计是gym的api对这个单摆环境的提前设置

好的,今天就到这里

你可能感兴趣的:(强化学习,强化学习,人工智能)