强化学习gym库中的Pendulum-v1/CartPole-v1游戏介绍

前言

gym官网:http://gym.openai.com/envs/#classic_control

这gym的游戏真他妈坑,有很多游戏,但是只是粗略说说,而不说游戏具体规则。
在这里插入图片描述

在这里插入图片描述

不但如此,坑2:Pendulum-v0都已经被gym官方认定过时了,导入会报错。但是这个网站却还没有更新Pendulum-v1过来,蛋疼。

还有坑3:大家要看这个游戏的具体规则要进入github里面去看。例如CartPole-v1如下:

在这里插入图片描述
如下
在这里插入图片描述

但是坑爹的是游戏Pendulum-v1的github中竟然也没有写游戏规则,大部分在那个gym网站不会写,但是github中会写,但是这个游戏github中都没有写,这还让人怎么玩啊。

CartPole-v1

在这里插入图片描述

这个游戏的主角包括两部分,一个是小车,一个是杆子,小车套在一个光滑无摩擦的轨道上。

杆子只要有倾斜,小车就会滑动。如果我们放任他们不管,结果就是杆子会倒下,小车会滑动,且远离中心。

游戏结束

官方介绍的是角度小于正负15度,
此外,还有一个游戏结束的条件,那就是在一个游戏中走了500步,版本v0是200步。

state

描述这个环境,即描述小车和杆子。用了4个指标描述,如下:

env.reset()#返回值:环境的状态或者叫做观察值。

在这里插入图片描述

As discussed previously, the obs of CartPole has 4 values:
位置
First value is the position of the cart.
速度
Second value is the velocity of the cart.
角度
Third value  is the angle of the pole.
角速度
Fourth value is the angular velocity of the pole.

从reset返回的值就可以看到,默认这个游戏开始就是杆子就是有倾斜的。

action和reward

action:动作包括向小车向左/向右施加一牛的力,在代码中用0,1表示。

在这里插入图片描述
reward:在本episode结束之前,做出的每一步动作都得到1的回报,如上。显然,看步数就可以判断出谁玩的更好,步数多说明厉害。

注意:即使是本次做出一个动作,但是游戏结束了,我们也得到1的回报(这点环境设计得很不人性),这意味着我们要自己做一个代码判断,如果done=True,把reward改为负数之类的。

Pendulum-v1

动作:往左转还是往右转,用力矩来衡量,即力乘以力臂。范围[-2,2]:
在这里插入图片描述

状态:cos(theta), sin(theta) , thetadot(角速度)
前面那个角度指的是什么?竖直为0度,顺时针方向来计算角度,所以角度范围是[0,360],例如图中大概是140度的样子。

在这里插入图片描述

奖励:
th就是上面的角度,thdot就是角速度,u就是你输入的动作值[-2,2]。

env.step(u)

在这里插入图片描述
也就是说:

在这里插入图片描述

在这里插入图片描述
总的来说,越直立拿到的奖励越高,越偏离,奖励越低。

游戏结束:200步后游戏结束。所以要在200步内拿到的分越高越好。

通用操作

env.observation_space#查看状态空间
env.action_space#查看动作空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值