
文章目录简介代码解析环境简介gymnasium是OpenAI的强化学习(Reinforcement Learning, RL)库提供了一套统一的Python接口用于定义和交互单智能体强化学习环境并内置了大量经典参考环境。pip安装即可pip install gymnasium -i https://pypi.tuna.tsinghua.edu.cn/simple安装成功后简单示例如下这是个小车推杆(CartPole)环境是RL领域的Hello World任务如图可见一个小车(Cart)可以在一维轨道上左右移动小车上铰接着一根杆子(Pole)智能体(Agent)需要控制小车在轨道边界内向左右移动要求杆子尽可能长时间地保持直立。代码如下importgymnasiumasgym envgym.make(CartPole-v1,render_modehuman)obs,infoenv.reset(seed42)# 重置环境获取初始观测print(obs)# [ 0.0273956 -0.00611216 0.03585979 0.0197368 ]for_inrange(1000):actionenv.action_space.sample()# 策略选择动作 (此处为随机采样)obs,reward,terminated,truncated,infoenv.step(action)# 执行状态转移# 检查回合结束条件ifterminatedortruncated:obs,infoenv.reset()env.close()# 释放资源代码解析gym.make用于创建环境CartPole-v1是个小车推杆环境的ID里面预置了上图中的倒立摆结构。render_mode为渲染模式human表示在屏幕上弹出一个图形窗口以人类可理解的帧率实时播放环境的画面。reset用于重置环境其输入为随机数种子返回值为状态空间和信息。CartPole-v1环境中状态空间包括四个值分别是小车位置、小车速度、杆子角度、杆子角速度。action_space是env的动作空间在本例中只包含{ 0 , 1 } \{0,1\}{0,1}表示向左和向右推车。sample为随机采样。在迭代过程中这代表获取一次合法动作。step(action)表示执行当前动作。其返回值包括obs下一时刻的观测值reward即时奖励terminated自然终止标志表示任务彻底失败或成功在本例中如果Pole倒了或者小车冲出轨道则终止运行truncated人为截断标志表示因为环境外部的非物理限制导致的云联阶数。info一些其他信息环境【Env】是Gymnasium的核心类实现了马尔可夫决策过程 (markovian decision process, MDP) 的离散时间形式化一个MDP通常由五元组( S , A , P , R , γ ) (S, A, P, R, \gamma)(S,A,P,R,γ)定义参数与Env中的成员一一对应参数说明成员或方法S SS状态空间(State Space)observation_spaceA AA动作空间(Action Space)action_space( P , R ) (P,R)(P,R)状态转移和奖励step(action)其中step执行动作a t a_tat后环境根据转移概率P ( s t 1 ∣ s t , a t ) P(s_{t1}\vert s_t, a_t)P(st1∣st,at)采样出下一状态并计算奖励R ( s t , a t ) R(s_t, a_t)R(st,at)。