文章目录

  • 前言
  • CartPole-v1
    • 游戏结束
    • state
    • action和reward
  • Pendulum-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

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

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

游戏结束


此外,还有一个游戏结束的条件,那就是在一个游戏中走了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#查看动作空间

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

  1. 安装gym库_强化学习Gym库学习实践(一)

    最近看了一篇研究方向相关的文章,介绍了一种DQN的应用,感觉还挺新鲜的.想着把这篇文章复现出来,就开始学习强化学习的相关知识,作为一名小白,这一路走的可是真的十分艰难(我太菜了啊!) 看了莫烦Pyth ...

  2. 强化学习gym的使用之Pendulum的训练

    地址 该任务是杆起始位置随机,让它荡到顶头并保持. 首先测试环境 def run_test():env = gym.make('Pendulum-v0') action = [0]observatio ...

  3. 强化学习环境库 Gym 发布首个社区发布版,全面兼容 Python 3.9

    作者:肖智清 来源:AI科技大本营 强化学习环境库Gym于2021年8月中旬迎来了首个社区志愿者维护的发布版Gym 0.19.该版本全面兼容Python 3.9,增加了多个新特性. 强化学习环境库的事 ...

  4. 强化学习——环境库OpenAI Gym

    前言 前段时间各大新闻媒体都在报道SpaceX的马斯克,因为其公司成功发射"猎鹰9号"火箭.马斯克是一个极具传奇色彩的人物,其成就也足以让他名垂青史.但今天我们要讨论的不是马斯克这 ...

  5. 几行代码轻松实现,Tensorlayer 2.0推出深度强化学习基准库

    2019-11-11 16:37:04 机器之心发布 机器之心编辑部 强化学习通过使用奖励函数对智能体的策略进行优化,深度强化学习则将深度神经网络应用于强化学习算法.深度强化学习由于其可扩展性,受到科 ...

  6. Ubuntu16.04 搭建mujoco环境+强化学习gym

    (2022)Ubuntu16.04 搭建mujoco环境+强化学习gym 前言 一.Ubuntu16.04系统安装 二.mujoco安装 1.安装教程 2.程序验证 三.mujoco-py 安装 1. ...

  7. 强化学习Gym Atari报错缺少ale_c.dll

    强化学习Gym Atari报错缺少ale_c.dll 问题: 一般在Windows10(及以上)系统中使用Anaconda配置强化学习的Gym环境时,如使用Breakout训练场,需要安装以下工具包 ...

  8. 什么是强化学习,强化学习在控制系统中的应用以及matlab强化学习工具箱的介绍

    一.Reinforcement Learning Toolbox介绍 强化学习工具箱使用强化学习算法(包括DQN,A2C和DDPG)为训练策略(policy)提供函数和模块.您可以使用这些策略为复杂的 ...

  9. Nat. Mach. Intell. | 基于深度强化学习寻找网络中的关键节点

    今天给大家介绍哈佛大学Yang-Yu Liu课题组和加利福尼亚大学洛杉矶分校Yizhou Sun课题组发表在nature machine intelligence上的一篇文章"Finding ...

最新文章

  1. c语言 sizeof length,size()、length ()和sizeof()的区别
  2. STM32F103C8T6 CAN通信详解
  3. 利用iptables来配置linux禁止所有端口登陆和开放指定端口
  4. PostgreSQL的 initdb 源代码分析之二十三
  5. vscode的eslint无效_vscode配置eslint自动保存功能不生效
  6. 终于读完Code complete 2nd edtion
  7. JAVA学习笔记之 Date类和Calendar类的使用
  8. Word01-从正文处开始插入页码
  9. jQuery..1..基本使用..选择
  10. 动态数组--一维数组
  11. 四种常见的XML解析方式
  12. ai旋转扭曲_【AI~扭曲】旋转扭曲、收拢、膨胀、扇贝、晶格化、皱褶工具(转)...
  13. 关于Nginx服务器的一些粗略认识
  14. 测试经理必知必会-Kanban和Scrum区别
  15. docker容器网络配置之容器间的链接(默认桥接网络下的links)
  16. 微博短视频怎么去水印 视频消重软件推荐
  17. Berkeley DB(BDB)
  18. 魔百和CM311-1a_CH_S905L3A_安卓9.0_纯净线刷固件包
  19. c语言编写f16仿真程序,想学习一下 用C语言开发PIC的F16和F18系列单片机, 结果让IDE开发环境给搞悲剧,巨难用,...
  20. html小米官网轮播图js,小米官网轮播图js+css3+html实现

热门文章

  1. 他用“1 和 0”解决了人类两大难题,他是信息论之父,却渴望做“杂耍博士”...
  2. Python 中更优雅的环境变量设置方案
  3. 如果有人问你新冠肺炎是什么?请这样告诉他
  4. 六个深度学习常用损失函数总览:基本形式、原理、特点
  5. 【经典书】随机矩阵理论与无线网络
  6. MIT自动驾驶船下水!可乘坐5人,阿姆斯特丹运河航行3小时误差不到0.17米
  7. 机器学习 | 基础通俗讲解集成学习算法!
  8. 我们为你精选了一份Jupyter/IPython笔记本集合 !(附大量资源链接)-下篇
  9. 报名 | 大咖云集,清华方圆系列之大数据分析与可视化报告会
  10. 50个令人大开眼界的 Matplotlib 可视化项目