【gym】给定的强化学习环境简介(二)


理解gym并测试gym小游戏CartPole (一)

环境介绍

环境中有4个子文件包
在这里插入图片描述

一 box2d

Box2D是一个强大的开源物理游戏引擎环境,用于模拟2D刚体物体的运动和碰撞。

bipedal_walker

在这里插入图片描述

  • 目标通常是让双足助行器学会行走,即在不跌倒的情况下前进尽可能远的距离。

  • 动作空间是连续的,通常包含四个维度的动作,分别对应助行器腿部的不同运动控制。

  • 观察空间包含助行器的当前状态信息,如身体部位的位置、速度等,这些信息被用来作为输入给强化学习算法。

  • 环境中有一个奖励机制,根据助行器的行走距离、是否跌倒等因素给予奖励或惩罚。

  • 使用Box2D物理引擎进行模拟,包括重力、摩擦力等物理因素,使得助行器的运动更加真实和复杂。

car_dynamics
  1. 汽车的动力学模型:这涉及汽车的物理特性,如质量、惯性、轮胎摩擦力等,以及这些特性如何影响汽车的加速、减速、转向等动作。

  2. 控制函数:car_dynamics中可能定义了控制汽车行为的函数,如steer(转向)、gas(油门)、brake(刹车)等。这些函数根据输入的控制信号(如方向盘角度、油门踏板位置、刹车踏板压力等)来计算汽车的下一个状态。

  3. 与环境的交互:在gym的环境中,car_dynamics负责与Box2D物理引擎进行交互,以模拟汽车的物理行为。它可能接收来自环境的输入(如赛道布局、障碍物位置等),并根据这些输入以及汽车当前的状态和控制信号来计算汽车的下一个位置和速度等。

  4. 奖励函数:虽然奖励函数本身可能不直接包含在car_dynamics中,但car_dynamics提供的汽车状态和环境信息通常用于计算奖励。奖励是强化学习中非常重要的一个概念,它用于评估智能体(在这种情况下是汽车)的行为好坏。

car_racing

CarRacing是一种在OpenAI Gym平台上开发和比较强化学习算法的模拟环境。它是流行的Box2D物理引擎的一个版本,经过修改以支持模拟汽车在赛道上行驶的物理过程。在这个环境中,智能体(agent)需要控制一辆汽车在赛道上行驶,并尽量快速地完成一圈或多圈赛道,同时避免碰撞和偏离赛道。

在CarRacing环境中,智能体通过观察当前的环境状态(如汽车的位置、速度、赛道形状等)来做出决策,并选择相应的动作(如加速、刹车、转向等)。环境会根据智能体的动作给予相应的奖励或惩罚,例如完成一圈赛道会获得奖励,而碰撞到赛道边缘或障碍物则会受到惩罚。

rl-video-episode-0

见资料:

lunar_lander

Lunar_lander环境模拟了一个火箭着陆器的着陆过程。着陆器需要在固定点(0,0)的着陆垫上安全着陆。
在这里插入图片描述

环境版本

  • 离散版本:环境具有离散的行动空间,即引擎只能全油门开启或关闭。
  • 连续版本:环境具有连续的动作空间,通常表示为Box(-1, +1, (2,), dtype=np.float32)。状态是一个8维向量,包括着陆器的x和y坐标、x和y的线速度、角度、角速度,以及代表每条腿是否与地面接触的两个布尔运算符.
    第一个动作决定了主发动机的油门,而第二个动作则指定了横向助推器的油门。

奖励:奖励机制设计用于鼓励着陆器安全、准确地着陆。

  • 从屏幕的顶部移动到着陆点并停在那里的奖励约为100~140分。
  • 如果着陆器离开了着陆台,它就会失去奖励。
  • 如果着陆器坠毁,它将获得额外的-100分。
  • 如果它稳定了(即没有移动或摇晃),它将得到额外的+100分。
  • 每一个与地面接触的腿是+10分。
  • 开启主引擎,每帧-0.3分;发射侧引擎,每帧-0.03分。

目标:着陆器的目标是尽可能准确地着陆在指定的着陆垫上,同时最小化燃料消耗(尽管在这个环境中燃料是无限的,但开启引擎会消耗分数)。
挑战:环境中的挑战包括着陆器的物理特性(如惯性、重力等)、着陆垫的大小和位置限制,以及奖励和惩罚机制的设计。

应用场景与算法

  • Lunar_lander环境常被用于测试和训练强化学习算法,如深度Q学习(Deep Q-Learning)、深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)、软演员-评论家(Soft Actor-Critic, SAC)等。
  • 通过在这个环境中训练代理,可以学习到如何根据当前状态做出最优的决策,从而实现着陆器的安全着陆。

学习资料

二、 classic_control

acrobot

环境描述
Acrobot是一个由两个连杆和关节组成的机器人,这两个连杆通过转动关节相连,并且只能在一个平面内运动。初始状态下,Acrobot的连杆是下垂的,目标是通过在两个关节上施加力矩,使得Acrobot的末端(即第二个连杆的末端)能够摆动到预定的位置(通常是上方)。
状态
在Gym的Acrobot环境中,状态通常包括两个连杆的角度、角速度等物理信息,这些信息是算法进行决策的基础
动作
动作是算法在每个时间步对Acrobot施加的力矩,通常是一个连续的或离散的数值。在连续动作空间中,算法可以输出一个具体的力矩值;在离散动作空间中,算法可以选择一个预定义的力矩方向或大小。
奖励
奖励是算法在完成任务过程中获得的反馈。在Acrobot环境中,奖励通常与末端位置、速度、能耗等因素有关。例如,当末端摆动到预定位置时,算法会获得正奖励;当能耗过高或末端未能到达指定位置时,算法会获得负奖励。
目标
算法的目标是最大化总奖励。为了实现这一目标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值